1、 课 程 实 训 报 告 课程名称 计算机系统综合实训 课题名称 电子计算器 专 业 计算机科学与技术 班 级 学 号 姓 名 指导教师 陈华光 黄鲲 2013 年 12 月 24 日 湖南工程学院 课 程 实 训 任 务 书 课程名称 计算机系统综合实训 课 题 基于 Android 的 电子计算器 专业班级 学生姓名 学 号 指导老师 陈华光 黄鲲 审 批 任务书下达日期 2013 年 12 月 4 日 任务完成日期 2013 年 12 月 24 日 目录 一、设计内容和设计要求 1 1.设计内容 1 2.设计内容 1 二、需求分析 2 1. 状态定义 2 2. 计算器功能 3 三、总体设
2、计 6 1.软件设计结构图 6 2.程序设计流程图 7 四、模板设计 8 1.计算模块详细设计 8 2.用户模型设计 8 3.计算模板设计的实现 9 4. 计算器模板设计 10 五、程序调试与运行截图 11 六、总结 12 七、附录 13 1 一、 设计内容与设计要求 1.设计内容: 通过计算器实现简单的加减乘除的运算计算器。在手机屏幕上设计一个计算器,有 10 个数字 1,2,3,4,5,6,7,8,9,0 和 4 个运算 +, *, /等基本按钮 ,还包括和清除 按钮 和显示结果的文本 框 , 实现加、减、乘、除四个简单的运算。并有清除功能。 2.设计要求: ( 1)论述课题的性质、内容以
3、及本次课程实训的目的和要求。 ( 2)系统对计算机软、硬件环境的基本要求,对 JAVA 或 Android 应用程序作简要的说明。 ( 3)界面设计和游戏操作设计:界面要求美观和友好(可使用图片资源文件) ,使用手机键盘上的 4 个方向键控制方向,按照手机上的操作习惯进行设计。 ( 4)核心数据结构设计 :主要是界面控制信息和逻辑控制信息。 ( 5)编写代码、上机输入、调试、修改并运行通过。 ( 6) 编写实训说明书。说明书 是总结性的技术文件,应全面叙述整个设计的内容及过程(可参考上述 5 条),发现的问题及解决方法等。 ( 7)源代码和参考书目应作为说明书的附录。 ( 8)说明书应采用 A
4、4 纸张,文字说明不少于 4000 字。说明书中应包括系统结构示意图。 2 二、需求分析 目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了。手机上的软件也随着手机的发展变得丰富起来了,时至今日已经出现了很多专门制作手机软件的公司,虽然制作的多 是游戏软件,但是一些辅助性的工具软件也有了很多。如电子计算器, 此类计算器以软件存在 , 能在 PC 电脑或者 智能手机 , 平板电脑上使用。它功能多 , 功能可以通过软件升级进行扩展。随着平板与智能手机有普及 , 软件形式的计算器的应用
5、会越来越多 , 最终有望取代传统的手持式计算器。 1.状态定义 能满足基本的数学运算,具体要求如下: ( 1)刚启动计算器时的状态:开始计算按键开始键 “ON“ ( 2)清零:计算刚启动时,或者任 何时候键入了清零键,计算器所处的状态。 2一个操作数:输入了一个操作数时计算器所处的状态,如键入“ 2”后的状态,此时操作数为“ 2”,或者依次键入“ 3”、“ 8”后的状态,此时操作数为“ 38”。 ( 3)运算结果:键入了“ =”键后计算器所处的状态,如依次键入“ 3 5=”之后计算器的状态。在此状态如果输入数字,输入的数字将作为第一个操作数,开始一次新的计算。 ( 4)一个操作数和一个两元符号
6、:输入了一个操作数和加减乘除中的一个键后计算器的状态,如依次输入“ 2”或“ 31 5=”之后计算器的状态。 ( 5)操作数两元符 操作数:输入了一个操作数、一个加减乘除符号和另一个操作数后计算器所处的状态,如依次键入“ 30 4”或“ 3 5= 5”后计算器的状态。 ( 6)操作数两元符运算结果:输入了一个操作数、一个加减乘除符号和另一个操作数后紧接着键入开方键计算器所处的状态。 ( 7)错误:执行非法计算后所处的状态,如执行 0 计算或者对负数的开方计算后的状态。比如 6/0 后计算的结果是“ 0不能做除数”。 3 2.计算器功能列表 状态 操作 计算器响应 结果状态 清零 键入数字键,如
7、 1 显示键入的数字,操作数 =键入的数字 一个操作数 键入减号键 相当于键入了 0,但负号不显示,只显示 0。 一个操作数 键入除减号键和数字键以外的键 忽略键入的键,仍保留清零状态 清零 一个操作数 键入数字键 显示新操作数,新操作数 =当前操作数 *10+键入的数字 一个操作数 键入回退键 显示新操作数,新操作数 =当前操作数除以10取整 一个操作数 清屏键 显示 0,但操作数不变 一个操作数 键入清零(任何状态下,键入清零键都会到清零状态下,以下的状态不再重复) 清零 清零 键入加减乘除中任意键 仍显示操作数,跳转到状态 “一个操作数和一 个两元符号 ” 一个操作数和一个两元符号 键入
8、开方键 对操作数执行开方运算,显示运算结果 运算结果 键入 =键 显示操作数,如果操作数为负数,显示负号和操作数,如 “ 32” 运算结果 一个操作数和键入 % 忽略,不做任何处理 一个操作数和一个两元符号 键入加减乘除之一 用新操作符替换原操作符,如当前是 “30 ”,接着键入 “”则变为 “30” 一个操作数和一个两元符号 4 一个两元符号 键入 = 如果操作符为加法,则加 0,显示结果;如果操作符为减法,显示为负数;如果操作符为乘法,显示为第一个操作数相 乘,如键入12*=,结果为 144;如果键入为除法,结果为 1。 运算结果 键入回退键 第一个操作数回退一位,操作符保持不变,如: 1
9、23+,键入回退键后显示 12,操作符仍然为 + 一个操作数和一个两元符号 键入开方键 执行开方操作,操作符保持不变;例如:当前是 “9 ”,键入开方键则显示 3。 运算结果 键入数字键、小数点 键入的为第二个操作数,例如:当前是 “9 ”,键入 8,显示为 8 操作数 2 元操作符操作数 运算结果 键入加减乘除中任意键 结果作为一个操作数,例如:当前是 “45”,键入 *,显示仍然是 45,操作符是 *,将执行乘法。 一个操作数和一个两元符号 键入数字和小数点 清除结果,键入的数值作为新的操作数;例如当前是 “16开方 ”后的运算结果,显示是“4”;键入 56,显示 “56”。 一个操作数
10、键入 %、 =键 显示结果。如:当前是 “16+开方 ”后的运算结果,键入 =,显示的结果为 20。执行 16+16开方的运算;当前显示的结果 9,或者任意其它值,输入 %,运算结果显示 “0”。 运算结果 键入开方键 运算结果再执行开方运算 运算结果 键入回退键 结果回退一位,如当前显示 “123”,键入回退键,显示 “12”。 运算结果 操作数 2键入加减乘除中任意键 先执行前面的计算,显示结果并记下下一个操作符;例如:起始状态键入的是 12*6,然后键入 +,则显示 72 一个操作数和一个两元符号 5 元操作符操作数 键入 % 例如输入: 12+3%,结果 0.36; 12-3%,结果
11、0.36; 12*3%,结果 0.36; 123%,结果 0.36;一律按照乘法计算。 运算结果 键入 = 执行运算,得出结果。例如当前是键入了“1+2”,再键入 “=”,显示 “3”。 运算结果 键入数字键、回退键、小数点键 等待键 入第二个操作数完毕 操作数 2 元操作符操作数 开方键 第二个操作数开方 操作数 2 元操作符运算结果 操作符为除号,第二个操作数为 0;负数开方 不正确的运算 错误 操作数 2元操作符运算结果 键入数字键、小数点键 忽略开方步骤,直接进行操作数与键入数字进行操作符的运算。例如: 4+9开方 32结果为 36; 5-9开方 65结果为 -60。 操作数 2 元操
12、作符操作数 键入 = 计算结果。例如: 12+9开方 =,先计算 9开方=3,再 12+3=15; 12*64开方 =,结果 96。 运算结果 键入 % 例如输入: 12+9开方,再键入 %结果 0.36;12-9开方,再键入 %结果 0.36; 12*9开方,再键入 %结果 0.36; 129开方,再键入 %结果 0.36;一律按照乘法计算。 运算结果 键入加减乘除中任意键 得到运算结果,并记忆操作符;例如 12+9开方,键入 +得到 15+。 一个操作数和一个两元符号 键入开方、回退键 运算结果再次执行开方或者回退 操作数 2 元操作符运算结果 6 三、总体设计 1. 软件设计结构图 本计
13、算器主要可以实现基本的加减乘运算和其他的一些运算 。包括:加法运算,减法运算,乘法运算,除法运算。其他运算包括开方运算, *2 运算,正负运算,清除运算等。 计算器 基本加减乘除运算 其他运算 加法 减法 乘法 除法 开方运算 *2 运算 正负运算 清除运算 7 2.程序流程设计图 是 否 否 是 运行程序后系统开始监听用户的按键输入,每次输入系统都会判断一次用户输入的类型,是数字还是运算符号或者是清除,判断完后分成不同类型如数字,符号,基本运算等等进行进一步的处理,根据用户的要求继续进行下一步的操作,最后计算出最终结果并显示在显示区。 判断是否需要结算结果 按用户要求进行计算 在显示区显示结果 开始 判断是否是清零操作 系统重置 监听用户按键输入