




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA面向对象程序设计课程报告 学 院_ 自 动 化 _专 业_ 自 动 化 _年级班别_13级自动化(卓越工程师一班)学 号_ _学生姓名_ 鲁 梦 如_ 2015年 4月 30 日评分要点评分内容得分格式(10分)字体、字号正确,间距正确;文本清晰、美观。源程序(80分)源程序无语法、逻辑错误,可读性强,有一定的工作量。运行结果(10分)有运行结果截图,运行界面截图大小合适。0-59不及格60-69及格70-79中等80-89良好90-100优秀总分JAVA面向对象程序设计课程报告评分标准要求:1、题目(四号、黑体,居中)2、完整源代码(中文:小四,宋体;英文:小四,Times New
2、Roman,单倍行距)。3、运行界面截图。4、单面打印,课程报告正文不少于5页,在报告左侧用两颗钉书针装订。正文目录一、 源代码二、 代码运行效果截图三、 参考文献简单计算器的实现一、源代码importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjava
3、x.swing.JPanel;importjavax.swing.JTextField;publicclassCalculatorextendsJFrameimplementsActionListener /* 计算器上的键的显示名字 */privatefinalString KEYS = 7,8,9,/,sqrt,4,5,6,*,%,1,2,3,-,1/x,0,+/-,.,+,=;/* 计算器上的功能键的显示名字 */privatefinalString COMMAND = Backspace,CE,C;/* 计算器左边的M的显示名字 */privatefinalString M = ,MC
4、,MR,MS,M+;/* 计算器上键的按钮 */privateJButton keys =newJButtonKEYS.length;/* 计算器上的功能键的按钮 */privateJButton commands =newJButtonCOMMAND.length;/* 计算器左边的M的按钮 */privateJButton m =newJButtonM.length;/* 计算结果文本框 */privateJTextField resultText =newJTextField(0); / 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字privatebooleanfi
5、rstDigit =true;/ 计算的中间结果。privatedoubleresultNum =0.0;/ 当前运算的运算符privateString operator =;/ 操作是否合法privatebooleanoperateValidFlag =true;/* 构造函数*/publicCalculator() super();/ 初始化计算器init();/ 设置计算器的背景颜色this.setBackground(Color.LIGHT_GRAY);this.setTitle(计算器);/ 在屏幕(500, 300)坐标处显示计算器this.setLocation(500,300)
6、;/ 不许修改计算器的大小this.setResizable(false);/ 使计算器中各组件大小合适this.pack(); /* 初始化计算器*/privatevoidinit() / 文本框中的内容采用右对齐方式resultText.setHorizontalAlignment(JTextField.RIGHT);/ 不允许修改结果文本框resultText.setEditable(false);/ 设置文本框背景颜色为白色resultText.setBackground(Color.WHITE);/ 初始化计算器上键的按钮,将键放在一个画板内JPanel calckeysPanel
7、=newJPanel();/ 用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素calckeysPanel.setLayout(newGridLayout(4,5,3,3);for(inti =0; i KEYS.length; i+) keysi =newJButton(KEYSi);calckeysPanel.add(keysi);keysi.setForeground(Color.blue);/ 运算符键用红色标示,其他键用蓝色表示keys3.setForeground(Color.red);keys8.setForeground(Color.red
8、);keys13.setForeground(Color.red);keys18.setForeground(Color.red);keys19.setForeground(Color.red);/ 初始化功能键,都用红色标示。将功能键放在一个画板内JPanel commandsPanel =newJPanel();/ 用网格布局器,1行,3列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素commandsPanel.setLayout(newGridLayout(1,3,3,3);for(inti =0; i COMMAND.length; i+) commandsi =ne
9、wJButton(COMMANDi);commandsPanel.add(commandsi);commandsi.setForeground(Color.red);/ 初始化M键,用红色标示,将M键放在一个画板内JPanel calmsPanel =newJPanel();/ 用网格布局管理器,5行,1列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素calmsPanel.setLayout(newGridLayout(5,1,3,3);for(inti =0; i M.length; i+) mi =newJButton(Mi);calmsPanel.add(mi);mi.
10、setForeground(Color.red);/ 下面进行计算器的整体布局,将calckeys和command画板放在计算器的中部,/ 将文本框放在北部,将calms画板放在计算器的西部。/ 新建一个大的画板,将上面建立的command和calckeys画板放在该画板内JPanel panel1 =newJPanel();/ 画板采用边界布局管理器,画板里组件之间的水平和垂直方向上间隔都为3象素panel1.setLayout(newBorderLayout(3,3);panel1.add(North, commandsPanel);panel1.add(Center, calckeysP
11、anel);/ 建立一个画板放文本框JPanel top =newJPanel();top.setLayout(newBorderLayout();top.add(Center, resultText);/ 整体布局getContentPane().setLayout(newBorderLayout(3,5);getContentPane().add(North, top);getContentPane().add(Center, panel1);getContentPane().add(West, calmsPanel);/ 为各按钮添加事件侦听器/ 都使用同一个事件侦听器,即本对象。本类的
12、声明中有implements ActionListenerfor(inti =0; i KEYS.length; i+) keysi.addActionListener(this);for(inti =0; i COMMAND.length; i+) commandsi.addActionListener(this);for(inti =0; i =0) / 用户按了数字键或者小数点键handleNumber(label);/ handlezero(zero);else/ 用户按了运算符键handleOperator(label);/* 处理Backspace键被按下的事件*/privatev
13、oidhandleBackspace() String text = resultText.getText();inti = text.length();if(i 0) / 退格,将文本最后一个字符去掉text = text.substring(0, i -1);if(text.length() =0) / 如果文本没有了内容,则初始化计算器的各种值resultText.setText(0);firstDigit =true;operator =;else/ 显示新的文本resultText.setText(text);/* 处理数字键被按下的事件* param key*/privatevoi
14、dhandleNumber(String key) if(firstDigit) / 输入的第一个数字resultText.setText(key);elseif(key.equals(.) & (resultText.getText().indexOf(.) 0) / 输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面resultText.setText(resultText.getText() +.);elseif(!key.equals(.) / 如果输入的不是小数点,则将数字附在结果文本框的后面resultText.setText(resultText.getText(
15、) + key);/ 以后输入的肯定不是第一个数字了firstDigit =false;/* 处理C键被按下的事件*/privatevoidhandleC() / 初始化计算器的各种值resultText.setText(0);firstDigit =true;operator =;/* 处理运算符键被按下的事件* param key*/privatevoidhandleOperator(String key) if(operator.equals(/) / 除法运算/ 如果当前结果文本框中的值等于0if(getNumberFromText() =0.0) / 操作不合法operateVali
16、dFlag =false;resultText.setText(除数不能为零);elseresultNum /= getNumberFromText();elseif(operator.equals(1/x) / 倒数运算if(resultNum =0.0) / 操作不合法operateValidFlag =false;resultText.setText(零没有倒数);elseresultNum =1/ resultNum;elseif(operator.equals(+) / 加法运算resultNum += getNumberFromText();elseif(operator.equa
17、ls(-) / 减法运算resultNum -= getNumberFromText();elseif(operator.equals(*) / 乘法运算resultNum *= getNumberFromText();elseif(operator.equals(sqrt) / 平方根运算resultNum = Math.sqrt(resultNum);elseif(operator.equals(%) / 百分号运算,除以100resultNum = resultNum /100;elseif(operator.equals(+/-) / 正数负数运算resultNum = resultN
18、um * (-1);elseif(operator.equals(=) / 赋值运算resultNum = getNumberFromText();if(operateValidFlag) / 双精度浮点数的运算longt1;doublet2;t1 = (long) resultNum;t2 = resultNum - t1;if(t2 =0) resultText.setText(String.valueOf(t1);elseresultText.setText(String.valueOf(resultNum);/ 运算符等于用户按的按钮operator = key;firstDigit =true;operateValidFlag =true;/* 从结果文本框中获取数字* return*/privatedoublegetNumberFromText() doubleresult =0;tryresult = Doub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度专业技术人员继续教育公需科目考试题与答案(湖南)
- 12月医师专业知识习题库(附答案)
- 2025年1月中级保安员练习题库+答案
- 河南事业单位工勤高级工考试题库及答案
- 住院楼电气设备调试实施方案
- 2025版电子设备购销合同范本
- 大学毕业论文致谢词6篇
- (2025年)安全生产读书心得(3篇)
- 2025家政服务员(母婴护理专业技能及理论知识)考试全国模拟试卷及答案
- 2.1 简谐运动教学设计-2025-2026学年高中物理沪教版2019选择性必修第一册-沪教版2019
- 《复杂世界简单规律》课件
- 性别平等培训讲义
- 大于号小于号等于号田字格描红
- 普通心理学第六版PPT完整全套教学课件
- DISC沟通风格测试
- 大学体育:轮滑教案
- DB31-T 1380-2022 社会消防技术服务机构质量管理要求
- 常见天气系统课件
- 不良资产项目尽调指引
- 深基坑钢板桩支护方案
- 李家河大坝监测工程大坝安全监测报告
评论
0/150
提交评论