一、题目简介
题目:软件工程结对项目--实用计算器的设计和制作
简介:计算器是人们生活中经常使用的一种工具,已经可以说是人们日常生活中必不可少的工具了。本次实验我们设计并实现了一款基于Android系统的计算器应用,能够完成生活中常用的加减乘除功能,并扩展了正负号、平方、开方等功能。本计算器已具备了日常生活中的正确性和稳定性,可在日常生活中正常使用。
二、代码地址
本次实验的使用Git进行管理,所有代码都托管在GitHub仓库上,GitHub地址https://github.com/zhangtiantian1234/Calculator。
三、结对分工情况
张甜甜:页面布局设计,页面代码编写,逻辑设计,加法功能实现,减法功能实现。
刘美思:数字按钮功能实现,乘法功能实现,除法功能实现,平方功能实现,开方功能实现,正负号功能实现,等号功能实现。
四、结对实践过程
1.讨论计算器要是实现的功能,本次实验的主题是制作一款功能简单但是实用的计算器,所以我们确定下来要实现的功能是:加、减、乘、除、平方、开方、正负号等功能,能够判断用户输入运算数是否正确,支持小数运算,具有退格功能,能够删除最后一个输入,具有清除功能,即C,具有结果存储功能,能够显示存储器状态,支持触屏手机。
2.讨论计算器的页面布局,通过借鉴小米、魅族等手机自带的计算机界面布局,并结合我们所要实现的功能,我们设计了如图1的界面。
图1
3.程序结构设计,总体模块主要分为输入模块、显示模块以及计算模块(包括一些其他功能)这三大部分。在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算模块部分负责进行数据的运算以及一些其他的功能。一下对各个模块进行详细说明。
具体的说,总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。
输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机按键动作以及用指针事件处理方法处理触屏的单击动作(以松开按键为准)。同时提供了较为直观的键盘图形用户界面。
显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时还负责显示一些其他的信息。
计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包括加、减、乘、除、等各种计算功能,记忆数据的相关功能,退格以及清零的功能。
4.将具体功能进行拆分,两人开始编写代码。
五、测试情况
如图2为程序主界面。
测试平方功能,12的平方,如图3所示,结果为144,如图4。
测试乘法功能,10*25,如图5和图6所示,结果为250,如图7。
测试加法功能,33+25,如图8和图9所示,结果为58,如图10。
测试减法功能,85-96,如图11和图12所示,结果为-11,如图13。
测试除法功能,55/11,如图14和图15所示,结果为5,如图16。
测试开方功能,9的开方,如图17所示,结果为3,如图18。
测试正负号功能,56的负数,如图19所示,结果为-56,如图20。
图2 |
图3 |
图4 |
图5 |
图6 |
图7 |
图8 |
图9 |
图10 |
图11 |
图12 |
图13 |
图14 |
图15 |
图16 |
图17 |
图18 |
图19 |
图20 |
六、问题心得
本次实验过程,我学到了在团队开发中不仅要看个人的能力高低,还要考虑团队成员间的交流合作;代码编写时要注意不同编辑器在保存时使用的编码格式,UTF-8和UTF-8无BOM这两个格式要区别开,不然会出现乱码;数值存储使用浮点型数据类型进行存储能提高计算精度。