ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:879.13KB ,
资源ID:12743891      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12743891.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机科学与技术专业计算器设计毕业论文.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机科学与技术专业计算器设计毕业论文.docx

1、计算机科学与技术专业计算器设计毕业论文课程设计说明书题目: 计算器的设计 姓 名: 院 (系): 信息工程学院 专业班级: 计算机科学与技术 学 号: 指导教师: 成 绩: 时间: 年 11月 1 日 年 12 月 4 日课程设计任务书题目 计算器的设计 专业、班级 计算机科学与技术一班 学号 姓名 摘要: 计算器在人们的日常中是比较的常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机来设计的八位计算器。该设计系统是以AT89C51为单片机,用7SEG为显示位控制,P1口作为输入端,外接4X4的键盘,通过键盘扫描来对输入数的控制,并外接

2、驱动电路,系统采用LCD数码管作为显示器,软件程序采用均采用C语言编写,便于移植与升级。报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。计算器将完成的功能有整数的加,减,乘,除等功能。关键字:c+ MFC编程完 成 期 限: 指导教师签名: 课程负责人签名: 年 月 日 前言 随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了,单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得 容易起来。 近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产

3、品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。本设计采用80S51芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加减乘除运算及LED显示。如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。另外,实例所设计的计算器是用LED数码管显示的,当然也可以用其他的器件显示,如LED显示屏,这样就可以显示出更多的字符,在此基础上,还可以编写更加完善的程序来实现更多的计算功能

4、。设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。目录1概述.31.1课程设计的目的.31.2课程设计的内容.32系统需求分析.32.1系统目标.32.2主体功能.32.3开发环境.33系统概要设计.43.1系统流程图.43.2系统功能划分.54系统详细设计.54.1设计步骤.54.2页面设计.75测试.115.1测试方案.115.2测试结果.116小结.137附录.141概述1.1课程设计目的1、巩固并加深学生对C+语言程序设计知识的理解;2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;3、

5、进一步掌握和应用VC+6.0集成开发环境;4、提高运用C+语言解决实际问题的能力;5、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的MIS系统;6、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。1.2课程设计内容课题名称:计算器的实现说明:实现一个计算器。要求:1)用“计算器”的标准视图执行简单的计算。2)用其科学型视图执行高级的科学计算。2系统需求分析2.1系统目标我们在学习生活中,常会遇到一些繁杂的数值运算,这时候我们就必须用到科学计算器,所以便着手开发了这个计算器程序,以便用于自己的学习工作。要计算功能有以下几个方面:加法,减法,乘法,除法,求幂,求模,求平方根,求

6、Sin,求Cos。2.2主体功能1、十进制数的加、减、乘、除、乘方、取模等简单计算。2、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运算。3、以角度、弧度两种方式实现上述部分函数。2.3开发环境Windows操作系统,VC+6.0,OFFICEWORD3系统概要设计3.1系统流程图图3-1系统流程图表3-1系统功能表3.2系统功能划分1)假设执行操作“+”,先输入一个数,再输入“+”,再输入另一个数,最后输入“+”。整个功能“+”就执行完毕。2)执行操作“Sin”,先输入一个数,在输入“Sin”,整个功能“Sin”就执行完毕。3)执行操作“n!”,先输入一

7、个数,再输入“n!,整个功能“n!”执行完毕。4系统详细设计4.1设计步骤打开MicrosoftVisualC+6.0,在文件中点击新建,在弹出框内选择MFCAppWizardexe工程,输入工程名yeyahui及其所在位置,点击确定,如图4-1所示。将弹出MFCAppWizard-step1对话框,选择基本对话框,点击完成,如图4-2所示将弹出MFCAppWizard-step1对话框,选择基本对话框,点击完成,如图4-2所示图4-2基本对话框这样,MFCAppWizard就建立了一个基于对话窗口的程序框架,如图4-3所示。图4-3新建的对话框4.2界面设计界面设计主要是创建控件,在图4-3

8、所示的ResoureView选项卡中打开Dialog资源组,双击IDD_ZHOUTONG_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。1)在图4-3中Controls的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit属性对话框,如图4-4所示,在该对话框中输入ID属性。4.2界面设计 界面设计主要是创建控件,在图4-3所示的ResoureView选项卡中打开D

9、ialog资源组,双击IDD_ZHOUTONG_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。1)在图4-3中Controls的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit属性对话框,如图4-4所示,在该对话框中输入ID属性。图4-4Edit属性对话框2)在图4-2中Controls的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并

