![[其它]mfc基于wince的计算器_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/2757e89d-aa4a-4e6c-9de8-78b60e173d59/2757e89d-aa4a-4e6c-9de8-78b60e173d591.gif)
![[其它]mfc基于wince的计算器_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/2757e89d-aa4a-4e6c-9de8-78b60e173d59/2757e89d-aa4a-4e6c-9de8-78b60e173d592.gif)
![[其它]mfc基于wince的计算器_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/2757e89d-aa4a-4e6c-9de8-78b60e173d59/2757e89d-aa4a-4e6c-9de8-78b60e173d593.gif)
![[其它]mfc基于wince的计算器_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/2757e89d-aa4a-4e6c-9de8-78b60e173d59/2757e89d-aa4a-4e6c-9de8-78b60e173d594.gif)
![[其它]mfc基于wince的计算器_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/2757e89d-aa4a-4e6c-9de8-78b60e173d59/2757e89d-aa4a-4e6c-9de8-78b60e173d595.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计 算 机 学 院课 程 设 计 报 告课程名称 嵌入式体系结构 学号 09070624 姓名 解路宽 完成日期 2012.4.15 报告完成日期 2012.4.15 成绩 教师签字 年 月 日一,课程设计目的1. 在课堂教学的基础上进一步的认识嵌入式应用程序的开发流程2. 掌握windows embedded ce 6.0应用程序的设计方法和流程3. 掌握mfc编程语言4. 比较windows embedded ce 6.0与桌面版windows应用程序开发的异同二,课程设计内容windows embedded ce 计算器1. 基本功能1),仿照windows计算器的功能,标准型实现加减乘
2、除 +/- 倒数等计算功能。科学计算其实现三角函数、乘方、开方、阶乘、对数等功能。同时,还要求实现四则运算的功能。菜单为中文,计算结果要求正确。2),完成一次计算点击“=”后,应根据继续输入的是数字还是符号判断是清零还是继续计算。计算结果通过+/-求反3),四则预算计算式能判断词法错误和语法错误2. 提高功能1),标准型可实现mc、mr、ms、m+、%等功能;2),可实现与、或、异或、非等逻辑运算功能;3),实现不同进制之间的转换。三,需求分析【标准型】以一个double型的编辑框为普通数字以及计算结果显示框,通过添加的数字和功能按钮输入数字、运算符等。通过radio控件选择计算器的类型,并同
3、步弹出相应类型的显示。并且实现了实现mc、mr、ms、m+、%,进制转换等功能;【科学型】是在原有标准型的基本功能上,添加一些三角函数、指数对数的运算功能;并且单令添加了进制转换的数字输入窗口和结构输出窗口;【四则运算】对内部的算法比较严厉,采用编译原理的语法分析与词法分析,进行逐层次,嵌套式的计算,内部规定了对应符号的优先级,其对应的基本句子如下: e=e+t|e-t|t; t=f|t*f|t/f f=(e)|id;其中,id表示终结符;并且在循环嵌套的计算过程中,弹出相应的错误提示。四:详细设计1,整体界面设计:2,主要的声明:【cxlk0624dlg.h】public:/声明相关变量,并
4、在xlk0624.cpp中的固定函数中初始化double end1;/结果double end2;double num2;int num;/标志,表示上一步的操作,用-1,9,分别表示相关项目int point;/标志,如果小数点被按下,point为,否则为,其他运算符也同样类似的标记 double temp;/用来存放中间变量,此处专门存放小数点后面的数值double temp2;/只存放整数的值double qf;/取反的标志double jiafa;运算符的标志double jianfa;double chengfa;double chufa;double fuhao;提取对应的符号do
5、uble temp3;中间变量double temp4;double temp5;/%时的中间量double temp6;/%时的中间量double ms;/ms中储存当前框内的数字char ch;int nomber;/用来表示小数点后第几位int zhuan;/用于编著进制转换的性质public:afx_msg void onbnclickedkexue();弹出科学性计算器afx_msg void onbnclickedbiaozhun();标准型afx_msg void onbnclickedsize();四则运算afx_msg void onbnclickednum1();对应的数字
6、按钮09afx_msg void onbnclickednum2();afx_msg void onbnclickednum3();afx_msg void onbnclickednum4();afx_msg void onbnclickednum5();afx_msg void onbnclickednum6();afx_msg void onbnclickednum7();afx_msg void onbnclickednum8();afx_msg void onbnclickednum9();afx_msg void onbnclickednum0();afx_msg void onbn
7、clickeddian();double numcount(double a, double b, double c);用于计算afx_msg void onbnclickedqufan();按钮,取反afx_msg void onbnclickedjia();加号afx_msg void onbnclickedclear();清零void yusuanclear(void);部分清零afx_msg void onbnclickedjian();减号afx_msg void onbnclickedcheng();乘号afx_msg void onbnclickedchu();除号afx_msg
8、 void onbnclickeddengyu();等于号afx_msg void onbnclickedpingfang();开方afx_msg void onbnclickeddaoshu();倒数afx_msg void onbnclickedms();保存结果afx_msg void onbnclickedmc();清除afx_msg void onbnclickedmr();afx_msg void onbnclickedmm();结果加保存数afx_msg void onbnclickedmj();结果减保存数afx_msg void onbnclickedquyu();%的算法a
9、fx_msg void onbnclickedyu();逻辑与afx_msg void onbnclickedhuo();逻辑或afx_msg void onbnclickedfei();逻辑非afx_msg void onbnclickedyihuo();逻辑异或afx_msg void onbnclickedshi();进制10afx_msg void onbnclickeder();进制2afx_msg void onbnclickedba();进制8afx_msg void onbnclickedshiliu();进制16double endd;对话框,显示cstring endc;c
10、string endc2;cstring endc3;void jinzhizh(int njin);进制转换【cxlk02dlg.h】:public:/声明相关变量,并在xlk0624.cpp中的固定函数中初始化double num23;int num3;/标志,表示上一步的操作,用-1,9,分别表示相关项目int point3;/标志,如果小数点被按下,point为,否则为,其他运算符也同样类似的标记 double temp03;/用来存放中间变量,此处专门存放小数点后面的数值double temp23;/只存放整数的值double qf3;double jiafa3;double jia
11、nfa3;double chengfa3;double chufa3;double fuhao3;double temp33;double temp43;int du;度int hudu;弧度char ch3;int nomber3;/用来表示小数点后第几位public:double end3;afx_msg void onbnclickednum21();数字09afx_msg void onbnclickednum22();afx_msg void onbnclickednum23();afx_msg void onbnclickednum24();afx_msg void onbncli
12、ckednum25();afx_msg void onbnclickednum26();afx_msg void onbnclickednum27();afx_msg void onbnclickednum28();afx_msg void onbnclickednum29();afx_msg void onbnclickednum20();afx_msg void onbnclickednum214();afx_msg void onbnclickednum215();afx_msg void onbnclickednum210();afx_msg void onbnclickednum21
13、1();afx_msg void onbnclickednum212();afx_msg void onbnclickednum213();afx_msg void onbnclickednum216();afx_msg void onbnclickednum217();afx_msg void onbnclickednum218();afx_msg void onbnclickednum219();afx_msg void onbnclickednum220();对应的按钮afx_msg void onbnclickednum221();afx_msg void onbnclickednum
14、222();afx_msg void onbnclickednum223();afx_msg void onbnclickednum224();afx_msg void onbnclickednum225();afx_msg void onbnclickednum226();afx_msg void onbnclickednum227();void yunsuanclear2(void);部分清零cstring end4;对话框显示afx_msg void onbnclickeddushu();读数double end5;afx_msg void onbnclickedhudu();弧度转换a
15、fx_msg void onbnclickedkexue2();计算器转换afx_msg void onbnclickedbiaozhun2();afx_msg void onbnclickedsize2();【cxlk03dlg.h】public:dword text1;double text2;/*int point;*/*char textt2048;*/int type;/标注当前操作的类型double shuzi;/用于存放取出的数字int point;/用来判定四则运算中的同一个数下是否有多个小数点int hj;char fuhao;char cifabaocuo;bool out
16、;afx_msg void onbnclickedsize();afx_msg void onbnclickedjisuan();cstring text3;cstring test22;afx_msg void onbnclickedkexue();afx_msg void onbnclickedbiaozhun();bool cifafenxi(void);bool cifafenxi(char p2048,int h);double e(char p2048,int h);double t(char p2048,int h);double f(char p2048,int h);doub
17、le yufafenxi(char p2048);3,流程图4,主要程序样例1) ,数字按钮:点击数字按钮,经过判断函数,显示相应结果;void cxlk0624dlg:onbnclickednum1()/ todo: 在此添加控件通知处理程序代码updatedata(1);if(point=0) temp2=numresult(1,num,temp2);/整数else if(point=1)nomber=nomber+1;/小数点后的位数多一位 temp=numpoint(1.0,num,nomber,temp);end2=temp2+temp;updatedata(false);2) 运算
18、符按钮,经过符号判断按钮,分别取符号两边的数字进行相应计算;void cxlk0624dlg:onbnclickedjia()/ todo: 在此添加控件通知处理程序代码updatedata(1);jiafa=1;/点击加法按钮if(fuhao=0)temp3=end2;if(jianfa=1|chufa=1|chengfa=1)onbnclickeddengyu();else if(fuhao!=0)temp4=end2;end2=temp3+temp4; temp3=end2; fuhao=1; temp5=end2;/用于%计算时,获取加号前面的那个数updatedata(false);
19、yusuanclear();3) 功能计算按钮;数学功能void cxlk0624dlg:onbnclickedpingfang()/ todo: 在此添加控件通知处理程序代码updatedata(1);end2=sqrt(end2);updatedata(false);yusuanclear();4) 进制转换按钮;按照整数部分除以相应进制数,逐步填入数组,得到结果;void cxlk0624dlg:onbnclickedshi()/ todo: 在此添加控件通知处理程序代码updatedata(1);zhuan=10;jinzhizh(10);/十进制转换成十进updatedata(fal
20、se);5) 选择计算器类型按钮;获取相应类,并且清零void cxlk0624dlg:onbnclickedkexue()/ todo: 在此添加控件通知处理程序代码cxlk02dlg dlg02;dlg02.point3=0;dlg02.temp03=0.0;dlg02.temp23=0.0;dlg02.nomber3=0;dlg02.num3=-1;dlg02.num23=3.0;dlg02.end3=0.0;dlg02.qf3=0;dlg02.jiafa3=0;dlg02.jianfa3=0;dlg02.chufa3=0;dlg02.chengfa3=0;dlg02.fuhao3=0;
21、dlg02.temp33=0;dlg02.temp43=0;dlg02.ch3=0;dlg02.du=0;dlg02.hudu=0;dlg02.domodal();6) 弧度转换按钮;按照每弧度为180/度计算void cxlk02dlg:onbnclickeddushu()/ todo: 在此添加控件通知处理程序代码updatedata(1);du=1;double pi;pi=acos(-1);end5=end3*pi/180;updatedata(false);7)四则运算关键在于优先级的运算。采用递归子程序法,按照如下句式层层嵌套求解;f-idf-(e)t-t|t*f|t/fe-e+t
22、|e-t概要程序:bool cxlk03dlg:cifafenxi(char p2048,int h)词法分析int j=hj;int i=0;char str20;/用来取出单另的数字,便于转换if(pj=0&pj=0&pjt|t+e|e-tdouble temp2=t(p,hj);if(cifabaocuo=true)return 0;mark2:if(out=true)/e=t return temp2; if(type=2)if(fuhao=+)/e=t+eif(!cifafenxi(p,hj)return 0;temp2=temp2+t(p,hj);if(cifabaocuo=tru
23、e)return 0;goto mark2;if(fuhao=-)/e=e-tif(!cifafenxi(p,hj)return 0;temp2=temp2-t(p,hj);if(cifabaocuo=true)return 0;goto mark2;return temp2; test22=语法错误;return 0;double cxlk03dlg: t(char p2048,int h)/t=f|t*f|t/fdouble temp2=f(p,hj);if(cifabaocuo=true)return 0;/如果词法报错,则返回,退出此函数mark1:if(out=true)return
24、 temp2;/t=fif(type=2)if(fuhao=*)/t= t*f if(!cifafenxi(p,hj)return 0;temp2=temp2*f(p,hj);if(cifabaocuo=true)return 0;goto mark1;if(fuhao=/)/t=f t/fif(!cifafenxi(p,hj)return 0;temp2=temp2/f(p,hj);if(cifabaocuo=true)return 0;goto mark1;return temp2;test22=语法错误;return 0;double cxlk03dlg:f(char p2048,int h)/f=id|(e)if(type=1)/如果是数字if(!cifafenxi(p,hj)return 0;return shuzi;/f=idelse if(type=2)/如果是符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年计算机VFP考试优化方法试题及答案
- 装车合同协议书模板图片
- 2025年嵌入式技术组合应用试题及答案
- 2025年计算机二级JAVA考试各模块解析试题及答案
- 风险评估过程在战略目标实现中的角色试题及答案
- 2025年计算机二级C语言考试成功秘诀与试题及答案
- C语言编程过程试题及答案2025年全解析
- C语言基础语法复习试题及答案
- 数字与字符的转换试题及答案
- 2024届新高考名校试题分类汇编专题07 读后续写 (开学考试专辑)(原卷版)
- 幼儿园中班音乐《小雨沙沙》微课件
- 西铁计202119号 中国铁路西安局集团有限公司关于印发《西安局集团公司地方涉铁工程建设管理办法》的通知2021-01-25
- 光伏发电项目试验计划
- 2023年全国青少年航天知识大赛题库
- 《一棵小桃树》阅读
- 病理检验技术试题+答案
- 髋臼及股骨骨缺损的分型及评价-课件
- 施工单位关键岗位人员到岗履职检查记录表
- 上海市华师大二附中2022-2023高二下学期期中政治试卷
- 加工中心点检表
- 国开电大本科《管理英语 4》 形考任务(单元自测 1 至 8) 试题及答案
评论
0/150
提交评论