Java程序语言课程设计-基于Java的计算器设计与开发.doc_第1页
Java程序语言课程设计-基于Java的计算器设计与开发.doc_第2页
Java程序语言课程设计-基于Java的计算器设计与开发.doc_第3页
Java程序语言课程设计-基于Java的计算器设计与开发.doc_第4页
Java程序语言课程设计-基于Java的计算器设计与开发.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学华夏学院 课程设计报告书 课程名称: Java程序语言课程设计 题 目:基于Java的计算器设计与开发 系 名: 信息工程系 专业班级: 计算机1152班 姓 名: 学 号: 指导教师: 2017年9月4日至2017年9月8日课程设计任务书学生姓名: 专业班级: 计算机1152班 指导教师: 工作单位: 信息工程系 设计题目:基于Java的计算器设计与开发一、课程设计目的与任务1、 培养独立的Java语言与算法设计方法,具备初步的独立分析和设计能力;2、 学习软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3、 训练综合运用所学的理论知识和方法进行独立分析和解决问题的能力;4、 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。5、 设计的题目要求达到一定工作量,程序能够运行,并对标准的测试数据有正确的输出结果,按要求的书写格式编写出课程设计报告书。学生将在指导老师的指导下,完成从需求分析,系统设计,编码到测试的全过程。二、课程设计的内容与基本要求计算器模拟程序功能要求:该程序基于Java,能实现整数的加、减、乘、除四则运算。界面要示:用图形界面实现。可参考下图。图1 计算器模拟程序界面三、课程设计步骤及时间进度和场地安排本课程设计将安排在第1周, 教育技术中心232机房。具体安排如下:第一天 下发任务书,学生查阅资料第二天 系统设计和原型开发第三,四天 系统功能实现第五天 系统调试 测试 打包和验收周次星期一星期二星期三星期四星期五第1周第3、4节第3、4节第3、4节第3、4节第3、4节地点现教232现教232现教232现教232现教232四、课程设计考核及评分标准课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。具体评分标准如下:设置六个评分点(1)设计方案正确,具有可行性、创新性; 25分(2)系统开发效果较好; 25分(3)态度认真、刻苦钻研、遵守纪律; 10分(4)设计报告规范、课程设计报告质量高、参考文献充分 20分(5)课程设计答辩概念清晰,内容正确 10分(6)课程设计期间的课堂考勤、答疑与统筹考虑。 10分 按上述六项分别记分后求和,总分按五级记分法记载最后成绩。优秀(10090分),良好(8089分),中等(7079分),及格(6069分),不及格(059分)课程设计报告1 设计目的 复习巩固java语言的基础知识,进一步加深对java语言的理解和掌控。通过基于java的计算器开发与设计课程设计使我们能够较直观的了解面向对象程序设计的有关概念和开发方法,以便能比较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。2 开发环境 Eclipse和Android sdk3 需求分析 随着日常生活和学习生活中计算量越来越大以及信息化时代便捷的生活方式,计算器的使用频率越来越高。为提高我们学生实践能力、将我们所学知识学以致用,老师要求我们利用自己所学知识设计开发一个属于自己的简单计算器来完成日常学习生活。 本课程设计就是要做一个图形界面的计算器,其界面主要是由GridLayout布局组成,程序功能实现主要由ActionListener()监听完成。程序实现的计算器功能有加、减、乘、除基本算术运算和倒数、根号、模求值运算以及正负号、小数点、模等符号运算,同时还具有退格和清零功能。4 概要设计4.1主界面设计主界面主要是由GridBagLayout、JFrame布局、按钮和多行文本框组成,这里的每一个按钮,在后面都将启用监听同能,这里的多行文本框都将起到输入输出计算等的功能,通过实例化一个对象,使计算器实现,计算器主界面如图4.1所示:图4.1主界面效果图4.2系统功能设计4.2.1数字键功能函数流程图开始Flag=1调用监听方法文本框一直接加字符,文本框而覆盖.表示没有运算,在文本框一文本框二直接显示结束NY文本框一直接加数字,文本框而覆盖.判断c的最后字符是?Y为数字或者小数点为运算符图4.2.1 数字键功能函数流程图4.2.2加减乘除功能函数流程图开始监听到动作为本符号则不变,不为本符号则覆盖为本符号对x、y和z进行加减乘除的运算,并改变flag的值结束x与y的运算符号变化4.2.2加减乘除功能函数流程图4.2.3开方、取倒、正负转换、百分号功能函数流程图开始监听到动作计算出转换后的数值,并显示在文本框中对x或y进行转换,并改变其对应标志位结束内部实际数值转化视觉文本框数值变化4.2.3开方、取倒、正负转换、百分号功能函数流程图4.2.4等号功能函数流程图4.2.4等号功能函数流程图开始Flag?监听到动作判断flag的值,从而确定对应的加减乘除运算,得出结果结束Flag=0Flag=0/1/2/3/4显示的结果是“除数不能为零”4.2.5退格功能函数流程图开始监听到动作通过字符数组与字符串的转换、数组间的复制完成退格功能结束内部实际数值转化视觉文本框数值变化通过字符数组与字符串的转换、数组间的复制完成退格功能4.2.5退格功能函数流程图4.2.5退一整格功能函数流程图开始监听到动作把加减乘除保留的文本框内容重新覆盖到该文本框一,并把jta2的内容赋为空结束4.2.5退一整格功能函数流程图5详细设计与实现5.1加法功能首先,查找文框中字符串的最后一个字符,如果为数字,就进行一次运算,不为数字就不做运算,然后调用函数将x+y的值赋值给z,z的值赋值给x,最后令flag=1,使其进行算法运算之后还能继续进行运算。加法功能实现代码如下:jb23.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stubstr=jta1.getText();char c=str.charAt(str.length()-1);if(c=0&c=9)jta1.append(+);js();flag=1;else if(c=+);else if(c=-|c=*|c=/)flag=1; char cc=str.toCharArray(); cccc.length-1=+; str=new String(cc); jta1.setText(str);js();x=x-y;string=jta1.getText(); );5.2数字键功能 判断数字键功能sz()中的Flag是否为0,如果为0表示没有运算,在文本框一文本框二直接显示,反之,如果为1,文本框一直接加数字,文本框而覆盖. public void sz(String str1) if(flag=0) jta1.append(str1); jta2.append(str1);elsestr=jta1.getText(); char c=str.charAt(str.length()-1); jta1.append(str1); if(c=0|c=.)jta2.append(str1);else if(c=+|c=-|c=*|c=/)jta2.setText(str1); 5.3开方、正负转换、求倒数、百分号等按键功能 首先判断文本框中字符串转换为双精度浮点型,取倒数再重新显示字符到文本框中。 比如:正负运算的代码: jb4.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stubdouble dd=Double.parseDouble(jta2.getText();dd=-dd;jta1.setText(string+dd);jta2.setText(dd+););5.4等号键功能 判断flag的值,若为1、2、3、4则做相应的加减乘除运算,并把运算结果显示在多行文本框中,不过当等号除法运算时,若除数y为0,则显示“除数不能为0”。代码:jb20.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stubswitch(flag)case 1:str2=jta2.getText(); y=Double.parseDouble(str2); z=x+y;jta3.setText(=+z+);break;case 2:str2=jta2.getText(); y=Double.parseDouble(str2); z=x-y;jta3.setText(=+z+);break;case 3:str2=jta2.getText(); y=Double.parseDouble(str2); z=x*y;jta3.setText(=+z+);break;case 4: str2=jta2.getText(); y=Double.parseDouble(str2); if(y!=0) z=x/y;jta3.setText(=+z+); else if(y=0) jta3.setText(除数不能为0); break;);5.4退格键功能 判断多行文本框中字符串的最后一个字符是否为数字,为数字,方可进行退格。实际上,通过字符串与字符数组之间的相互转换,没按一次退格按钮,将字符数组的长度减一,然后通过arraycopy函数进行数组复制,实现字符串的退格。退格键代码: jb1.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stubstr=jta1.getText();char a=str.charAt(str.length()-1);if(a=0&a=9|a=.|a=-)String s=jta1.getText();char c=s.toCharArray();char ccc=new charc.length-1;System.arraycopy(c, 0, ccc, 0, c.length-1);s=new String(ccc);jta1.setText(s);String s2=jta2.getText();char c2=s2.toCharArray();char ccc2=new charc2.length-1;System.arraycopy(c2, 0, ccc2, 0, c2.length-1);s2=new String(ccc2);jta2.setText(s2););5.4退一整格键功能将第二文本框内容进行复制为空,在多行文本框中显示进行符号运算时保留下来的字符串。退整格键代码: jb2.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stubjta2.setText();jta1.setText(string););6 调试与测试 6.1基本运算下面以3、5、7为例调试基本运算中的加减乘除运算,测试过程如图6.1.1 6.1.2 6.1.3 6.1.4所示:图6.1.1加法运算过程图 图6.1.2加法运算过程图图6.1.2加法运算过程图 图6.1.2加法运算过程图6.2开方、正负转换、取倒等运算例:取倒运算检测,如图6.2.1 6.2.2:如图6.2.1取倒运算过程图 如图6.2.2取倒运算过程图 6.3退格运算退格运算检测,如图6.3.1 6.3.2如图6.3.1退格运算过程图 如图6.3.2 退格运算过程图6.4退整格运算退整格运算检测,如图6.4.1 6.4.2如图6.4.1退整格运算过程图如图6.4.2退整格运算过程图7 心得体会此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。在完成课设的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。最大的收获就是对大学学习的培养了解决困难的信心和能力,使我对所学知识能融会贯通,又不断丰富了新知识。Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。在接下来的时间里,我觉得我要更加努力的往深一层次的方面看齐,了解更多有关Java的知识,对Java有更深一步的了解,我会一步一步的走下去!设计过程及答辩回答问题记载:(至少三个问题)1、 如何实现数字按钮的功能?答:数字键功能是通过监听

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论