10、拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出PushButton属性对话框,如图4-5所示,在该对话框中输入控件的ID值和标题属性。图4-5PushButton属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。完成后界面如图4-6所示。图4-6设计界面加入标准型和科学型按键:图4-7加入标准型和科学型按键界面标准型:图4-8标准型界面科学型:5测试5.1测试方案 先用标准型进行简单的四则运算:+-*/,测试完成后。再用科学型进行稍复杂的运算:sin,cos,tan,log,ln,n!等,核对其计算结果的正确性。5.2测试结果经测试

11、标准型计算器,进行简单的四则运算,结果均正确,如图5-1所示图5-1四则运算测试结果图 测试科学型计算器,进行sin,cos,tan,log,ln,n!等运算,结果均正确,求sin30(如图5-2所示)。图5-2求sin30测试结果图求5!(如图5-3所示),测试完成图5-3求5!测试结果图6小结 经过不懈的努力,终于顺利完成了这次设计。刚开始,我头绪不是很清楚,不知道从哪里入手,但通过老师的耐心指导并和同学认真研究设计课题,跑图书馆查资料、确定基本设计方案、对所用芯片功能进行查找、调试、上机仿真等,经历了一次次的困难,却积累了很多宝贵的经验。在整个设计的过程中遇到的问题主要有以下三点,第一:

12、基础知识掌握的不牢固,主要表现在一些常用的电路的形式和功能不清楚,对书本上的内容理解不够透彻。第二:对一些常用的应用软件缺少应用,体现在画电路图和系统的仿真的时候,对这些软件的操作不熟练,浪费了很多时间。第三:相关知识掌握的不够全面,缺少系统设计的经验。 这次设计进一步端了我的学习态度,学会了实事求是,严谨的作风,对自己要严格要求,不能够一知半解,要力求明明白白。急于求成是不好的,我有所感受。如果省略了那些必要的步骤,急于求成,不仅会浪费时间,还会适得其反。我觉得动手之前,头脑里必须清楚该怎么做,这一点是很重要的。就目前来说,我的动手能力虽然差一点,但我想,通过我的不懈努力,在这方面,我总会得

13、到提高。这一点,我坚信。因为别人能做到的,我也一定能做到。在硬件的制作过程中我走了好多的弯路,主要是在系统还没有设计很有把握就开始动手制作了。后来发现与设计的要求还有偏差,反复的改过了几次,浪费了大量的时间和体力。感受到设计人员要有耐心,要认真的从要求开始研究。软件的编写过程中费了很大的力气,因为软件的编写要求很高,要很细心,一不小心就会调用错误,很深刻的体会到作为软件编程人员是绝不能粗心大意的。一个程序的完成的速度和质量高低与细心与否有着很大联系。编程时,我充分使用了结构化的思想。这样因为语句较少,程序调试比较方便,功能模块可以逐一的调试,充分体现了结构化编程的优势。当每个模块都完成时,将其

14、功能加到一起就完成了整体的设计。在此次的毕业设计中我最大的体会就是进一步认识到了理论联系实践的重要性。一份耕耘,一份收获。通过这段时间的设计,让我明白科学的思维方法和学习方法是多么重要,只有这样才能够有很高的效率,才能够让自己的工作更完美。总而言之,此次毕业设计让我学到了好多平时在课堂上学不到的东西,增加了我的知识运用能力,增强我的实际操作能力。谢谢老师给我们提供这么好的机会,为我们之后走向社会奠定了一个好的基础。 本次设计让我学到了很多,也学会到了要怎么样去面对困难,不要对知识一知半截,要有的求实的能力,通过老师的帮助我学到了很多在平时的没有注意到的动东西及知识,更美没有深入的的去理解,通过

15、这次我要更加的明确自己。更要注重自己在各方面的锻炼能力,把握机会。这次的设计非常的感谢老师们。参考文献:1谭浩强.C程序设计(第三版)(M).北京:清华大学出版社,2005.2谭浩强.C程序设计题解与上机指导(第三版)(M).北京:清华大学出版社,2005.3甄炜.C+语言和面向对象程序设计教程(M).北京:机械工业出版社,2005.7附录/CalculatorDlg.cpp:implementationfile#includestdafx.h#includeCalculator.h#includeCalculatorDlg.h#includemath.h#ifdef_DEBUG#define

