




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国矿业大学徐海学院软件开发基础实践报告姓 名: 赵辉 学 号: 22110478 专 业: 计算机科学与技术 指导教师: 孙锦程 职 称: 教师 2012 年 6 月 30 徐州姓名/学号: 赵辉/22110478 班级: 计算机科学与技术 一、程序来源: 去图书馆查阅资料以及java书上代码二、程序项目名称:java计算器3、 程序原理: 声明三个面板的布局 ,实例化三个面板的布局 ,实例化所有按钮、设置其前景色并注册监听器 ,创建一个空字符串缓冲区 ,添加面板p0,p1,p2,p3中的组件和设置其在框架中的位置和大小 ,设置框架中的布局为空布局并添加4个面板,匿名类关闭窗口 ,再构造监听器 ,选择CE清零,把显示屏清零 ,清空字符串缓冲区以准备接收新的输入运算数 ,重复显示屏清零,清空缓冲区以便接收新的另一个运算数 ,就这样一个小型计算器建成了。四、程序功能:简单的+,-,*,/运算五、程序内容(输入输出): 输入想要输入的数,进行加减乘除,然后得出结果。六、数据流分析(定义的变量,类型,数组,类型,结构体):Double x y,int z;运用构造函数,继承方法;运用if,else if,catch语句等。七、程序代码分析(每个函数和代码模块的功能作用分析):public class Counter extends Frame /继承方法public Counter()/无参构造函数 addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e1) /写一个关闭窗口方法 class Bt implements ActionListener public void actionPerformed(ActionEvent e2)/构造监听器 public static void main(String args) new Counter();/定义一个类八、控制流分析(源程序整体流程图):9、 源代码优点,好处:操作简单方面快捷,还可以存储一些数据,实用。10、 总结及心得体会: 通过这次软件开发实验报告我学到程序的代码真的得需要平时的大量积累收集才能一步步运用得得心应手,有些代码其实可以直接运用到这上面来,不需要再花大量的时间来敲代码。十一、对源程序过程及方法、手段的改进建议: 可以适当的运用for循环来提高代码的简单度,也就是缩小代码量。报告评分: 指导教师签字:import java.awt.Button;import java.awt.Color;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Panel;import java.awt.TextField;import java.awt.event.*; import java.lang.*; import javax.swing.*; public class Counter extends Frame /声明三个面板的布局 GridLayout gl1,gl2,gl3; Panel p0,p1,p2,p3; JTextField tf1; TextField tf2; Button b0,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; StringBuffer str;/显示屏所显示的字符串 double x,y;/x和y都是运算数 int z;/Z表示单击了那一个运算符.0表示+,1表示-,2表示*,3表示/ static double m;/记忆的数字 public Counter() gl1=new GridLayout(1,4,10,0);/实例化三个面板的布局 gl2=new GridLayout(4,1,0,15); gl3=new GridLayout(4,5,10,15); tf1=new JTextField(27);/显示屏 tf1.setHorizontalAlignment(JTextField.RIGHT); tf1.setEnabled(false); tf1.setText(0); tf2=new TextField(10);/显示记忆的索引值 tf2.setEditable(false); /实例化所有按钮、设置其前景色并注册监听器 b0=new Button(Backspace); b0.setForeground(Color.red); b0.addActionListener(new Bt(); b1=new Button(CE); b1.setForeground(Color.red); b1.addActionListener(new Bt(); b2=new Button(C); b2.setForeground(Color.red); b2.addActionListener(new Bt(); b3=new Button(MC); b3.setForeground(Color.red); b3.addActionListener(new Bt(); b4=new Button(MR); b4.setForeground(Color.red); b4.addActionListener(new Bt(); b5=new Button(MS); b5.setForeground(Color.red); b5.addActionListener(new Bt(); b6=new Button(M+); b6.setForeground(Color.red); b6.addActionListener(new Bt(); b7=new Button(7); b7.setForeground(Color.blue); b7.addActionListener(new Bt(); b8=new Button(8); b8.setForeground(Color.blue); b8.addActionListener(new Bt(); b9=new Button(9); b9.setForeground(Color.blue); b9.addActionListener(new Bt(); b10=new Button(/); b10.setForeground(Color.red); b10.addActionListener(new Bt(); b11=new Button(sqrt); b11.setForeground(Color.blue); b11.addActionListener(new Bt(); b12=new Button(4); b12.setForeground(Color.blue); b12.addActionListener(new Bt(); b13=new Button(5); b13.setForeground(Color.blue); b13.addActionListener(new Bt(); b14=new Button(6); b14.setForeground(Color.blue); b14.addActionListener(new Bt(); b15=new Button(*); b15.setForeground(Color.red); b15.addActionListener(new Bt(); b16=new Button(%); b16.setForeground(Color.blue); b16.addActionListener(new Bt(); b17=new Button(1); b17.setForeground(Color.blue); b17.addActionListener(new Bt(); b18=new Button(2); b18.setForeground(Color.blue); b18.addActionListener(new Bt(); b19=new Button(3); b19.setForeground(Color.blue); b19.addActionListener(new Bt(); b20=new Button(-); b20.setForeground(Color.red); b20.addActionListener(new Bt(); b21=new Button(1/X); b21.setForeground(Color.blue); b21.addActionListener(new Bt(); b22=new Button(0); b22.setForeground(Color.blue); b22.addActionListener(new Bt(); b23=new Button(+/-); b23.setForeground(Color.blue); b23.addActionListener(new Bt(); b24=new Button(.); b24.setForeground(Color.blue); b24.addActionListener(new Bt(); b25=new Button(+); b25.setForeground(Color.red); b25.addActionListener(new Bt(); b26=new Button(=); b26.setForeground(Color.red); b26.addActionListener(new Bt(); /实例化四个面板 p0=new Panel(); p1=new Panel(); p2=new Panel(); p3=new Panel(); /创建一个空字符串缓冲区 str=new StringBuffer(); /添加面板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); /设置框架中的布局为空布局并添加4个面板 setLayout(null); add(p0); add(p1); add(p2); add(p3); setResizable(false);/禁止调整框架的大小 /匿名类关闭窗口 addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e1) System.exit(0); ); setBackground(Color.lightGray); setBounds(100,100,320,280); setVisible(true); /构造监听器 class Bt implements ActionListener public void actionPerformed(ActionEvent e2) try if(e2.getSource()=b1)/选择CE清零 tf1.setText(0);/把显示屏清零 str.setLength(0);/清空字符串缓冲区以准备接收新的输入运算数 else if(e2.getSource()=b2)/选择C清零 tf1.setText(0);/把显示屏清零 str.setLength(0); else if(e2.getSource()=b23)/单击+/-选择输入的运算数是正数还是负数 x=Double.parseDouble(tf1.getText().trim(); tf1.setText(+(-x); else if(e2.getSource()=b25)/单击加号按钮获得x的值和z的值并清空y的值 x=Double.parseDouble(tf1.getText().trim(); str.setLength(0);/清空缓冲区以便接收新的另一个运算数 y=0d; z=0; else if(e2.getSource()=b20)/单击减号按钮获得x的值和z的值并清空y的值 x=Double.parseDouble(tf1.getText().trim(); str.setLength(0); y=0d; z=1; else if(e2.getSource()=b15)/单击乘号按钮获得x的值和z的值并清空y的值 x=Double.parseDouble(tf1.getText().trim(); str.setLength(0); y=0d; z=2; else if(e2.getSource()=b10)/单击除号按钮获得x的值和z的值并空y的值 x=Double.parseDouble(tf1.getText().trim(); str.setLength(0); y=0d; z=3; else if(e2.getSource()=b26)/单击等号按钮输出计算结果 str.setLength(0); switch(z) case 0 : tf1.setText(+(x+y);break; case 1 : tf1.setText(+(x-y);break; case 2 : tf1.setText(+(x*y);break; case 3 : tf1.setText(+(x/y);break; else if(e2.getSource()=b24)/单击.按钮输入小数 if(tf1.getText().trim().indexOf(.)!=-1)/判断字符串中是否已经包含了小数点 else/如果没数点有小 if(tf1.getText().trim().equals(0)/如果初时显示为0 str.setLength(0); tf1.setText(str.append(0+e2.getActionCommand().toString(); else if(tf1.getText().trim().equals()/如果初时显示为空则不做任何操作 else tf1.setText(str.append(e2.getActionCommand().toString(); y=0d; else if(e2.getSource()=b11)/求平方根 x=Double.parseDouble(tf1.getText().trim(); tf1.setText(数字格式异常); if(x0) tf1.setText(负数没有平方根); else tf1.setText(+Math.sqrt(x); str.setLength(0); y=0d; else if(e2.getSource()=b16)/单击了%按钮 x=Double.parseDouble(tf1.getText().trim(); tf1.setText(+(0.01*x); str.setLength(0); y=0d; else if(e2.getSource()=b21)/单击了1/X按钮 x=Double.parseDouble(tf1.getText().trim(); if(x=0) tf1.setText(除数不能为零); else tf1.setText(+(1/x); str.setLength(0); y=0d; else if(e2.getSource()=b3)/MC为清除内存 m=0d; tf2.setText(); str.setLength(0); else if(e2.getSource()=b4)/MR为重新调用存储的数据 if(tf2.getText().trim()!=)/有记忆数字 tf1.setText(+m); else if(e2.getSource()=b5)/MS为存储显示的数据 m=Double.parseDouble(tf1.getText().trim(); tf2.setText(M); tf1.setText(0); str.setLength(0); else if(e2.getSource()=b6)/M+为将显示的数字与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨髓瘤影像课件
- 健康管理信息系统建设方案
- 矿山环境保护工程实施
- 天然气能源替代规定
- 公共交通优化管理规定
- 地产活动客户关系管理制度
- 工作总结:创新思维激发团队创造力
- 石油勘探成本控制操作指引策略制定
- 社交媒体广告投放方案制定
- 商业地产市场调研分析预测报告分析内容详解
- 2025-2026学年湘美版(2024)小学美术二年级上册(全册)教学设计(附目录P208)
- 中小学教师中高级职称答辩备考试题及答案(50题)
- 机关事业单位工人《汽车驾驶员高级、技师》考试题(附答案)
- 2025年重庆中考道德与法治试卷真题解读答案讲解(课件)
- 烟酒店经营许可合同模板
- 税务尽职调查报告(参考)
- 初中七年级上《综合实践》活动课程课件
- 《太阳出来了》课 件课件
- 全屋定制家居整装安装师傅专业安装服务技巧培训指导手册
- 公路桥梁和隧道工程施工安全风险评估讲解(刘兴旺)
- 部编版语文七年级上册古诗文默写填空及答案
评论
0/150
提交评论