




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简单计算器目录第1章课题概述 21.1课题的目的 21.2课题的要求 21.2.1输入输出的要求 21.2.2程序实现的功能要求 2第2章概要设计 32.1整个程序的模块结构及流程 32.2实现可显示窗口界面 42.3输入数据合法性的检测及初步处理 4第3章程序功能的实现 53.1.1基本框架的实现 53.1.2添加相应的按钮 63.1.3运算设计代码 6第4章调试及发现问题的解决 92.1除数不能为零 92.2当输入的运算符超过两个 9第5章程序测试及分析 10第6章总结 11参考文献 12
第1章课题概述本次数据结构课程设计的题目是设计并实现一个简单的计算器进行数字的简单算法。1.1课题的目的(1)理解并掌握Java中的类、对象、继承、方法等概念,以及Applet的基本框架和事件处理的方法。(2)学会一些按钮,标签,主件,文本框的使用;(3)学会使用JDK编写、调试和运行JavaApplet应用程序。(4)利用awt组件编写一个计算器,实现基本的四则运算。1.2课题的要求1.2.1输入输出的要求(1)程序运行后应首先输出一个主菜单,并将所有的数字及加、减、乘、除等功能罗列在主菜单上供用户进行选择,以便进行相应的操作。(2)运算对象从鼠标点击输入,并且能及时的更新数据。(3)用户每次更新输入数据并选择运算菜单后,应能立即输出运算的结果。(4)运行结果的输出应整齐、清晰,以便用户能够验证程序的正确性。1.2.2程序实现的功能要求文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数值加、减、乘、除。第2章概要设计2.1整个程序的模块结构及流程根据课题要求,整个程序按分为数字键及加减乘除按键和显示屏。为更好地提供程序的人机交互能力,程序还应提供退出程序、清零等功能。开始开始登录界面计算器界面运算器数据运算符号功能模块输出结果退出界面继续退出再次登录2.2实现可显示窗口界面由于用户需要在程序一次运行后能够获取键盘的信息,也就是说,这个运行结果要始终保留给用户,所以可以通过一个可视化的窗口把信息呈现给用户。这个可视化的窗口要求可以显示给用户,它应该有美观的外观,简洁的图形元素,相应的信息输出。一般情况下,用户需要对窗口进行指示,比如调整窗口大小,使得窗口显示或者隐藏,这都需要程序员事先考虑到并通过代码来实现符合用户需要的这些各项功能,以便用户实现。2.3输入数据合法性的检测及初步处理参与运算的两个数均可由用户输入后更新,为防止用户输入非法数据,在更数之前,对用户输入的字符串进行数据合法性检验是非常重要的。运用for循环以及switch语句来处理数字的合法性及处理异常,提示用户如何去正确的输入数字。
第3章程序功能的实现3.1.1基本框架的实现界面设计要求用GUI,界面设计中有用到swing组件的TextField、Button,和JLable用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如下:框架构成的代码如下privateString[]str={"7","8","9","/","4","5","6","*","1","2","3","-",".","0","=","+"};JButton[]buttons=newJButton[str.length];JButtonreset=newJButton("CE");JTextFielddisplay=newJTextField("");publicJCalculator(){super("Calculator");JPanelpanel1=newJPanel(newGridLayout(4,4,10,10));for(i=0;i<str.length;i++){buttons[i]=newJButton(str[i]);panel1.add(buttons[i]);}JPanelpanel2=newJPanel(newBorderLayout());panel2.add("Center",display);panel2.add("East",reset);getContentPane().add("North",panel2);getContentPane().add("Center",panel1);for(i=0;i<str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this);setSize(300,200);setVisible(true);display.setEditable(false); setResizable(false);}3.1.2添加相应的按钮运用两个for循环来添加及监听相应的按钮for(i=0;i<str.length;i++){buttons[i]=newJButton(str[i]);panel1.add(buttons[i]);}for(i=0;i<str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this);3.1.3运算设计代码publicvoidgetValue(){ Stringtext=display.getText(); doubleresult=0; Strings[]={"+","-","*","/"}; Stringtmp=""; for(inti=0;i<s.length;i++){//+-*/ if(text.indexOf(s[i])!=text.lastIndexOf(s[i])){ JOptionPane.showMessageDialog(this,"输入格式错误!"); display.setText(""); return; } } if(text.contains("+")){ tmp="+"; }elseif(text.contains("-")){ tmp="-"; }elseif(text.contains("*")){ tmp="*"; }elseif(text.contains("/")){ tmp="/"; } if(tmp.equals("+")){ tmp=":"; text=text.replace('+',':'); }elseif(tmp.equals("-")){ tmp=""; text=text.replace('-',''); }elseif(tmp.equals("*")){ tmp=","; text=text.replace('*',','); }elseif(tmp.equals("/")){ tmp=";"; text=text.replace('/',';'); } Stringstr[]=text.split(tmp); switch(tmp){ case":": result=Double.parseDouble(str[0])+Double.parseDouble(str[1]); break; case"": result=Double.parseDouble(str[0])-Double.parseDouble(str[1]); break; case",": result=Double.parseDouble(str[0])*Double.parseDouble(str[1]); break; case";": if(Double.parseDouble(str[1])==0){ JOptionPane.showMessageDialog(this,"除数不能为0!"); display.setText(""); return; } result=Double.parseDouble(str[0])/Double.parseDouble(str[1]); break; } Stringst=display.getText()+"="+result; display.setText(st); }
第4章调试及发现问题的解决2.1除数不能为零运算过程中如果输入的除数为零则会提示if(Double.parseDouble(str[1])==0){ JOptionPane.showMessageDialog(this,"除数不能为0!");2.2当输入的运算符超过两个该计算器为了使用户更加方便的使用计算器,设计了只运算一个运算符,当出现两个时显示if(text.indexOf(s[i])!=text.lastIndexOf(s[i])){ JOptionPane.showMessageDialog(this,"输入格式错误!"); display.setText(""); return; }第5章程序测试及分析运行程序,结果如图5-1。
第6章总结经过努力的学习及零碎时间,终于是完成了简单计算器的课程设计实验,在这过程中感到了Java的乐趣以及做出一样东西的自豪感,我相信我会喜欢上编程,总结下来有一下几点:1、遇到困难时应该如何去做。当遇到困难时我们不应该退缩,我们要勇往直前,到图书馆里去搜索书籍,或到网上去搜一些资料及视屏相信你会从中收获很多,实在不行的话我们还可以找老师,虚心的向他们请教问题。2、培养自学的能力。大学培养的优秀学生不是只从老师那里学到的知识,而要培养的是有自学的能力大学生,只有拥有自学能力才能够在社会上占有一席地位,才能更快的成长。 3,、养成良好的学习态度和学习习惯,培养正确的学习方法。 完成任何一件事情,态度都是重要的,态度决定工作完成的好坏。编写程序需要极大的耐心,对于初学者来说,一个窗口小程序的完成并非易事,是意见需要花费时间的事。同时也需要细致谨慎,尽量少出差错,遇见提示的错误要立即解决,积
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 理赔业务风险培训效果评估灵活性风险基础知识点归纳
- 构建思政课程教学评价体系的现状及总体形势
- 色彩氛围营造基础知识点归纳
- 构建出版业融合发展的现状及总体形势
- 跨界合作在健美操创新中的应用
- 抽水蓄能产业创新驱动的核心路径
- 2025不锈钢型材采购协议合同
- 智联车市场策略
- 答辩成功实战手册
- 研究生之路全攻略
- 企业管理-《资产减值损失的税务情况说明》
- 2025届广东省华附、省实、深中、广雅四校高考历史押题试卷含解析
- 高速公路养护施工安全管理经验
- NB-T47003.1-2009钢制焊接常压容器(同JB-T4735.1-2009)
- 合同委托协议书范文
- 【万科股权结构和公司治理的关系探究11000字(论文)】
- 2024年江苏省苏州市中考物理真题(原卷版+解析版)
- JB-T 14320-2022 氧气用止回阀
- 供配电技术-供配电二次回路和继电保护
- 电工仪表与测量(第六版)中职技工电工类专业全套教学课件
- 110kV变电站及110kV输电线路运维投标技术方案(第一部分)
评论
0/150
提交评论