《Java程序设计课程设计报告10.docx》由会员分享,可在线阅读,更多相关《Java程序设计课程设计报告10.docx(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、莆田学院新工科产业学院课程设计课程名称:Java程序设计题 目:简易计算机202 1年 6月 30日1 .概述Java的早期版本以来抽象窗口工具包为用户界面组件提供了平台独立的API。在AWT中每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。Java语言最大的特点是具有跨平台性使其不受平台不同的影响,得到了广泛的应用。该程序是一个图形界面的java计算器,其界面主要采用了swing包程序实现简单加、减、乘、除的运算以及其他按钮功能。2 .设计任务及要求2.1 设计任务1、1、参
2、考界面设计图如下,允许根据功能自行设计界面。3.2、3、4、请自行添加扩展功能。5、提交项目工程文件及打包发布的.jar或.exe6、提交课程设计报告。要求计算器至少能够实现基本的加减乘除运算和清空功能。Clear按钮用于实现全部输入的清空操作,直接将显示置零。2. 2设计要求(1)应具有相应的界面可参考Windows操作系统自带的计算器界面。(2)操作符号定为等。按国际惯例设计(3)用户通过点击程序界面上按钮实现数字、运算符的输入操作。4 .设计方案具体方案(1)根据所设计出来的界面首先要设计其GUI界面总体界面有一个文本框,20 个按钮总体界面用BorderLayout布局,文本框放置在最
3、NORTH,然后0到9以 及+ - * /等按钮放置到一个面板Panel中完成界面设计。(2)设计计算流程,首先点击数字按钮时将按钮数值添加到文本框当中并将该 数值保存到一个字符串中,再次点击数字按钮时将之前保存的字符串与新的数值 拼接起来再添加到文本框当中,直到点击运算符按钮时将文本框当中的字符串保 存在一个字符串变量中,然后重置文本框内容将运算符号显示到文本框中。随后 输入第二个计算数据时,用同样的办法保存数据最后通过控制“二”运算符先将 字符串数据转化成双精度类型,然后计算出结果并显示到文本框当中。(3)基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、 退格等功能的实现
4、;清零直接重置文本框内容、退格功能则采用substring函数 截取字符串长度。5 . 2运行代码package hh;import java. awt. BorderLayout;import java. awt. Container;import java. awt. Font;import java. awt. GridLayout;import java. awt. event. ActionEvent;import java. awt. event. ActionListener;import java. util. Arrays;import javax. swing. JButt
5、on;import javax. swing. JFrame;import javax. swing. JOptionPane;import javax. swing. JPancl;import javax. swing. JTextField;public class Calculator449 extends JFrame implementsActionListener /属性JTextField txtResult;boolean firstDigit = true;用于判断是否是数字String operator=;先初始化为等号,等到执行相应运算时再更改boolean opera
6、teValidFlag = true;判断除数是否为 0double resultNum = 0. 0;可以暂存目前的最终结果/方法public Calculator449() setTitle(计算器);setSize(240, 270);setResizable(false);setLocationRelativeTo(null);setDefaultCloseOperation(EXIT ON CLOSE);Container contentPane = this. getContentPane0;contcntPane. sctLayout(new BordcrLayout(1, 5)
7、;JPanel pnlNorth = new JPanel ();JPanel pnlCenter = new JPanel();pnlNorth. setLayout(new BorderLayout();pnlCenter. setLayout(new GridLayout(4, 4, 3, 3);Font font = new Font (Times Roman”, Font. BOLD, 20);contentpane, add(BorderLayout. NORTH, pnlNorth);contentPane. add (BorderLayout. CENTER, pnlCente
8、r);txtResult = new JTextField();txtResult.setFont(font);txtResult. setEnablcd(false);JButton btnClear = new JButton(Clear);btnClear. setFont(font);btnClear. addActionListener(this);pnlNorth. add(BorderLayout. CENTER, txtResult);pnlNorth. add(BorderLayout. EAST, btnClear);String captions = 7,8,9,+,4,
9、5,6,1, ”,3,*,o,.,/,二,;for (int i = 0; i = 0) 无论整数还是小数都一起提取出来hand1eNumber(1abe1); else (将当前要执行的运算的运算符赋给operator handleOperator(label);提取数字void handleNumber(String key) if (firstDigit) txtResult. setText (key);在文本框中显示数字的字符串 else if (key. equals(.)& (txtResult. getTextO. indexOf (.,z) 0) txtResult. set
10、Text (txtResult. getText () + . );在文本框中显示整数数字的字符串 else if (!key. equals (. )txtResul t. setText (txtResul t. getText () + key) ;/在文本框中显示整数数字的字符串)firstDigit = false;当数字显示完之后,即可重置为false )实现清零void handleCO txtResult. setText (0);firstDigit = true;operator = =;)进行运算void handleOperator(String key) if (op
11、erator, equals(?/*) 判断除数是否为0if (getNumberFromText() = 0. 0) operateValidFlag = false;txtResult. setText (除数不能为零); else resultNum /= getNumberFromText();) else if (operator, equals(+) resul tNum += getNumberFromText。; else if (operator, equals ) resultNum 一二 getNumberFromText(); else if (operator, eq
12、uals (,/*,/) rcsultNum *= gctNumberFroinTcxt (); else if (operator, equals (,/=,/) resultNum = getNumberFroniText (); if (operateValidFlag) long tl;double t2;t1 = (long) resultNum;t2 = resultNum - tl;if (t2 二二 0) txtResult.setText(String. valueOf(tl); else txtResult.setText (String.valueOf(resultNum
13、);) operator = key; firstDigit = true; operateValidFlag = true; )double gctNumbcrFromTcxt() double result = 0; try (result = Double. valueOf (txtResult. getText。). doubleValue();把String转化成Double类型的对象,并求double的原始值 catch (NumberFormatException e) return result; 6 .结论分析该计算那基本运算没有问题,能完成一个计算器的基本功能但仍有许多地方 需要改进,如小数点还未实现功能。而且该计算器还没能很好的实现连续计算的 功能。改进的方法是在运算符上同时注册Result类让运算符同时拥有计算结果 的功能。1运行图xt6.1 运行图.参考文献1张思民. java语言程序设计M.清华大学出版社,2007. 22杨树林.java语言最新实用案例教程(第2版)M.清华大学出版社.2010. 7
限制150内