Java课程设计
一、题目介绍
计算器模拟程序(2人)得分系数:D
功能要求:仿照Windows计算器,编写一具有GUI的计算器,能实现整数的加、减、乘、除四则运算,并且需要支持键盘快捷键,基本可取代windows计算器。支持复制、粘贴功能,方便输入长串数字。
界面显示可参考下图。历次计算需存放在文件中,下回启动可重复使用。功能具体参考windows计算器(查看菜单选择:标准型、历史记录(实现这个可提升等级))
加分建议:更多功能(进制转换)、更漂亮界面、更方便的操作、支持解析四则运算表达式、支持对大数的加减法、支持对运算结果的保存与读取。或者做成多线程,提供网络计算服务。
二、团队成员及任务分配表
三、设计过程
产品界面
系统流程图
系统功能图
主要功能设计
进制转换
利用Integer的toBinaryString方法和toOctalString方法实现转换,但是我们定义的resultNumber是double型,所以要先把resultNumber转换成int型,再用两个方法,最后用Double的valueOf方法赋值给resultNumber。
精确度实现
浮点型计算是不精确的,BigDecimal类才能实现精确的计算,在以上提到的几种运算中都要用到此类。使用String.valueOf将double型转换成String型,然后new BigDecimal 对象,再用BigDecimal自带的add、subtract、multiply等方法。
四、Git提交
林俊伟
程会青
五、课设总结
本次Java课设 计算器 界面较为美观,基本功能较为齐全,最大的亮点在于精度的完善与 进制转换 的实现,也能保存前次运算结果,能够实现内外大串数据的复制粘贴;遗憾与不足就在于未能实现长串运算表达式,仅能累次运算,算法优先级运算未能实现;使用键盘输入.0123456789也未能实现,多次研究KeyListener并尝试编写相应代码,出现些许错误未能得到解决,后选择放弃;通过本次课设,我对界面设计和Swing组件有了更加深入的理解,形成较为缜密的运算思维,但是对创建表达式(栈的认知还有待加强)、对键盘鼠标监听器的研究还有待深入。