欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Java课程设计报告计算器软件设计.docx

    • 资源ID:16830466       资源大小:184.45KB        全文页数:40页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java课程设计报告计算器软件设计.docx

    1、Java课程设计报告计算器软件设计 Java课程设计报告计算器软件设计学生姓名: 学 号: 年级专业:指导老师: 学 院:目 录1. 前言22概要设计3 2.1 开发环境3 2.2 计算器功能3 2.3 界面设计3 2.4 类uml图43. 详细设计4 3.1 使用的java类的说明4 3.2 类的主要方法53.2.1 处理按了运算符后的计算53.2.2 处理输入字符63.2.3 进制的转换63.2.4 设计总体认识73.2.5 程序流程图8 4. 运行结果85. 测试分析9 5.1 程序运行情况9 5.2 程序异常处理96. 源程序9参考文献27致 谢27摘要:该程序是一个图形界面的简单的j

    2、ava计算器,具有良好的界面,使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,以及开平方)但仅限于十进制下,还可以进行(八进制,十进制,十六进制)之间的相互转换,八进制最多可以输入19位数,十进制最多可以输入18位数,十六进制最多可以输入14位数,backspace表示退格, clear表示初始化,sqrt表示开平方,界面为灰白对称。关键字:java、计算器类、方法、事件1 前言随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司

    3、空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。Java是由Sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Ja

    4、va应用程序或者是Applet所需的应用程序编程接口(API)。Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。还有Java 2企业版(The Java 2 Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。Java语言是由C+语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。Java语言去掉了C+语言的一些容易引起错误的特性。Java语言的特点有:面向对象、跨平台、安全性、多线程和图形功能强。2 概要设计2.1开发环境 开

    5、发平台:Microsoft Windows XP Professional Service Pack 2 开发工具:JBuilder 2007 + JDK 1.6.0_022.2计算器功能功能 1:按下数字键在液晶平上会显示数字,这时计算器最基本的功能。 功能 2:在任何时候按下“”键,计算器文本框上的数字置反号。 功能 3:第一次按下“运算”键,再按下数字键,将重新输入第二个数字。再次按下“运 算”键,将算出前两个数字运算的结果,然后按下数字,将又重新输入新的数字。 功能 4:输入数字后,按下“等于”键,将仍输出原来的数 输入运算符和第二个数字后再按下“=”键,将得到二者运算的结果,然后又重

    6、复功能 3 和功能 4 。 功能 5:按下清除“C”键,数据被全部清楚。2.3界面设计图2.3 计算器面板2.4类 UML图ArrayStackChar UML图如图2.3A所示:ArrayStackDouble UML图如图2.3B所示图2.4A 图2.4B3详细设计3.1计算器使用的Java类的说明类名: This_number_too_big作用: 自定义的异常类,用来处理计算结果溢出 继承的父类: Exception类 实现的接口: 没有 class This_number_too_big extends Exception /自定义的一个结果溢出异常类类名: Jsp2003 作用:

    7、主类。继承的父类: Frame类实现的接口: ItemListener类,ActionListener类class Jsp2003 extends Frame implements ItemListener,ActionListener public int number=0,length=18; /number是用来记录输入的数字个数, /length是用来设置在不同进制下允许输入的最多数字位数,默认为十进 制 public char mark=n; /设置运算符号为没有即为n,它的值是+-*/ public double data=0; /设置运算数据为零 public char ch;

    8、/用来临时存放所按按钮的第一个字符 public boolean Refresh=false; /设置lab是否要在输入数据的时候刷新,初始为否 程序的设计参考了Sun Java网站里的大量实例,比如Layout的使用、Event的处理、Components的添加与应用等等。其中:public class NewCalc extends JFrame implements ActionListener语句实现了ActionListener接口,因此可以调用addActionListener(this)方法对按钮进行点击监听,在下面的public void actionPerformed(Act

    9、ionEvent e)方法里面对各个点击事件进行处理。3.2类的主要方法3.2.1处理按了运算符后的计算: public void js() throws This_number_too_big if (mark=n) mark=ch; / data=Double.parseDouble(lab.getText();Refresh=true; else switch (mark) case +: data+=Double.parseDouble(lab.getText(); break; case -: data-=Double.parseDouble(lab.getText(); break

    10、; case *: data*=Double.parseDouble(lab.getText(); break; case /: data/=Double.parseDouble(lab.getText(); break; lab.setText(Double.toString(data); mark=ch; Refresh=true; number=lab.getText().length();/ System.out.println(lab.getText();if (dataDouble.MAX_VALUE) throw new This_number_too_big(); 3.2.2处

    11、理输入字符:if(Refresh=true) lab.setText(0); number=0; Refresh=false; if(lab.getText().charAt(0)=0& lab.getText().length()=1) lab.setText(Character.toString(ch); number+; else if(numberlength) number+;lab.setText(lab.getText()+ch); 3.2.3八进制或十六进制转换成十进制I:public String goto_10(String s,long l) /参数s: 是要转换的字符串

    12、,由于输入的控制,保证了字符串的合法性; /参数l: 使用来设置是将8进制还是16进制转换成10进制,它的有效值为8或16; String str=s; /用来转换的字符串 long j=l; /表示进制 long lg=0,jing=1;/lg用来记录权乘和,jing用来记录位权 char cha;/临时记录要转换的字符 for(int i=1;i=str.length();i+) cha=str.charAt(str.length()-i); switch(cha) case 1: lg=lg+1*jing;break; case 2: lg=lg+2*jing;break; case 3

    13、: lg=lg+3*jing;break; case 4: lg=lg+4*jing;break; case 5: lg=lg+5*jing;break; case 6: lg=lg+6*jing;break; case 7: lg=lg+7*jing;break; case 8: lg=lg+8*jing;break; case 9: lg=lg+9*jing;break; case A: lg=lg+10*jing;break; case B: lg=lg+11*jing;break; case C: lg=lg+12*jing;break; case D: lg=lg+13*jing;b

    14、reak; case E: lg=lg+14*jing;break; case F: lg=lg+15*jing;break; jing*=j; /位权升一级,为下次使用做好准备 return Long.toString(lg); /end String goto_10() method 3.2.4设计的总体认识 JAVA设计的摘要 JAVA设计的目录结构 JAVA设计的概要和详细设计 JAVA设计的版权意识 JAVA设计需要编译的环境 JAVA设计的实用性3.2.5程序流程图图3绘制计算器方法PAD图4运行结果图4 计算结果显示5测试分析5.1程序运行情况: 程序正常的响应按钮事件,输入的数

    15、值长度受变量length的限定,进行混合四则运算的时候,结果如果不是很大,可以正常显示,但如果结果很大,就可能采用科学记数方式,这样带来了进制转换时的麻烦,需要特殊的处理科学记数里的E ,当结果太大的时候,有可能超出可能表示的最大值,(结果溢出),这个时候就要对结果进行必要的异常处理,我在输出结果的方法内设置if 语句,如果结果大于某一个值就抛出一个This_number_too_big 类型的类,再使用try-catch,捕捉输出结果的方法抛出的异常对象。然后进行,重制归零的处理。 5.2 程序异常处理: 当结果超出Double.MAX_VALUE时,将抛出一个This_number_too

    16、_big 类的异常对象,这个是我自定义的一个异常类它继承自Exception 类,然后使用try-catch去捕捉这个异常,异常的处理如下: try js(); catch(This_number_too_big e) lab.setText(0); number=0; mark=n; Refresh=false; System.out.println(The number is too big); /如果出现异常则初始化效果如同clear键 6 程序清单:import java.awt.*;import java.awt.event.*;class This_number_too_big e

    17、xtends Exception / 自定义的一个结果溢出异常类/ ActionLintsner是所有监听器的父类,其它监听器可以监听的事件都可以被它捕获/ ItemListener用于捕获带有item的组件产生的事件,如ComboBox,CheckBox,RadioButton,ToggleButtonclass hejiang extends Frame implements ItemListener, ActionListener public hejiang() addWindowListener(new WindowAdapter() public void windowClosin

    18、g(WindowEvent e) dispose(); System.exit(0); / 给窗口注册一个事件监听器,当你点了窗口右上方的叉号时,此方法被调用 ); static hejiang mainFrame = new hejiang(); / 创建一个mainFramestatic Label lab1 = new Label(0);static Label lab = new Label(0);static Panel pnl1 = new Panel(new GridLayout(4, 3, 3, 3); / 创建新的面板.布局管理static Panel pnl2 = new

    19、Panel(new GridLayout(4, 1, 3, 3);static Panel pnl3 = new Panel(new GridLayout(1, 2, 3, 3);static Panel pnl4 = new Panel(new GridLayout(6, 1, 3, 3);static Button bt9 = new Button(9);static Button bt8 = new Button(8);static Button bt7 = new Button(7);static Button bt6 = new Button(6);static Button bt5

    20、 = new Button(5);static Button bt4 = new Button(4);static Button bt3 = new Button(3);static Button bt2 = new Button(2);static Button bt1 = new Button(1);static Button bt0 = new Button(0);static Button btdot = new Button(.);static Button btequ = new Button(=);static Button btadd = new Button(+);stati

    21、c Button btsub = new Button(-);static Button btmul = new Button(*);static Button btdev = new Button(/);static Button btA = new Button(A);static Button btB = new Button(B);static Button btC = new Button(C);static Button btD = new Button(D);static Button btE = new Button(E);static Button btF = new But

    22、ton(F);static Checkbox ckb8 = new Checkbox(八进制);static Checkbox ckb10 = new Checkbox(十进制);static Checkbox ckb16 = new Checkbox(十六进制);static Button btc = new Button(clear);static Button btt = new Button(backspace);public int number = 0, length = 18;/ number是用来记录输入的数字个数,length是用来设置在不同进制下允许输入的最多数字位数,默认

    23、为十进制 public char mark = n; / 设置运算符号为没有即为n,它的值是+-*/public double data = 0; / 设置运算数据为零public char ch; / 用来临时存放所按按钮的第一个字符public boolean Refresh = false;/ 设置lab是否要在输入数据的时候刷新,初始为否 public static void main(String args) System.out.println(Starting hejiang.); lab.setAlignment(Label.RIGHT); / 对齐方式 lab.setBack

    24、ground(Color.lightGray); / 背景色 lab.setForeground(Color.BLUE); / 前景色 lab.setFont(new Font(Serief, Font.BOLD, 18);/ 字体设置 lab.setBounds(14, 33, 216, 40); lab1.setAlignment(Label.RIGHT); / 对齐方式 lab1.setBackground(Color.lightGray); / 背景色 lab1.setForeground(Color.BLUE); / 前景色 lab1.setFont(new Font(Serief,

    25、 Font.BOLD, 18);/ 字体设置 lab1.setBounds(14, 75, 216, 40); mainFrame.add(lab); mainFrame.add(lab1); CheckboxGroup grp = new CheckboxGroup(); ckb8.setCheckboxGroup(grp); ckb10.setCheckboxGroup(grp); ckb16.setCheckboxGroup(grp); ckb8.setBounds(14, 115, 55, 25); / setBounds()方法是可以设定控件的大小和位置 ckb10.setBound

    26、s(69, 115, 55, 25); ckb16.setBounds(124, 115, 65, 25); ckb8.setState(false); ckb10.setState(true); ckb16.setState(false); mainFrame.add(ckb8); mainFrame.add(ckb10); mainFrame.add(ckb16); pnl1.setBounds(18, 180, 120, 150); pnl2.setBounds(144, 180, 40, 150); pnl3.setBounds(14, 140, 170, 36); pnl4.setB

    27、ounds(190, 140, 40, 190); pnl1.add(bt7); pnl1.add(bt8); pnl1.add(bt9); pnl1.add(bt4); pnl1.add(bt5); pnl1.add(bt6); pnl1.add(bt1); pnl1.add(bt2); pnl1.add(bt3); pnl1.add(bt0); pnl1.add(btdot); pnl1.add(btequ); pnl2.add(btadd); pnl2.add(btsub); pnl2.add(btmul); pnl2.add(btdev); pnl3.add(btt); pnl3.ad

    28、d(btc); pnl4.add(btA); pnl4.add(btB); pnl4.add(btC); pnl4.add(btD); pnl4.add(btE); pnl4.add(btF); btA.enable(false); btB.enable(false); btC.enable(false); btD.enable(false); btE.enable(false); btF.enable(false); mainFrame.add(pnl1); mainFrame.add(pnl2); mainFrame.add(pnl3); mainFrame.add(pnl4); mainFrame.setResizable(false); / 窗口可以最小化和关闭,但是不能被任意改


    注意事项

    本文(Java课程设计报告计算器软件设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开