实训报告书实训名称:JAVA2程序设计系(部):专业班级:学生姓名:学号:指导教师:完成日期:实训课题Java程序设计实训实训人姓名同组人员无实训日期09年12月28日至12月31日实训成绩指导教师评语指导教师签名:_____________________年____月____日课程实训报告书1目录1实训目的.................................................................................................22计算器系统的分析与设计..................................................................22.1系统功能描述............................................................................22.2系统模块设计............................................................................23主要代码清单.......................................................................................24程序运行与测试................................................................................155实训总结.............................................................................................16……………………………装……………………………………订…………………………………线……………………………计算器系统的设计与实现1实训目的《Java程序设计实训》是计算机专业一门重要的专业技术基础实践课程。为了能够较好的完成实训任务,学生应具备软件开发技术的基础知识,实训的主要目的在于将理论与实际应用相结合,使用程序设计语言java,以及相关软件设计开发知识完成软件的设计开发任务。本实训课程将为整个专业的学习以及软件设计水平的提高打下良好的基础,提高学生项目分析、设计、编写、调试和测试的能力,并培养基本的、良好的团队合作能力。实训中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握软件开发技术,提高分析、解决实际问题的能力。本次实训要求在学生能够较熟练使用java程序设计语言进行软件代码的编写,同时还要具备较好的项目分析的能力,加深对相关课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。2计算器系统的分析与设计2.1系统功能描述1.计算器【问题描述】参考系统附件中的计算器,设计实现一个简单的计算器。【基本要求】通过此系统可以实现如下功能:1)可进行“+”、“-”、“*”、“/”以及混合运算。2)实现根号、百分比、倒数功能。3)实现数字记忆、读取(类似复制和粘贴操作)2.2系统模块设计该系统包括界面模块,运算功能模块与控制模块。界面模块包括图层,按钮,文本框;运算模块包括点击按钮来实现的加减乘除功能;控制模块包括程序的缓存清除与结束程序。3主要代码清单importjava.awt.*;importjava.awt.event.*;importjava.lang.*;importjavax.swing.*;publicclassCounterextendsFrame{//声明三个面板的布局GridLayoutgl1,gl2,gl3;Panelp0,p1,p2,p3;JTextFieldtf1;TextFieldtf2;Buttonb0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;StringBufferstr;//显示屏所显示的字符串doublex,y;//x和y都是运算数intz;//Z表示单击了那一个运算符.0表示+,1表示-,2表示*,3表示/staticdoublem;//记忆的数字publicCounter(){gl1=newGridLayout(1,4,10,0);//实例化三个面板的布局gl2=newGridLayout(4,1,0,15);gl3=newGridLayout(4,5,10,15);tf1=newJTextField(27);//显示屏tf1.setHorizontalAlignment(JTextField.RIGHT);tf1.setEnabled(false);tf1.setText(0);tf2=newTextField(10);//显示记忆的索引值tf2.setEditable(false);//实例化所有按钮、设置其前景色并注册监听器b0=newButton(Backspace);b0.setForeground(Color.red);b0.addActionListener(newBt());b1=newButton(CE);b1.setForeground(Color.red);b1.addActionListener(newBt());b2=newButton(C);b2.setForeground(Color.red);b2.addActionListener(newBt());b3=newButton(MC);b3.setForeground(Color.red);b3.addActionListener(newBt());b4=newButton(MR);b4.setForeground(Color.red);b4.addActionListener(newBt());b5=newButton(MS);b5.setForeground(Color.red);b5.addActionListener(newBt());b6=newButton(M+);b6.setForeground(Color.red);b6.addActionListener(newBt());b7=newButton(7);b7.setForeground(Color.blue);b7.addActionListener(newBt());b8=newButton(8);b8.setForeground(Color.blue);b8.addActionListener(newBt());b9=newButton(9);b9.setForeground(Color.blue);b9.addActionListener(newBt());b10=newButton(/);b10.setForeground(Color.red);b10.addActionListener(newBt());b11=newButton(sqrt);b11.setForeground(Color.blue);b11.addActionListener(newBt());b12=newButton(4);b12.setForeground(Color.blue);b12.addActionListener(newBt());b13=newButton(5);b13.setForeground(Color.blue);b13.addActionListener(newBt());b14=newButton(6);b14.setForeground(Color.blue);b14.addActionListener(newBt());b15=newButton(*);b15.setForeground(Color.red);b15.addActionListener(newBt());b16=newButton(%);b16.setForeground(Color.blue);b16.addActionListener(newBt());b17=newButton(1);b17.setForeground(Color.blue);b17.addActionListener(newBt());b18=newButton(2);b18.setForeground(Color.blue);b18.addActionListener(newBt());b19=newButton(3);b19.setForeground(Color.blue);b19.addActionListener(newBt());b20=newButton(-);b20.setForeground(Color.red);b20.addActionListener(newBt());b21=newButton(1/X);b21.setForeground(Color.blue);b21.addActionListener(newBt());b22=newButton(0);b22.setForeground(Color.blue);b22.addActionListener(newBt());b23=newButton(+/-);b23.setForeground(Color.blue);b23.addActionListener(newBt());b24=newButton(.);b24.setForeground(Color.blue);b24.addActionListener(newBt());b25=newButton(+);b25.setForeground(Color.red);b25.addActionListener(newBt());b26=newButton(=);b26.setForeground(Color.red);b26.addActionListener(newBt());//实例化四个面板p0=newPanel();p1=newPanel();p2=newPanel();p3=newPanel();//创建一个空字符串缓冲区str=newStringBuffer();//添加面板p0中的组件和设置其在框架中的位置和大小p0.add(tf1);p0.setBounds(10,25,300,40);//添加面板p1中的组件和设置其在框架中的位置和大小p1.setLayout(gl1);p1.add(tf2);p1.add(b0);p1.add(b1);p1.add(b2);p1.setBounds(10,65,300,25);//添加面板p2中的组件并设置其的框架中的位置和大小p2.setLayout(gl2);p2.add(b3);p2.add(b4);p2.add(b5);p2.add(b6);p2.setBounds(10,110,40,150);//添加面板p3中的组件并设置其在框架中的位置和大小p3.setLayout(gl3);//设置p3的布局p3.add(b7);p3.add(b8);p3.add(b9);p3.add(b10);p3.add(b11);p3.add(b12);p3.add(b13);p3.add(b14);p3.add(b15);p3.add(b16);p3.add(b17);p3.add(b18);p3.add(b19);p3.add(b20);p3.add(b21);p3.add(b22);p3.add(b23);p3.add(b24);p3.add(b25);p3.add(b26);p3.setBounds(60,110,250,150);//设置框架中的布局为