mfc编写的计算器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

邮电与信息工程学院课程设计说明书课题名称:系统软件综合设计学生学号:1002030228专业班级:计算机科学与技术02班学生姓名:周超学生成绩:指导教师:杨玉蓓课题工作时间:2012年6月4日至6月15日班级:计算机科学与技术02班姓名:周超学号:10020302281一、课程设计的任务的基本要求:一、设计部分1、问题描述:使用vc++和MFC建立一个简单的对话框形式的计算器,并具有以下功能:能进行两个数的加、减、乘、除和模运算。计算器上设计0-9数字键,为一个控件数组;加、减、乘、除、模运算符键为一个控件数组;另设确定、清除、关闭键各一个。根据设计需要,可以自行添加其他功能键。仅要求设计一个操作数为整数的运算器,如果能力有余,可以设计浮点数运算器,并增加其他功能。有适当的文字提示。3、输出形式:以下两种输入和输出形式任选其一:输入框两个,输出框一个;输入和输出共用同一个编辑框。4、实现提示:本次设计使用了MFC,请自行查找相关资料。2、论文部分1、学生应提交的资料:纸质《课程设计说明书》1份源程序1份(作为附件)。2、课程设计摘要(中文)的内容包括:概述:包括该次课程设计自己所作的题目,所用的编程工具等;需求分析(基本要求)描述该软件从设计思路到实现的详细步骤,要求有相应的文字叙述、截图和关键代码。注意,此部分文字叙述应当较为详细,代码少量。参考文献(至少2篇)3、课程设计摘要(英文)部分,只需简要介绍设计中使用的语言和知识,以及设计实现的功能即可。班级:计算机科学与技术02班姓名:周超学号:10020302282指导教师签字:杨玉蓓2012年5月31日二、进度安排:1、程序设计十七周:周一~周五上午8:30-11:30下午2:30-5:002、论文撰写十八周:周一~周五答辩和论文撰写3、程序演示和论文提交十八周:周五三、应收集资料及主要参考文献:应充分查阅vc++和MFC程序设计的相关资料,自学可视化程序设计的方法。班级:计算机科学与技术02班姓名:周超学号:10020302283四、课程设计摘要(中文):1.题目:用MFC制作简易计算器2.编程工具:MicrosoftVisualC++6.03.需求分析设计一个简易计算器,使之能提供以下功能:a)能连续输出一串数;b)具备简单的运算功能;c)能进行多次运算;4.算法设计a)编辑框的变量成员设定为字符型,将0~9和“·”以字符型输入到编辑框显示;b)定义两个全局变量iFirst和iType,将第一个字符型数据用atof转换为浮点型并存储在iFirst中,+、-、*、/四种运算符用用iType分别标记为1、2、3、4;c)等于号用switch语句实现多分支选择结构分别对应四种运算符;d)正负转换用if…else…实现,首先定义一个浮点型变量a,负数用abs取绝对值,正数直接a前加负号得负数;e)清零的实现是直接将零赋值给iFirst和iType,同时编辑框等于空;5.主要代码intiType;floatiFirst;voidCMyDlg::Onzhengfu(){floata;a=atof(m_edit);//字符型转换为double型,用什么函数if(a=0){a=abs(a);}else{a=-a;}charcA[50];memset(cA,0,50);sprintf(cA,%f,a);m_edit=cA;UpdateData(false);}voidCMyDlg::Oncheng()班级:计算机科学与技术02班姓名:周超学号:10020302284{iFirst=atof(m_edit);iType=3;m_edit=;UpdateData(false);}voidCMyDlg::Onchu(){iFirst=atof(m_edit);iType=4;m_edit=;UpdateData(false);}voidCMyDlg::Ondengyu(){floatiResult=0;switch(iType){case1:iResult=iFirst+atof(m_edit);break;case2:iResult=iFirst-atof(m_edit);break;case3:iResult=iFirst*atof(m_edit);break;case4:if(atof(m_edit)!=0){iResult=iFirst/atof(m_edit);break;}else{MessageBox(can'tusezero);}return;}charcResult[50];memset(cResult,0,50);/*memset()函数常用于内存空间初始化;memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。*/sprintf(cResult,%f,iResult);班级:计算机科学与技术02班姓名:周超学号:10020302285m_edit=cResult;UpdateData(false);iFirst=0;iType=0;//sprintf最常见的应用之一莫过于把整数打印到字符串中}voidCMyDlg::Onjia(){iFirst=atof(m_edit);iType=1;m_edit=;UpdateData(false);}//连续运算两个运算符,第一个运算符的iQian会被第二个已经iQian覆盖voidCMyDlg::Onjian(){iFirst=atof(m_edit);iType=2;m_edit=;UpdateData(false);}voidCMyDlg::On9(){m_edit=m_edit+9;UpdateData(false);}voidCMyDlg::On7(){m_edit=m_edit+7;UpdateData(false);}voidCMyDlg::On4(){m_edit=m_edit+4;UpdateData(false);}voidCMyDlg::On5(){m_edit=m_edit+5;UpdateData(false);}voidCMyDlg::On0(){m_edit=m_edit+0;班级:计算机科学与技术02班姓名:周超学号:10020302286UpdateData(false);}voidCMyDlg::Ondian(){m_edit=m_edit+.;UpdateData(false);}voidCMyDlg::On1(){m_edit=m_edit+1;UpdateData(false);}voidCMyDlg::On2(){m_edit=m_edit+2;UpdateData(false);}voidCMyDlg::On3(){m_edit=m_edit+3;UpdateData(false);}voidCMyDlg::Onqinglin(){iFirst=0;iType=0;m_edit=;UpdateData(false);}voidCMyDlg::On6(){m_edit=m_edit+6;UpdateData(false);}voidCMyDlg::On8(){m_edit=m_edit+8;UpdateData(false);}班级:计算机科学与技术02班姓名:周超学号:100203022876.调试分析和运行结果班级:计算机科学与技术02班姓名:周超学号:10020302288班级:计算机科学与技术02班姓名:周超学号:100203022897.参考文献《可视化程序设计》邱涌肖春宝白秀玲著五、课程设计摘要(英文):intiType;floatiFirst;voidCMyDlg::Onzhengfu(){floata;a=atof(m_edit);//字符型转换为double型,用什么函数if(a=0){a=abs(a);}else{a=-a;}charcA[50];memset(cA,0,50);sprintf(cA,%f,a);m_edit=cA;UpdateData(false);}voidCMyDlg::Oncheng(){iFirst=atof(m_edit);iType=3;m_edit=;UpdateData(false);}voidCMyDlg::Onchu(){iFirst=atof(m_edit);iType=4;m_edit=;UpdateData(false);}voidCMyDlg::Ondengyu(){floatiResult=0;switch(iType)班级:计算机科学与技术02班姓名:周超学号:100203022810{case1:iResult=iFirst+atof(m_edit);break;case2:iResult=iFirst-atof(m_edit);break;case3:iResult=iFirst*atof(m_edit);break;case4:if(atof(m_edit)!=0){iResult=iFirst/atof(m_edit);break;}else{MessageBox(can'tusezero);}return;}charcResult[50];memset(cResult,0,50);/*memset()函数常用于内存空间初始化;memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。*/sprintf(cResult,%f,iResult);m_edit=cResult;UpdateData(false);iFirst=0;iType=0;//sprintf最常见的应用之一莫过于把整数打印到字符串中}voidCMyDlg::Onjia(){iFirst=atof(m_edit);iType=1;m_edit=;UpdateData(false);}//连续运算两个运算符,第一个运算符的iQian会被第二个已经iQian覆盖voidCMyDlg::Onjian(){iFirst=atof(m_edit);班级:计算机科学与技术02班姓名:周超学号:100203022811iType=2;m_edit=;UpdateData(false);}voidCMyDlg::On9(){m_edit=m_edit+9;UpdateData(false);}voidCMyDlg::On7(){m_edit=m_edit+7;UpdateData(false);}voidCMyDlg::On4(){m_edit=m_edit+4;UpdateData(false);}voidCMyDlg::On5(){m_edit=m_edit+5;UpdateData(false);}voidCMyDlg::On0(){m_edit=m_edit+0;UpdateData(false);}voidCMyDlg::Ondian(){m_edit=m_edit+.;UpdateData(false);}voidCMyDlg::On1(){m_edit=m_edit+1;UpdateData(false);}voidCMyDlg::On2(){m_edit=m_edit+2;UpdateData(false);}班级:计算机科学与技术02班姓名:周超学号:100203022812voidCMyDlg::On3(){m_edit=m_edit+3;UpdateData(false);}voidCMyDlg::Onqinglin(){iFirst=0;iType=0;m_edit=;UpdateData(false);}voidCMyDlg::On6(){m_edit=m_edit+6;UpdateData(false);}voidCMyDlg::On8(){m_edit=m_edit+8;UpdateData(false);}班级:计算机科学与技术02班姓名:周超学号:100203022813六、成绩评定:指导

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功