基于安卓开发的计算器课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大庆师范学院
《ANDROID应用设计》课程设计报告
题目:简易计算器
专业班级:计算机科学与技术一班
设计者:\\\\\\\\\\\\\\\\\\\\\\\\\\\\
指导老师:P’P’P’P’
设计时间:2016-2017(1)
报告完成日期2016 年12月30日
1 设计任务及要求
设计一款基于Android系统下的计算器,实现一般计算器可以进行的加减乘除算法,以及清零操作。本人学习Android有近半年的时间。由于不同的Android 手机有着不同的分辨率,将不同分辨率的图标图片放置在相应位置。Drawable-hdpi中放置分辨率最高的图标,drawable--ldpi中放置分辨率中等的图标,drawable-mdpi中放置在分辨率最低的图标。界面设计应该就尽量简洁而美观,应该具有良好的交互性。在整个过程中,首先应该对输入进行容错处理,这样有利于提高用户体验。对于用户的按键输入,需要及时的现实在第一个EditView中。用户在输入过程中,肯定会存在一定的错误,程序设计过程中需要对应用程序进行容错处理。容错设计比如:在输入过程中小数的话只能有一个小数点,操作符不能连续输入,整数数据的开头不能出现0等等。在程序设计过程中,需要设计数据结构来存储数字、操作符和容错标记,在本文中使用了栈,对这些数据进行了存储。
2设计原理及总体框图
将表达式转为字符串类进行存储。
将表达式的字符串进行处理,将数字和运算符分别存放在两个栈中(也可以使用队列,理论上使用队列更为合理,在这我使用栈来实现)。
由于栈是后进先出的,所以先将两个栈进行逆序。
设计方法来处理两个栈从而得到相应的计算结果。
原理:将操作符设计优先级,乘除优先级设置为2,加减优先级设置为1。
一、从操作符栈中弹出两个操作符,假设为symbol1和symbol2,比较两个操作付的优先级,如果symbol1的优先级大于等于symbol2的则执行二,否则执行三。
二、从数字栈中弹出两个数字,计算这两个数字在操作符symbol1下的运算结果,结束后将结果压入数字栈,将symbol2压入操作符栈,最后返回一。
三、从数字栈中弹出三个数字,计算后两个数字在操作符symbol2下的运算结果,结束后将运算结果压入栈,将剩下的第一个数字压入栈,将操作符symbol1压入站,最后返回一。
结构框图如下所示:
图1:简易计算器整体结构框图
小组分工:组长:ukuk责程序算法查找及编写,仿真环境调试及运行;
组员:ukuk负责定义按键代码及其他代码查找,编写;
uk负责材料汇总、文档报告编写、及相关书籍资料查询。
3 详细设计
部分源代码:
private Button bt_1;
private Button bt_2;
private Button bt_3;
private Button bt_4;
private Button bt_5;
private Button bt_6;
private Button bt_7;
private Button bt_8;
private Button bt_9;
private Button bt_0;
private Button bt_add;
private Button bt_sub; // 减
private Button bt_multiply; // 乘
private Button bt_divide; // 除
private Button bt_back;
private Button bt_equal; // 等于
private Button bt_point; // 点
private Button bt_clear; // 清除
private EditText et_play; // 显示
private String str_oper = "+"; // 运算符
private StringBuffer str_display = new StringBuffer();; // 显示
private String str_result; // 结果显示
private double num1;
private double num2;
private boolean flag = true; // 小数点个数开关控制;
private boolean b_sub, b_mul, b_div; // 运算符开关控制
此段代码为相关按键定义(包括加减乘除,等于号,小数点,clear清除以及数字键)。说明:每完成一次计算后,需先clear 清除记忆,当然也可以连算。