课程设计--实现计算器功能的应用程序.doc_第1页
课程设计--实现计算器功能的应用程序.doc_第2页
课程设计--实现计算器功能的应用程序.doc_第3页
课程设计--实现计算器功能的应用程序.doc_第4页
课程设计--实现计算器功能的应用程序.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计(论文)题目: 实现计算器功能的应用程序 学 院 名 称: 电子与信息工程学院 专 业: 计算机科学与技术 班 级: 计科121 姓 名: 张金飞 学 号: 12401010129 目 录1 设计背景和需求分析 31.1 设计背景 31.2 应用背景 3 1.3 需求分析 3 1.4 应用技术 32 系统结构设计 42.1 系统结构模型 42.2 模块划分 52.3 实现方法 53 程序模块设计与调试 63.1 设计和调试各程序模块 73.2 提交主要的程序段 124 结束语 134.1 系统应用前景 134.2 不足与改进 134.3 体会 141.设计背景和需求分析1.1 设计背景 (1)巩固和加深学生对类的基本知识的理解和掌握;(2)掌握C+语言编程和程序调试的基本技能;(3)利用C+语言进行基本的软件设计;(4)掌握书写程序设计说明文档的能力;(5) 提高运用C+语言解决实际问题的能力。1.2 应用背景说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。 直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。 十七世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的“纳皮尔算筹”,英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。1.3 需求分析即要实现简单计算器等功能,包括加、减、乘、除等运算功能,还要实现数据的输入、输出、计算、显示等功能。1.4 应用技术VisualStudio2005、 C+编程、 MFC、 类2. 系统结构设计2.1 系统结构模型结束输出结果输入第二个数加法减法乘法除法开方乘方寄存器清0输入第一个数开始 2.2模块划分序号文件名主要功能备注1+加法求和两个操作数2-减法求差两个操作数3*乘法求积两个操作数4/除法求商两个操作数5sqrt求平方根一个操作数6乘方求平方一个操作数7=等于8c寄存器清02.3 实现方法运用MFC制作界面输入代码,创建类来实现3. 程序模块设计与调试3.1 设计和调试各模块程序/主要程序段数字等号按钮程序:void CZjfDlg:OnButton19() / TODO: Add your control notification handler code hereCalc2();m_sign = =;equals = true;void CZjfDlg:OnButton7() / TODO: Add your control notification handler code herem_numb = 1; Calc1();void CZjfDlg:OnButton8() / TODO: Add your control notification handler code herem_numb = 2; Calc1();void CZjfDlg:OnButton9() / TODO: Add your control notification handler code here m_numb = 3; Calc1();void CZjfDlg:OnButton4() / TODO: Add your control notification handler code herem_numb = 4; Calc1();void CZjfDlg:OnButton5() / TODO: Add your control notification handler code herem_numb = 5; Calc1();void CZjfDlg:OnButton6() / TODO: Add your control notification handler code herem_numb = 6; Calc1();void CZjfDlg:OnButton1() / TODO: Add your control notification handler code herem_numb = 7; Calc1();void CZjfDlg:OnButton2() / TODO: Add your control notification handler code herem_numb = 8; Calc1();void CZjfDlg:OnButton3() / TODO: Add your control notification handler code herem_numb = 9; Calc1();void CZjfDlg:OnButton10() / TODO: Add your control notification handler code herem_numb = 0; Calc1();运算符程序段:void CZjfDlg:OnButton14() / TODO: Add your control notification handler code hereCalc2();m_sign = +;void CZjfDlg:OnButton15() / TODO: Add your control notification handler code hereCalc2();m_sign = -;void CZjfDlg:OnButton16() / TODO: Add your control notification handler code hereCalc2();m_sign = *;void CZjfDlg:OnButton17() / TODO: Add your control notification handler code hereCalc2();m_sign = /;void CZjfDlg:OnButton18() / TODO: Add your control notification handler code hereCalc2();m_sign = ;void CZjfDlg:OnButton13() / TODO: Add your control notification handler code hereif(equals)/通过运算符运算之后值number1 = sqrt(number1);m_EDIT1.Format(%lg, number1);else/运算之前的值number2 = sqrt(number2);m_EDIT1.Format(%lg, number2);UpdateData(FALSE);void CZjfDlg:OnButton12() / TODO: Add your control notification handler code herenumber1 = 0;number2 = 0;nums = -1;num = false;point = false;equals = false;m_sign = =;m_EDIT1.Format(%lg,number1);UpdateData(FALSE);void CZjfDlg:OnButton11() / TODO: Add your control notification handler code hereif(equals)if(point = true) m_EDIT1.Format(%lg, number1);elsem_EDIT1.Format(%lg, number1);m_EDIT1 += .;elseif(point = true) m_EDIT1.Format(%lg, number2);elsem_EDIT1.Format(%lg, number2);m_EDIT1 += .;point = true;UpdateData(FALSE);实现按钮:void CZjfDlg:Calc1()/按下数字键switch(m_numb)case 0:m_edit = 0;break;case 1:m_edit = 1;break;case 2:m_edit = 2;break;case 3:m_edit = 3;break;case 4:m_edit = 4;break;case 5:m_edit = 5;break;case 6:m_edit = 6;break;case 7:m_edit = 7;break;case 8:m_edit = 8;break;case 9:m_edit = 9;break;if(equals)/如果按下等号键将其还原到初始值equals = false;num = false;if(point)/如果现在输入的是小数number2 = number2 + m_edit * pow(10, nums -);/乘以10的多少次方 if(m_edit = 0)if(nums = -2)/0直接跟在小数点后面,如:1.0m_EDIT1.Format(%lg, number2);m_EDIT1 += .0;else/0不是直接跟在小数点后,如1.2304m_EDIT1.Format(%lg, number2);m_EDIT1 += 0;else m_EDIT1.Format(%lg, number2); else/输入的是整数number2 = number2 * 10 + m_edit; m_EDIT1.Format(%lg, number2); UpdateData(FALSE);void CZjfDlg:Calc2()/按下运算符if(!equals)/如果不是等号if(num)/如果是数字键则不做switch(m_sign)case +:number1 = number1 + number2;break;case -:number1 = number1 - number2;break;case *:number1 = number1 * number2;break;case /:if(number2 != 0)number1 = number1 / number2;break;case :number1 = number1 * number1;break;elsenumber1 = number2;num = true;elseequals = false;if(m_sign = / & number2 = 0) m_EDIT1 = 除数不能为零!; else m_EDIT1.Format(%lg, number1);number2 = 0;point = false;nums = -1;UpdateData(FALSE);4. 结束语4.1 系统应用前景 随着21世纪的到来,信息化时代已经向我们走来,这个时代的最重要的标志就是计算机的广泛应用。如今社会上计算机应用已经达到非常普及的程度,随处都可以见到计算机的身影。我们也熟悉了在社会各处遇见它们的环境,学校的机房,金融场所,以及到处可见的网吧,计算机如水银般无孔不入。我们甚至会怀疑计算机还将向哪里深入,还将控制哪个地方。当然这前景依然是乐观的。计算机的发展历程:现在的计算机是由早期的电动计算器发展而来的。1945年,世界上出现了第一台电子数字计算机“ENIAC”,用于计算弹道。是由美国宾夕法尼亚大学莫尔电工学院制造的,但它的体积庞大,占地面积170多平方米,重量约30吨,消耗近100千瓦的电力。显然,这样的计算机成本很高,使用不便。1956年,晶体管电子计算机诞生了,这是第二代电子计算机。只要几个大一点的柜子就可将它容下,运算速度也大大地提高了。1959年出现的是第三代集成电路计算机。从20世纪70年代开始,这是电脑发展的最新阶段。整理76年,由大规模集成电路和超大规模集成电路制成的“克雷一号”,使电脑进入了第四代。超大规模集成电路的发明,使电子计算机不断向着 小型化、微型化、低功耗、智能化、系统化的方向更新换代。20世纪90年代,电脑向“智能”方向发展,制造出与人脑相似的电脑,可以进行思维、学习、记忆、网络通信等工作。 进入21世纪,电脑更是笔记本化、微型化和专业化,每秒运算速度超过100万次,不但操作简易、价格便宜,而且可以代替人们的部分脑力劳动,甚至在某些方面扩展了人的智能。于是,今天的微型电子计算机就被形象地称做电脑了。(1)(2)4.2 不足与改进 该计算器无法进行高级的运算,因为编程能力有限,在调试时错误也是很多,虽然完成了所要求的操作,但是还

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论