关于计算器的Java课程设计总结报告.docx
《关于计算器的Java课程设计总结报告.docx》由会员分享,可在线阅读,更多相关《关于计算器的Java课程设计总结报告.docx(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于计算器的Java课程设计总结报告 Java课程设计总结报告 学生学号姓名 专业班级 所属学期20 15 -20 16 学年第 2 学期 一、课程设计总结报告 (注:内容请参考教材:Java应用开发与实践,人民邮电出版社,刘乃琦,苏畅主编此书中第20章或21章或22章课程设计报告的写法。) 计算器需求分析 1.系统目标 一个具有连算功能的计算器程序。用户可以利用鼠标点击数值或操作符按键完成计算的输入,上面一个文本框显示计算过程,下面一个文本框显示输入的数字。当按下运算符号时,如果前面已经按下过运算符号,上面一个文本框显示按过的所有按钮,下面一个文本框显示上一个运算符号以及两个数之间的运算结果
2、。 2.主体功能 a.按下数字键在文本框上会显示数字,这是计算器最基本的功能。 b.按下数字键加上“+-*/%”加上数字键进行加、减、乘、除、求余计算。 c.按下“+-”键,计算器下一个文本框上的数字置反。 d.按下“sqrt”键,计算器下一个文本框上的数字进行开根号运算。 e.按下“1/x”键,计算器下一个文本框上的数字进行求倒数运算 f.按下清除“C”键,上下文本框上的数据被全部清除,按下清除“CE”键,下面一个文本框上的数据被全部清除,按下清除“backspace”键,下面一个文本框上的数据被清除一位 g.按下一个数字按钮加上“MS”,就将此数据保存,同时做下“M”记号;按下“MR”,就
3、读取此数据在下一个文本框中;按下“MC”,就清除数据;按下“M+”,就将当前文本框的数据加上储存的数据。 计算器总体设计 1.系统功能模块划分 a主界面模块 b方法模块 c事件相应模块 2.系统功能图 计算器详细设计 1.设置窗体为calculator 继承JFrame 类和 ActionListener 接口,并实现public void actionPerformed(ActionEvent e) 方法 public void actionPerformed(ActionEvent e) Object t = e.getSource();/用来获取事件对象 if (t=fuzhi) cop
4、ycontent=text.getText(); / 例如事件对象为fuzhi 就发生如上操作,以此类推 / 2.设置程序的主框架 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); setBounds(100, 100, 450, 300); setTitle(计算器); this .setResizable(false ); contentPane =getContentPane();/获得内容面板 contentPane .setLayout(new BorderLayout(0, 0);/设为边界布局 panel1 = new JPanel
5、(); contentPane .add(panel1, BorderLayout.NORTH ); panel1.setLayout(new GridLayout(0, 1, 0, 0);/设为网格布局,一列多行 text1 = new JTextField(); text1.setHorizontalAlignment(SwingConstants.RIGHT );/右对齐 text1.setEditable(false );/不可编辑 计算器 标题栏 菜单栏 文本框 按键 标题:计算器 编辑 查看 帮助 text1 text 复制 粘贴 标准型 作者 关于 1-9、+/-、.、M 、CE
6、 、C 、+、-、*、/、sqrt 、%、 1/x 、=、MC 、MR 、MS 、M+ panel1.add(text1); text1.setColumns(10);/设为10列 text = new JTextField(); text.setHorizontalAlignment(SwingConstants.RIGHT);/右对齐 text.setEditable(false);/不可编辑 panel1.add(text); text.setColumns(10);/设为10列 JPanel panel2 = new JPanel(); contentPane.add(panel2);
7、/默认为contentPane的中间 panel2.setLayout(new BorderLayout(0, 0); JPanel p1 = new JPanel(); FlowLayout fl_p1 = (FlowLayout) p1.getLayout();/设为流水布局 fl_p1.setHgap(60);/列距为60 panel2.add(p1, BorderLayout.NORTH); JPanel p2 = new JPanel(); panel2.add(p2, BorderLayout.WEST); p2.setLayout(new GridLayout(0, 1, 5,
8、5); JPanel p3 = new JPanel(); panel2.add(p3, BorderLayout.CENTER); p3.setLayout(new GridLayout(0, 5, 5, 5); 3.设置main方法 public static void main(String args) try calculator frame = new calculator(); frame.setVisible(true); catch (Exception e) e.printStackTrace(); 4.设置数字按键并添加事件监控器及其响应代码 boolean clear =
9、 true;/ 是否点击符号+-*/=%sqrt+/-1/x,如果点击了就为false,按下数字时就去除text中的数据 boolean isResult = false;/ 是否有计算结果,有结果就为true,就不能使用退格键 int a = 0;/ 是否按了+-*/%,按了之后没按数字而是再按这些就不会执行接下来按得按键 num1 = new JButton(1);/设置数字按键1 num1.addActionListener(this);/为1添加事件监控器 if(t=num1) if(clear=false) text.setText();/设置文本框为空 text.setText(t
10、ext.getText()+1);/再将1写进文本框 clear=true;/表示此时可以继续输入数字 isResult=false;/此时不为计算结果,因此设isResult为false a=0;/此时没有按+-*/%,因此设a为0 /1的响应代码 / 其它数字按键都以此类推 / 5.设置小数点并添加事件监控器及其响应代码 boolean click = true;/ 是否点击了“.” dian = new JButton(.);/设置小数点 dian.addActionListener(this);/添加事件监控器 if(t=dian) click=true; for(int i=0;it
11、ext.getText().length();i+) if(text.getText().charAt(i)=.) click=false;/已经存在.,就设click为false break; /若text中已经存在.,则不再输入点. if(click=true)/click为true,表示text中尚未存在. if(Integer.parseInt(text.getText()=0) text.setText(0.);/增加容错性,就算按了一个以上0,按了点之后还是会变回0. else text.setText(text.getText()+.);/text中的值不为0,则直接在后面加上.
12、 isResult=false;/此时不为计算结果,因此设isResult为false /.的响应代码 6.设置正负号并添加事件监控器及其响应代码 zhengfuhao = new JButton(+/-);/设置正负号 zhengfuhao.addActionListener(this);/添加事件监控器 if(t=zhengfuhao) if(Double.parseDouble(text.getText()!=0) text.setText(-Double.parseDouble(text.getText()+); /只要text中的值不为0,就直接取它的相反数 clear=false;
13、/表示按了+/-再按数字键就会覆盖当前text中的内容 /+/-的响应代码 7.设置开根号并添加事件监控器及其响应代码 sqrt = new JButton(sqrt);/设置开根号 sqrt.addActionListener(this);/添加事件监控器 if(t=sqrt) first=Double.parseDouble(text.getText(); if(first0) text.setText(负数不能开根号); /不能进行sqrt运算,并输出负数不能开根号 else text1.setText(sqrt(+first+);/在text1上输出例如:sqrt(5) text.se
14、tText(String.valueOf(Math.sqrt(first);/输出结果 clear=false;/表示按了sqrt之后再按数字键就会覆盖当前text中的内容 isResult=true;/此时为计算结果,因此设isResult为true /sqrt的响应代码 8.设置倒数并添加事件监控器及其响应代码 yichux = new JButton(1/x);/设置倒数 yichux.addActionListener(this);/添加事件监控器 if(t=yichux) first=Double.parseDouble(text.getText(); if(first=0) tex
15、t.setText(除数不能为零);/不能进行1/x运算,并输出除数不能为零 else text1.setText(1/+first);/在text1上输出例如:1/5 text.setText(+1/first);/输出结果 clear=false;/表示按了1/x之后再按数字键就会覆盖当前text中的内容 isResult=true;/此时为计算结果,因此设isResult为true /倒数的响应代码 9.设置+-*/%并添加事件监控器及其响应代码 int a = 0;/ 是否按了+-*/%,按了之后没按数字而是再按这些就不会执行接下来按得按键 String fuhao;/ 记住按了什么符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 计算器 Java 课程设计 总结报告
限制150内