JAVA面向对象程序设计课程报告.docx

上传人:wux****ua 文档编号:8273392 上传时间:2020-03-28 格式:DOCX 页数:10 大小:105.58KB
返回 下载 相关 举报
JAVA面向对象程序设计课程报告.docx_第1页
第1页 / 共10页
JAVA面向对象程序设计课程报告.docx_第2页
第2页 / 共10页
JAVA面向对象程序设计课程报告.docx_第3页
第3页 / 共10页
点击查看更多>>
资源描述
JAVA面向对象程序设计课程报告 学 院_ 自 动 化 _专 业_ 自 动 化 _年级班别_13级自动化(卓越工程师一班)学 号_ 3113000993_学生姓名_ 鲁 梦 如_ 2015年 4月 30 日评分要点评分内容得分格式(10分)字体、字号正确,间距正确;文本清晰、美观。源程序(80分)源程序无语法、逻辑错误,可读性强,有一定的工作量。运行结果(10分)有运行结果截图,运行界面截图大小合适。0-59不及格60-69及格70-79中等80-89良好90-100优秀总分JAVA面向对象程序设计课程报告评分标准要求:1、题目(四号、黑体,居中)2、完整源代码(中文:小四,宋体;英文:小四,Times New 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;importjavax.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,MR,MS,M+;/* 计算器上键的按钮 */privateJButton keys =newJButtonKEYS.length;/* 计算器上的功能键的按钮 */privateJButton commands =newJButtonCOMMAND.length;/* 计算器左边的M的按钮 */privateJButton m =newJButtonM.length;/* 计算结果文本框 */privateJTextField resultText =newJTextField(0); / 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字privatebooleanfirstDigit =true;/ 计算的中间结果。privatedoubleresultNum =0.0;/ 当前运算的运算符privateString operator =;/ 操作是否合法privatebooleanoperateValidFlag =true;/* 构造函数*/publicCalculator() super();/ 初始化计算器init();/ 设置计算器的背景颜色this.setBackground(Color.LIGHT_GRAY);this.setTitle(计算器);/ 在屏幕(500, 300)坐标处显示计算器this.setLocation(500,300);/ 不许修改计算器的大小this.setResizable(false);/ 使计算器中各组件大小合适this.pack(); /* 初始化计算器*/privatevoidinit() / 文本框中的内容采用右对齐方式resultText.setHorizontalAlignment(JTextField.RIGHT);/ 不允许修改结果文本框resultText.setEditable(false);/ 设置文本框背景颜色为白色resultText.setBackground(Color.WHITE);/ 初始化计算器上键的按钮,将键放在一个画板内JPanel calckeysPanel =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);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 =newJButton(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.setForeground(Color.red);/ 下面进行计算器的整体布局,将calckeys和command画板放在计算器的中部,/ 将文本框放在北部,将calms画板放在计算器的西部。/ 新建一个大的画板,将上面建立的command和calckeys画板放在该画板内JPanel panel1 =newJPanel();/ 画板采用边界布局管理器,画板里组件之间的水平和垂直方向上间隔都为3象素panel1.setLayout(newBorderLayout(3,3);panel1.add(North, commandsPanel);panel1.add(Center, calckeysPanel);/ 建立一个画板放文本框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);/ 为各按钮添加事件侦听器/ 都使用同一个事件侦听器,即本对象。本类的声明中有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键被按下的事件*/privatevoidhandleBackspace() 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*/privatevoidhandleNumber(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() + key);/ 以后输入的肯定不是第一个数字了firstDigit =false;/* 处理C键被按下的事件*/privatevoidhandleC() / 初始化计算器的各种值resultText.setText(0);firstDigit =true;operator =;/* 处理运算符键被按下的事件* param key*/privatevoidhandleOperator(String key) if(operator.equals(/) / 除法运算/ 如果当前结果文本框中的值等于0if(getNumberFromText() =0.0) / 操作不合法operateValidFlag =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.equals(-) / 减法运算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 = resultNum * (-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 = Double.valueOf(resultText.getText().doubleValue();catch(NumberFormatException e) returnresult;publicstaticvoidmain(String args) Calculator calculator1 =newCalculator();calculator1.setVisible(true);calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);二、代码运行效果截图四、 参考文献JAVA面向对象程序设计(清华大学出版社)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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