java第一次实训.doc

上传人:飞****2 文档编号:51934541 上传时间:2022-10-20 格式:DOC 页数:19 大小:170KB
返回 下载 相关 举报
java第一次实训.doc_第1页
第1页 / 共19页
java第一次实训.doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《java第一次实训.doc》由会员分享,可在线阅读,更多相关《java第一次实训.doc(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、烟台南山学院工学院计算机系Java程序设计课程设计报告20142015学年春季学期班 级:计算机应用131姓 名: 易峰学 号:1专 业:计算机应用技术指导教师:王晶日 期 20156222015626地点 68#E308课程设计目的(1) 加深学生对类和对象概念的理解、帮助学生建立面向对象的思维方式,在程序设计中要贯彻和体现面向对象的基本思想。(2)通过上机实践,提高学生对计算机软件开发环境和运行环境的了解和使用能力。(3) 在对Java程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。(4) 通过实训,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程

2、序设计的规律与技巧。课程设计要求:1、课程设计期间每天登记考勤,作为课程设计成绩的一部分。2、课程设计期间不能玩游戏、看电影、小说等做与学习无关的事。如果有不遵守的同学将取消当天成绩。3、每天必须按照指导教师课程设计安排完成当天的项目,并经过老师的检查。4、完成整个课程设计以后,要求每人写出课程设计报告。5、课程设计报告要求有插图,模块关键代码及注释。课程设计内容:实验一 顾客购物清单的实现功能介绍某顾客购物如表1所示,享受8折优惠,购物结算时支付1200元,计算消费总额及找零情况并打印购物小票,根据每100元获得3分计算购物所得会员积分。表1 顾客购物清单商品名单价数量金额衬衣2683?运动

3、鞋3182?要求:首先,声明变量用来存储商品信息,如每件商品的单价、购物的数量,并计算出每件商品的总额,然后根据不同折扣,计算实际消费金额及购物获得的会员积分,最后使用System.out.println()方法与字符串连接符“+”连接输出信息,使用转义字符t控制输出格式实验步骤:class yfdouble d=291,j,dl=400,jl,x=0.8,sum,zl,jf;int s=3,sl=2;public void csj()j=s*d*x;jl=sl*dl*x;sum=j+jl; zl=1200-sum; jf=sum/100*3;System.out.println(衬衣的总额

4、+j+n+运动鞋的总额 +jl+n+总额+sum+n+找零+zl+积分+jf+n);public class yifengSX1 public static void main(String args)yf z=new yf();z.csj();/*建一个类上面完成定义输出等操作, 再建一个类放主函数,主 函数里调用输出最终结果。 调用需要新建对象Z,其中Z的名字自定 用Z调用函数csj完成调用*/实验结果:实验二 员工信息类的创建功能介绍员工信息类的创建,员工分为普通员工、销售员、部门经理3种角色;所有员工的属性包括编号、姓名、性别、部门、基本工资、电话等,根据角色的不同,员工工资的计算方法

5、也不同。具体工资计算如下:普通员工:基本工资+交通补贴(100)+岗位工资(500)销售员:基本工资+交通补贴(500)+通信补贴(200)+岗位工资(销售额*%2)部门经理:基本工资+住房补贴(基本工资*15%)+交通补贴(基本工资*10%)+岗位工资(1000)。要求:因为销售员和部门经理也都是员工,他们具有员工的所有属性和方法,即他们继承了员工的所有属性和方法。但是他们各自还具有自己的特殊属性,计算工资的方法不同。首先创建普通员工类,然后创建销售员子类与部门经理子类,继承于员工类。销售员子类与部门经理子类中的计算工资方法重写员工父类的方法,使用父类类型引用子类实例对象。实验步骤:clas

6、s shixun2public int jbgz;public int jtbt;public int gwgz;public void jb()System.out.println(基本工资);public shixun2(int jbgz,int jtbt,int gwgz)this.gwgz=gwgz;this.jbgz=jbgz;this.jtbt=jtbt;class xiaoshou extends shixun2private int txbt;public xiaoshou(int jbgz,int jtbt,int gwgz,int txbt)super(jbgz,jtbt,

7、gwgz);this.txbt=txbt;public void xs()System.out.println(销售工资);class bumenjingli extends shixun2private int zfbt;public bumenjingli(int jbgz,int jtbt,int gwgz,int txbt)super(jbgz,jtbt,gwgz);this.zfbt=zfbt;public void bmjl()System.out.println(部门经理工资);public class yifengSX2 public static void main (Str

8、ing args) shixun2 a=new shixun2(1,2,3); a.jb(); xiaoshou b=new xiaoshou(1,2,3,4); b.xs(); bumenjingli c=new bumenjingli(1,2,3,4); c.bmjl(); System.out.println(以上就是员工工资继承关系); 实验结果:实验三 计算器的实现功能介绍编写一个模拟计算器的程序,使用面板和网格布局,添加一个文本框,10个数字按钮(0-9),4个加减乘除按钮,一个等号按钮,一个清除按钮,要求将计算公式和结果显示在文本框中。实验步骤:import java.awt.*

9、;import java.applet.*;public class yi extends Applet TextField tfAnswer; /显示输入和结果的文本域 Button bPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision; /运算符按钮 Button b=new Button10; /数字按钮 String currentOp,preOp; /当前操作和上一步操作 String foreText,backText; /当前输入和上一次输入 boolean isFloat = false; /运算类型标志 public void

10、init() Panel panel1=new Panel(); /实例化面板 Panel panel2=new Panel(); Panel panel3=new Panel(); currentOp = new String(); /实例化各组件 preOp = new String(); foreText = new String(); backText = new String(); tfAnswer = new TextField(8); setBackground(Color.lightGray); /设置Applet背景色 setForeground(Color.blue); /

11、设置Applet前景色 for(int i=9;i=0;i-) bi=new Button(Integer.toString(i); /实例化数字按钮 panel2.add(bi); /增加按钮到面板 bPoint = new Button(.); /实例化按钮 bEqual = new Button(=); bEqual.setForeground(Color.red); /设置按钮前景色 bClear = new Button(清除); bClear.setForeground(Color.red); bDivision = new Button(/); bDivision.setFore

12、ground(Color.red); bMulti = new Button(*); bMulti.setForeground(Color.red); bMinus = new Button(-); bMinus.setForeground(Color.red); bPlus = new Button(+); bPlus.setForeground(Color.red); setLayout(new FlowLayout(); /设置布局管理器 panel1.setLayout(new FlowLayout(); panel2.setLayout(new GridLayout(4,3); pa

13、nel3.setLayout(new GridLayout(4,1); panel1.add(tfAnswer); /增加组件到面板 panel1.add(bClear); panel2.add(bPoint); panel2.add(bEqual); panel3.add(bPlus); panel3.add(bMinus); panel3.add(bMulti); panel3.add(bDivision); add(panel1); /增加组件到Applet add(panel2); add(panel3); public boolean action(Event e, Object o

14、) /事件处理 String s = new String(); for(int i=0;i10;i+) if(e.target=bi|e.target=bPoint) /按钮事件来自于数字按钮和点按钮 if(e.target != bPoint) s = (String)o; doForeText(s); /处理输入 if(e.target = bPoint)&(!isFloat) /浮点数输入 isFloat = true; /设置运算标志 s = (String)o; if(foreText.equals() foreText += 0.; /增加小数点前面0 else doForeTe

15、xt(s); if(e.target = bClear) doClear(); /清除输入 if(e.target = bMulti)|(e.target = bDivision)| (e.target = bPlus)|(e.target = bMinus) /处理运算 if(foreText != ) currentOp = (String)o); doOperator(); /处理运算 else preOp = (String)o); if(e.target = bEqual) /等于按钮事件处理 doOperator(); /处理运算 return true; public void

16、doOperator() double dFore,dBack; Double d; if(preOp.equals() backText = foreText; foreText = ; tfAnswer.setText(backText); /显示文本 else dFore = (new Double(foreText).doubleValue(); /得到第一输入 dBack = (new Double(backText).doubleValue(); /得到第二输入 foreText = ; backText = tfAnswer.getText(); if(preOp.equals(

17、+) /加运算处理 d = new Double(dBack + dFore); /得到运算结果 tfAnswer.setText(d.toString(); /显示运算结果 backText = d.toString(); if(preOp.equals(-) d = new Double(dBack - dFore);/得到运算结果 tfAnswer.setText(d.toString(); /显示运算结果 backText = d.toString(); if(preOp.equals(*) d = new Double(dBack * dFore);/得到运算结果 tfAnswer.

18、setText(d.toString();/显示运算结果 backText = d.toString(); if(preOp.equals(/) if (dFore=0) tfAnswer.setText(除数不能为0); /显示出错信息 return; d = new Double(dBack / dFore);/得到运算结果 tfAnswer.setText(d.toString();/显示运算结果 backText = d.toString(); /Math.sin(); preOp = currentOp; public void doForeText(String s) foreTe

19、xt += s; tfAnswer.setText(foreText); /显示输入 public void doBackText(String s) backText = foreText; foreText = ; tfAnswer.setText(foreText); /显示输入 public void doClear() /清除输入 currentOp = ; preOp = ; foreText = ; backText = ; isFloat = false; tfAnswer.setText(); 实验结果:实验四 日历的实现功能介绍编写一个程序,有一个窗口,该窗口为Border

20、Layout布局。窗口的中心添加一个Panel容器:pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter的中放置49个标签,用来显示日历。窗口北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth按钮,单击nextMonth,可以显示当前月的下一个月的日历;单击previousMonth按钮,可以显示当前月的上一个月的日历。窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个标签用来显示一些信息。实验步骤:import

21、 java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Calendar;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing

22、.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.border.Border;import javax.swing.border.EtchedBorder;public class Calendarshowing static Calendar c = Calendar.getInstance(); static int year = c.get(Calendar.YEAR), month = c.get(Calendar.MONTH)+1,monthday = 0; static St

23、ring weekdaystr = 日, 一, 二, 三, 四, 五, 六 ; JFrame frame = new JFrame(日历表);/ JPanel panel = new JPanel(); static JLabeldayLabel = new JLabel49; static JPanel showPanel; JButton Prebutton = new JButton(上一月); JButton Nextbutton = new JButton(下一月); JLabel showLabel = new JLabel(); static Border Border01 =

24、BorderFactory.createLineBorder(Color.BLUE, 1); public Calendarshowing() /frame.setResizable(false); showPanel = new JPanel(); frame.setBounds(450, 200, 500, 400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container content = frame.getContentPane(); final JPanel buttonPanel = new JPanel()

25、; buttonPanel.setLayout(new FlowLayout(); Prebutton.addActionListener(new PressButton(); Nextbutton.addActionListener(new PressButton(); buttonPanel.add(Prebutton); buttonPanel.add(Nextbutton); content.add(buttonPanel, BorderLayout.NORTH); final GridLayout gridLayout = new GridLayout(0, 7); gridLayo

26、ut.setHgap(10); gridLayout.setVgap(10); showPanel.setLayout(gridLayout); showLabel.setHorizontalAlignment(JLabel.CENTER); showLabel.setText(+日历: +year+年+month+月+); showLabel.setToolTipText(今天是公元+c.get(Calendar.YEAR)+年+(c.get(Calendar.MONTH)+1)+月+c.get(Calendar.DATE)+日); content.add(showLabel,BorderL

27、ayout.SOUTH); content.add(showPanel, BorderLayout.CENTER); frame.setVisible(true); public class PressButton implements ActionListener Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub JButton button = (JButton)e.getSource(); if (button = Prebutton) month-; if (mon

28、th 12) year+; month-=12; showPanel.removeAll(); showPanel.updateUI(); new showing(); showLabel.setHorizontalAlignment(JLabel.CENTER); showLabel.setText(+日历: +year+年+month+月+); showLabel.setToolTipText(今天是公元+c.get(Calendar.YEAR)+年+(c.get(Calendar.MONTH)+1)+月+c.get(Calendar.DATE)+日); static class show

29、ing public boolean isLeapYear(int year1) / 判断是否是闰年 return (year1 % 4 = 0 & year1 % 100 != 0) | (year1 % 400 = 0); public int firstDay() / 计算该年第一天是星期几 long n = year * 365; for (int i = 1; i year; i+) if (isLeapYear(i) n+; return (int)n%7; public void printWeek() / 设置表头 for (int i = 0; i 7; i+) dayLab

30、eli = new JLabel(weekdaystri,JLabel.CENTER); dayLabeli.setBackground(Color.BLACK); dayLabeli.setForeground(Color.RED); showPanel.add(dayLabeli); public int getMonthDay(int m) / 获取每个月的天数 switch (m) case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: r

31、eturn 30; case 2: if (isLeapYear(year) return 29; else return 28; default: return 0; public int getDays() monthday = 0; for (int i = 1;imonth;i+) monthday+=getMonthDay(i); return (firstDay()+(monthday%7)%7; public showing() int n =1 ; printWeek(); int k = getDays(); int Year = c.get(Calendar.YEAR);

32、int Month = c.get(Calendar.MONTH); Month += 1; int Date = c.get(Calendar.DATE); for (int j = 7;n=getMonthDay(month);j+) if (j k+7) dayLabelj = new JLabel(); showPanel.add(dayLabelj); else dayLabelj = new JLabel(+n,JLabel.CENTER); dayLabelj.setToolTipText(星期+weekdaystr(j)%7); if (Year = year&Month=mo

33、nth&Date = n) dayLabelj.setText(+n+); dayLabel(Date-1)%7.setForeground(Color.BLUE); showPanel.add(dayLabelj); n+; showPanel.setBorder(Border01); public static void main(String args) Calendarshowing c = new Calendarshowing(); showing s = new Calendarshowing.showing(); 实验结果:实验五 简单学生信息管理系统的实现功能介绍设计学生信息

34、管理系统界面,创建学生表,包含学生的学号、姓名、年龄信息等,连接数据库。要求该系统能完成以下操作:根据学号,可以查询到学生的姓名和年龄;给定学生的学号、姓名、年龄,在表中追加一行信息;给定学生的学号,可以从表中删除该学生的信息;实验步骤:public class Search extends org.eclipse.swt.widgets.Composite private Composite composite1;private Composite composite2;private Group group1;private Text text4;private Label label4;

35、private Text text3;private Label label3;private Text text2;private Label label2;private Button button2;private Button button1;private Text text1;private Label label1;/Register as a resource user - SWTResourceManager will/handle the obtaining and disposing of resourcesSWTResourceManager.registerResou

36、rceUser(this);public Search(Composite parent, int style) super(parent, style);initGUI();/* Initializes the GUI.*/private void initGUI() try this.setSize(new org.eclipse.swt.graphics.Point(400,300);this.setBackground(SWTResourceManager.getColor(192, 192, 192);FormLayout thisLayout = new FormLayout();

37、this.setLayout(thisLayout);composite1 = new Composite(this, SWT.NONE);FormLayout composite1Layout = new FormLayout();FormData composite1LData = new FormData();composite1LData.left = new FormAttachment(0, 1000, 0);composite1LData.top = new FormAttachment(0, 1000, 0);composite1LData.width = 400;compos

38、ite1LData.height = 300;composite1.setLayoutData(composite1LData);composite1.setLayout(composite1Layout);group1 = new Group(composite1, SWT.NONE);GridLayout group1Layout = new GridLayout();group1Layout.marginBottom = 30;group1Layout.numColumns = 2;group1Layout.verticalSpacing = 15;group1Layout.marginTop = 10;group1.setLayout(group1Layout);FormData group1LData = new FormData();group1LData.left = new FormAttachment(0, 1000, 38);group1LData.top = new FormAttachment(0, 1000, 106);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com