Java课程设计-保存计算过程的计算器_第1页
Java课程设计-保存计算过程的计算器_第2页
Java课程设计-保存计算过程的计算器_第3页
Java课程设计-保存计算过程的计算器_第4页
Java课程设计-保存计算过程的计算器_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

1、保存计算过程的计算器1 .课程设计的目的随着计算机技术的飞速发展,人们已经不能满足于采用人工进行大量的计算,计算 器快速的计算速度和稳定的准确率很好的满足了用户的需要,保存计算过程的计算器更是能够让用户随时随地的查找以前的计算过程。保存计算过程的计算器正是在这样的市场需求之下研发的,目的旨在帮助用户快速准确的得到计算结果。掌握 Java语言编程 的基础知识并能熟练运用,熟悉类声明与对象的使用,理解委托时间处理模型,了解Java 语言的图形用户界面的设计知识,运用JCreator编写简单计算器程序,并实现其功能。 2.设计方案论证需求分析设计一个图形界面的带保存过程的计算器应用程序,完成简单的算

2、术过程。设计的 计算器应用程序除了普通的计算功能外,还有n次方、算术平方根、正弦函数、对数、随机取值、退格、清零等功能。程序主要是设计一个计算器的界面,并练习使用事件监 听器处理数据的输入,并完成相关计算。用户可以利用鼠标点击数值或操作符按键完成 计算的输入,计算的过程将被显示在窗口右边的文本框中,另外使用程序自带的保存功 能将计算过程保存到想要的地方。设计思路本应用程序继承自框架类(Frame),此程序不使用布局管理器,将单行输入显示文 本框、各个按钮功能、计算过程显示区加入到同一个面板内,直接添加到各自区域。同 时注册按钮时间监听器。如:b0 = new JButton("0&q

3、uot;);(new ActionListener()事件监听器中的事件处理方法 void actionPerformed(ActionEvent e), 完成主要 事件的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(“1”,“2”,“3”,“9”,“0”)、运算符按钮事件(“+”,"-”,“*”,“/”)、正负号按钮事件(“土”)、小数点按钮事件(”.”)、等号按钮事件(“ =”)、n次方按钮 事件(“ xy”)、算术平方根按钮事件(“,”)、正弦函数按钮事件(“ sin ”)、对数 函数按钮事件(“ log ”)、随机取值按钮事件(" R' )、PI按钮

4、事件(“冗”)、退格 按钮事件(“一”)、清零按钮事件("C')、保存复制清除按钮事件(“保存”,“复制”, “清除”)。设计方法将数字键与其他键分别进行监听,一个单行文本框用来显示输入的数据,str用来存放每次录入的数据,数据与字符录入都通过按键来触发事件,单行文本框设置为不可 编辑、下沉。然后对所有的button进行监听,当按到“+,-,*, /”按钮时,将之前 输入的数字存储到s中,输入的运算符通过变量operatorchar来储存,当再输入数字 后遇到“二”时,便将运算符后的数字存储到变量 s2里,接着调用“+,-,*,/”运算 函数进行运算,将结果用si保存起来,并

5、显示 在单行文本框中。退格按钮事件只需将输入的数据字符型重新编辑后,把最后一个数字消去再重新显 示出来,清空按钮即是将所有变量初始化。求n次方、开方、正弦函数和对数函数可调用系统 Math类的静态方法t1(),随机 取值设定当事件发生时100以内的正数随机出现。功能模块设计按下数字键在文本框上会显示数字,这是计算器最基本的功能;在任何时候按下“ +-”键,计算器文本框上的数字置相反数;右边一个文本框显示计算过程,上面一个文本框显示输入的数字;当按下的运算符号时前面已经按下过运算符号时,右边一个文本框显示上一个运算 符号以及两个数之间的运算结果;按下清除“ C”键,数据被全部消除;点击右侧“保存

6、”按钮,可保存计算过程。基本运算模块功能(1)加法两个数据相加操作,可以为正负数、小数。(2)减法两个数据相减操作,可以为正负数、小数。(3)乘法两个数据相乘操作,可以为正负数、小数。(4)除法两个数据相除操作,可以为正负数、小数。特殊运算模块功能(1) n次方求一个自然数m的n次方。(2)算术平方根求一个非负整数的算术平方根。(3)正弦函数求一个自然数的正弦值。(4)对数函数求一个正数以10为底的对数。(5)随机函数随机出现一个0100以内的整数。保存计算过程模块(1)保存:选择保存位置、输入保存文件名称及格式,确定完成保存。(2)复制:复制运算过程区域内容。(3)清除:清除运算过程区域所有

7、内容。系统结构图,如图1所示。图2运算过程流程图3 .设计结果与分析编写Java程序,开发环境为JCreator ,程序包含和两个java源文件。其中,为程 序的主类,内包含程序主界面设计、各类算法设计以及保存计算过程等部分。程序经过 检查修改无误后运行得到如下运行结果。(1)计算器程序主界面,如图3所示。图3计算器主界面(2)各种运算界面,如图4所示图4运算界面(3)计算器显示框清零操作,如图 5所示图5清零操作(4)保存计算过程,如图6所示图6保存计算过程(5)查看保存后文件,如图7所示。图7保存文件(6)点击“清除”按钮,清除计算过程区内容,清除内容后,界面返回程序主界 面,计算过程显示

8、区重新显示新的计算过程。当输入数据有误时,程序会运行出错。(1)当程序进行除法运算除数为零时,程序运行错误,如图 8所示。图8除数为零错误(2)当程序进行求算术平方根运算根号下为负数时,程序运行错误,如图 9所示图9根号下为负数错误(3)当程序进行对数运算底数为非正数时,程序运行错误,如图 10所示图10底数为非正数错误4 .设计体会在这两周的Java课程设计中,我学到了很多很多,感受也是颇多。越来越发现实 践的重要性。首先在做这次课程设计的时候,遇到了很多问题,这些问题让我改掉了自 己暴躁的性格,学会了有耐心,耐心的去琢磨枯燥的代码,耐心的去敲代码,耐心的去 调试代码,修改错误其中最大的问题

9、的如何保存已经输入的数字或者符号进行运 算,如何显示运算过程,经过多次研究和查询发现有很多种保存运算过程的方法,可以 运用链表进行存储和提取数据,也可以用栈。另外,此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很 大。最大的收获是在完成过程中培养的解决问题的能力。在做课程设计时必然会遇到困 难,会有不会的东西,重要的不是现在会不会,而是遇到问题知道如何找到解决的途径。 还使我对所学知识能够融会贯通,又不断丰富了新知识。Java计算器设计使得我对所学 的专业课有了更为深刻的认识,使得知识得到了巩固和提

10、高。这两周磨平了尖锐的棱角,让我变的更加成熟,同时,更加加深对知识的理解和印 象。在学习的过程中,我发现了许多简便方法,例如检查错误,尝试新方法,调试不懂 语句的作用但是,这也是在深刻的教训中学到的,慢慢发现自己的Java语言学的还不够好,理解的还不够深,知道的还少,有的甚至都没见过,所以,我的学习还有待 于加强,并且要继续努力学习,吾生也有涯,而知也无涯,所以应该树立良好的学习理 念,更何况现代信息技术高速发展,不学习就会落后,就会被社会所淘汰,因此要时刻 提醒自己学习,学习新的科学技术。5 .参考文献1刘升华.JAVA从入门到实践M.北京:清华大学出版社20092王晓东.算法设计与分析M.

11、北京:清华大学出版社20033艾力江.Java2范例入门与提高M.北京:清华大学出版社20034陈国君.Java2设计基础M.北京:清华大学出版社20095饶一梅.Java语言程序设计M.北京:人民邮电出版社2009附录;public class jisuan public static void main(String口 args) jisq ji = new jisq();(2);import .*;import .*;import .*;import .*;import class jisq extends JFrame implements ActionListener JPanel

12、pane = new JPanel();String s, s1, s2;double t, t1, t2 = 0;JTextField fiel, show;JTextArea area;JButton b0, b1, b2, add, b3, b4, b5, b6, b7, b8, b9, sub, mul, dele, equ, dev;JButton sqrt, pow, random, sin, p, log, zf, tui, save, clear, copy, point;public jisq() init();(123, 143, 500, 330);("计算器&

13、quot;);(true);(false);5void init() (null);(pane);area = new JTextArea();JScrollPane scrollPane = new JScrollPane(area,;(280, 70, 200,140);(false);(scrollPane);fiel = new JTextField();(10, 30, 250, 30);(false);(new Font("TimesRoman", , 16);(10, 226, 43, 33);(point);(this);p = new JButton(&q

14、uot;兀");(59, 226, 43, 33);(p);(this);zf = new JButton(" ±");(108, 226, 43, 33);亿f);(this);tui = new JButton(" ");(206, 70, 53, 33);(tui);(this);sqrt = new JButton(" ,");(206, 148, 53, 33);(sqrt);(this);pow = new JButton("xy");(206, 109, 53, 33);(pow)

15、;(this);random = new JButton("R");(156, 226, 43, 33);(random);(this);sin = new JButton("sin");(206, 187, 53, 33);(sin);(this);log = new JButton("log");(206, 226, 53, 33);(log);(this);save = new JButton(" 保存");(280, 220, 60, 42);(save);(this);copy = new JButton

16、(" 复制);(350, 220, 60, 42);(copy);(this);clear = new JButton(" 清除");(420, 220, 60, 42);(clear);(this);("保存计算过程到文件");(" 复制选中的计算过程");("清除计算过程");public void actionPerformed(ActionEvent e) String str =();if ("1") ()+ "1");(); else if ("

17、;2") ()+ "2");(); else if ("3") ()+ "3");(); else if ("4") ()+ "4");(); else if ("5") ()+ "5");(); else if ("6") ()+ "6");(); else if ("7") ()+ "7");(); else if ("8") ()+"

18、;8");(); else if ("9") ()+ "9");();else if ("清除")(null);else if (".") ()+ ".");(); else if ("C") ("");(""); if (" 复制")();if ("清除")(null);if ("保存")JFileChooser chooser = new JFileChooser

19、();int state = (null);File file =();if (file != null && state = try String content =();StringReader read = new StringReader(content);BufferedReader in = new BufferedReader(read);FileWriter outOne = new FileWriter(file);BufferedWriter out = new BufferedWriter(outOne);String str1 = null;while

20、(str1 = () != null) (str1);();();(); catch (IOException exc) else if ("") StringBuffer s = new StringBuffer();if () > 0) ()-1, ().toString(); else if (" 兀")t二;(""+ t);();(""+ " 兀="+()+ "n"); else if ("+") s =();si ="+"

21、;("");(si); else if ("/") s =();si = "/"("");(si); else if ("-") s =();si ="-"("");(si); else if ("*") s =();si = "*"(""); (si); else if (" V") s =();t1 = (s);t = (t1);(t + "");Str

22、ing process = "sqrt(" + s + ") = " + t;(process);(""+ process + "n"); else if (" 土") s =();t =;if (t != 0)(t + "");();else if ("sin") s =();t1 = / * (s);t = (t1);(t + "");String process = "sin(" + s + ") = " + t;(process);(""+ proc

温馨提示

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

评论

0/150

提交评论