已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大庆师范学院ANDROID应用设计课程设计报告题目:简易计算器专业班级:计算机科学与技术一班 设 计 者: 指导老师: PPPP 设计时间: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压入操作符栈,最后返回一。 3、 从数字栈中弹出三个数字,计算后两个数字在操作符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 清除记忆,当然也可以连算。 设计按键的大小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()Overridepublic void onClick(View v)str_oper = +;if (!(str_display.toString() = )num1 += Double.parseDouble(str_display.toString();str_display = new StringBuffer();if (!(str_result = null)num1 = Double.parseDouble(str_result);str_result = null;et_play.setText(String.valueOf(num1);flag = true;);计算器进行加法运算的子程序代码如上Toast.makeText(Android_calculatorActivity.this,除数不能为0!, Toast.LENGTH_LONG).show();此段注意除数不能为0!Toast.makeText(CalculaterActivity.this, 被乘数或乘数不能为空!, Toast.LENGTH_SHORT).show();4 测试与分析测试过程:安装相关软件,JDK安装配置安装Java的JDK至默认路径 D:Program FilesJava,一般需要300M的空间,硬盘空间充足的话,所有组件全部安装。然后完成环境变量的配置。 配置Eclipse开发环境,设置代码字体大小,调整为12(或14),显示行号,代码格式化,改变一行能容纳的最大字符数,设置智能提示,运行eclipse.exe完成路径设置后,选择菜单HelpInstall New Software. 图2:Install工作界面配置SDK路径:(1)安装java开发的JDK到本机,配置好环境变量,具体操作见前文步骤1-6。(2)解压Android SDK和Eclipse,配置Eclipse的SDK路径。系统默认的是在线安装新的SDK组件,我们不可能在没有网络连接的情形下升级应用组件!所以选取Use existing SDKs,然后点击下一步完成经一部的配置。完成配置到Windows里找到Android SDK Manager运行,检测是否可以正常启动。 图3:配置完成的Eclipse总结:需要先安装JDK后配置环境变了,然后完成SDK的解压,解压有ADT的Eclipse,最后在Eclipse里重新配置SDK路径。就可以使用了。至此Android开发环境就基本搭建完成了。总体看来其操作也与有网络环境操作雷同,需要先安装JDK后配置环境变了,然后完成SDK的解压,解压有ADT的Eclipse,最后在Eclipse里重新配置SDK路径就可以使用了。测试情况如下图: 图4:简易计算器的代码编译及运行 图5:eclipse环境下运行程序(计算器界面)接下来演示实际算法:7+9(如图6、7、8) 图6 图7 图8在实现此过程中,输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,当用户点击按键或者屏幕的时候监听器会去调用相应功能的按键,分别是清零,0,1,2,3,4,5,6,7,8,9,+,-,*,/,.=,返回。显示模块主要描述了计算器的显示区,即该区域用于显示用户输入的数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 松原市重点中学2026届物理高一上期末统考模拟试题含解析
- 文化创意产业技术规范研究
- 止水带外观质量、规格尺寸试验记录
- 土地租赁合同范本
- 第二章 函数(高效培优单元测试-提升卷)数学北师大版2019必修第一册(解析版)
- 福州大学阳光学院英语专业本科生毕业论文撰写规范(格式+范文)
- 以绿色引领为帆 化创新驱动做桨-四川峨胜水泥集团股份有限公司十三
- 校外毕业设计(论文)指导教师证明
- 基于电动汽车用户电价响应的充电负荷优化模型建立
- 成本管理论文的范文集锦
- 大学资料HUST-Invictus-矩阵论-矩阵论 杨明 华中科技大学 课后习题答案
- 导管脱落护理不良事件分析
- 2023射线检测工艺规程
- from head toe whole story从头到脚整个故事
- 复式统计表(教学设计)-2023-2024学年五年级上册数学苏教版
- GRE(QUANTITATIVE)模拟试卷2(共319题)
- 网络安全技能竞赛(CTF)考试题库-下(多选、判断题)
- 财税201758号文深度解析:工程项目预收账款财税处理大调整
- 中国农业文化遗产与生态智慧智慧树知到期末考试答案章节答案2024年浙江农林大学
- ZJ70DB钻机系统设计与研究
- GB/T 43803-2024科研机构评估指南
评论
0/150
提交评论