16、 newDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE=_FILE_;#endifCAboutDlgdialogusedforAppAboutclassCAboutDlg:publicCDialogpublic:CAboutDlg();/DialogData/AFX_DATA(CAboutDlg)enumIDD=IDD_ABOUTBOX;/AFX_DATA/ClassWizardgeneratedvirtualfunctionoverrides/AFX_VIRTUAL(CAboutDlg)protected:virtualvoidDoDataExchan

17、ge(CDataExchange*pDX);/DDX/DDVsupport/AFX_VIRTUAL/Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSG DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg():CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoidCAboutDlg:DoDataExchange(CDataExchange*pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAbo

18、utDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg,CDialog)/AFX_MSG_MAP(CAboutDlg)/Nomessagehandlers/AFX_MSG_MAPEND_MESSAGE_MAP()/CCalculatorDlgdialog/CCalculatorDlgmessagehandlersBOOLCCalculatorDlg:OnInitDialog()CDialog:OnInitDialog();/AddAbout.menuitemtosystemmenu./IDM_ABOUTBOXmustbeinthesystemcommand

19、range.ASSERT(IDM_ABOUTBOX&0xFFF0)=IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOXAppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);/Settheiconforthisdialog.Theframeworkdoesthisautomatically/whentheapplicationsmainwindowisnotadialogSetIcon(m_hIcon,TRUE);/Setbigicon SetIcon(m_hIcon,F

20、ALSE);/Setsmallicon/TODO:AddextrainitializationhereGetWindowRect(rcSentific);CWnd*m_pMark=GetDlgItem(IDC_DISPLAY);ASSERT(m_pMark);CRectrect;m_pMark-GetWindowRect(rect);rcStandard=rcSentific;rcStandard.right=rect.right+5;m_bIsExpand=0;m_sentific=1;OnStandard();m_result=0.;m_isDegree=1;UpdateData(FALS

21、E);returnTRUE;/returnTRUEunlessyousetthefocustoacontrolvoidCCalculatorDlg:OnSysCommand(UINTnID,LPARAMlParam)if(nID&0xFFF0)=IDM_ABOUTBOX)CAboutDlgdlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID,lParam);/Ifyouaddaminimizebuttontoyourdialog,youwillneed thecodebelow/todrawtheicon.ForMFCapplicat

22、ionsusingthedocument/vi/thisisautomaticallydoneforyoubytheframework.voidCCalculatorDlg:OnPaint()if(IsIconic()CPaintDCdc(this);/devicecontextforpaintingSendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);/CentericoninclientrectangleintcxIcon=GetSystemMetrics(SM_CXICON);int cyIcon=GetSystemMetric

23、s(SM_CYICON);CRectrect;GetClientRect(&rect);int x=(rect.Width()-cxIcon+1)/2;inty=(rect.Height()-cyIcon+1)/2;/Draw the icon dc.DrawIcon(x,y,m_hIcon);elseCDialog:OnPaint();/Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags/theminimizedwindow.HCURSORCCalculatorDlg:OnQueryDragIcon()return(HC

24、URSOR)m_hIconvoidCCalculatorDlg:OnOperandInput(UINTnID)ASSERT(nID=IDC_0&nID=IDC_9);if(m_errorState!=ErrNone)return;if(m_func!=FuncNone)m_func=FuncNone;Calculate();if(!m_bOperandAvail)m_operand=0;if(!m_bCoff)m_operand=m_operand*10+(nID-IDC_0);elsem_operand=m_operand+(nID-IDC_0)*m_coff;m_coff*=0.1;m_b

25、OperandAvail=TRUE;UpdateDisplay();voidCCalculatorDlg:Calculate()if(m_errorState!=ErrNone)return;if(m_bOperandAvail)if(m_operator=OpNone)m_accum=m_operand;elseif(m_operator=OpMultiply)m_accum*=m_operand;elseif(m_operator=OpDivide)if(m_operand=0)m_errorState=ErrDivideByZero;elsem_accum/=m_operand;else

26、if(m_operator=OpAdd)m_accum+=m_operand;elseif(m_operator=OpSubtract) m_accum-=m_operand;m_bOperandAvail=FALSE;m_bCoff=0;m_coff=0.1;UpdateDisplay();voidCCalculatorDlg:UpdateDisplay()if(GetSafeHwnd()=NULL)return;if(m_errorState!=ErrNone)m_result=余数不能为0;elsefloatlVal=(m_bOperandAvail)?m_operand:m_accum;m_result.Format(_T(%f),lVal);inti=m_result.GetLength();while(m_result.GetAt(i-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1