• Java课程设计


    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提交

    林俊伟

    链接

    程会青

    代码 链接
    .jar包 链接

    五、课设总结

    本次Java课设 计算器 界面较为美观,基本功能较为齐全,最大的亮点在于精度的完善与 进制转换 的实现,也能保存前次运算结果,能够实现内外大串数据的复制粘贴;遗憾与不足就在于未能实现长串运算表达式,仅能累次运算,算法优先级运算未能实现;使用键盘输入.0123456789也未能实现,多次研究KeyListener并尝试编写相应代码,出现些许错误未能得到解决,后选择放弃;通过本次课设,我对界面设计和Swing组件有了更加深入的理解,形成较为缜密的运算思维,但是对创建表达式(栈的认知还有待加强)、对键盘鼠标监听器的研究还有待深入。

  • 相关阅读:
    实践GoF的23种设计模式:装饰者模式
    我大抵是卷上瘾了,横竖睡不着!竟让一个Bug,搞我两次!
    netty系列之:kequeue传输协议详解
    netty系列之:在netty中实现线程和CPU绑定
    netty系列之:在netty中使用native传输协议
    10分钟实现dotnet程序在linux下的自动部署
    Vue组件引入外部JS
    Http实战之Wireshark抓包分析
    6 分钟看完 BGP 协议。
    RepLKNet:不是大卷积不好,而是卷积不够大,31x31卷积了解一下 | CVPR 2022
  • 原文地址:https://www.cnblogs.com/chqing/p/8352972.html
Copyright © 2020-2023  润新知