基于安卓开发的计算器课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 清除记忆,当然也可以连算。

android:id="@+id/bt_point"

android:layout_width="50px"

android:layout_height="40px"

android:text="."/>

设计按键的大小

bt_point.setOnClickListener(new OnClickListener()

bt_back.setOnClickListener(new OnClickListener()

bt_add.setOnClickListener(new OnClickListener()

bt_sub.setOnClickListener(new OnClickListener()

bt_multiply.setOnClickListener(new OnClickListener()

bt_divide.setOnClickListener(new OnClickListener()

bt_clear.setOnClickListener(new OnClickListener()

bt_equal.setOnClickListener(new OnClickListener()

计算器执行各项运算功能语句(小数点,加减乘除,清零...)

bt_add.setOnClickListener(new OnClickListener()

{

@Override

public void onClick(View v)

{

str_oper = "+";

if (!(str_display.toString() == ""))

{

num1 += Double.parseDouble(str_display.toString());

str_display = new StringBuffer("");

}

相关文档
最新文档