2022年2022年课程设计 2.pdf

上传人:Che****ry 文档编号:27242937 上传时间:2022-07-23 格式:PDF 页数:23 大小:1.84MB
返回 下载 相关 举报
2022年2022年课程设计 2.pdf_第1页
第1页 / 共23页
2022年2022年课程设计 2.pdf_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《2022年2022年课程设计 2.pdf》由会员分享,可在线阅读,更多相关《2022年2022年课程设计 2.pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、郑州华信学院课程设计说明书题目:计算器的设计姓名:高玲利院 (系) :信息工程学院专业班级:计算机科学与技术学号:1401110128 指导教师:张吉同成绩:时间:2015 年11 月 1 日 2015 年 12 月 4 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 23 页 - - - - - - - - - 郑州华信学院课程设计任务书题目计算器的设计专业、班级计算机科学与技术一班学号1401110128 姓名高玲利摘要:计算器在人们的日常中是比较的常见的电子产品之

2、一。可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念, 本次设计是用单片机来设计的八位计算器。该设计系统是以AT89C51为单片机,用 7SEG 为显示位控制,P1口作为输入端,外接4X4的键盘,通过键盘扫描来对输入数的控制,并外接驱动电路, 系统采用 LCD数码管作为显示器, 软件程序采用均采用C语言编写,便于移植与升级。 报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。计算器将完成的功能有整数的加,减,乘,除等功能。关键字:c+ MFC 编程完成期限:指 导 教 师签 名 :课程负责人签名:年月日名师资料总结 - - -精品资料欢迎下载 - - -

3、- - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 23 页 - - - - - - - - - 1 前言随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了, 单片机的应用已经越来越贴近生活, 用单片机来实现一些电子设计也变得容易起来。 近年来,单片机以其体积小、 价格廉、面向控制等独特优点, 在各种工业控制、 仪器仪表、 设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因

4、素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。本设计采用80S51 芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加减乘除运算及LED 显示。如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。另外,实例所设计的计算器是用LED 数码管显示的, 当然也可以用其他的器件显示,如 LED 显示屏,这样就可以显示出更多的字符,在此基础上,还可以编写更加完善的程序来实现更多的计算功能。设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块

5、完整的衔接。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 23 页 - - - - - - - - - 2 目录1 概述.3 1.1 课程设计的目的 .3 1.2 课程设计的内容 .3 2 系统需求分析 .3 2.1 系统目标 .3 2.2 主体功能 .3 2.3 开发环境 .3 3 系统概要设计 .4 3.1 系统流程图 .4 3.2 系统功能划分 .5 4 系统详细设计 .5 4.1 设计步骤 .5 4.2 页面设计 .7 5 测试.11 5.1 测试方案 .11

6、5.2 测试结果 .11 6 小结.13 7 附录.14 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 23 页 - - - - - - - - - 3 1 概述1.1 课程设计目的1、巩固并加深学生对C+语言程序设计知识的理解;2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;3、进一步掌握和应用VC+ 6.0 集成开发环境; 4、提高运用C+语言解决实际问题的能力;5、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的MIS

7、 系统; 6、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。1.2 课程设计内容课题名称:计算器的实现说明:实现一个计算器。要求:1)用“计算器”的标准视图执行简单的计算。 2)用其科学型视图执行高级的科学计算。2 系统需求分析2.1 系统目标我们在学习生活中, 常会遇到一些繁杂的数值运算, 这时候我们就必须用到科学计算器,所以便着手开发了这个计算器程序,以便用于自己的学习工作。要计算功能有以下几个方面:加法,减法,乘法,除法,求幂,求模,求平方根,求Sin,求 Cos。2.2 主体功能1、十进制数的加、减、乘、除、乘方、取模等简单计算。2、科学计算函数,包括(反)正弦、 ( 反)

8、余弦、 (反) 正切、( 反) 余切、开方、指数等函数运算。3、以角度、弧度两种方式实现上述部分函数。2.3 开发环境Windows操作系统, VC+ 6.0, OFFICE WORD 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 23 页 - - - - - - - - - 4 3 系统概要设计3.1 系统流程图图 3-1 系统流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -

9、- - - - - 第 6 页,共 23 页 - - - - - - - - - 5 表 3-1 系统功能表3.2 系统功能划分1)假设执行操作“ +” ,先输入一个数,再输入“+” ,再输入另一个数,最后输入“ +” 。整个功能“ +”就执行完毕。2)执行操作“ Sin”, 先输入一个数,在输入“ Sin” ,整个功能“ Sin”就执行完毕。3)执行操作“ n! ” ,先输入一个数,再输入“n! ,整个功能“ n! ”执行完毕。4 系统详细设计4.1 设计步骤打 开Microsoft Visual C+ 6.0, 在 文 件 中 点 击 新 建 , 在 弹 出 框 内 选 择MFC AppW

10、izardexe 工程,输入工程名yeyahui 及其所在位置,点击确定,如图4-1所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 23 页 - - - - - - - - - 6 将弹出 MFC AppWizard-step 1 对话框,选择基本对话框,点击完成,如图4-2 所示将弹出 MFC AppWizard-step 1 对话框,选择基本对话框,点击完成,如图4-2 所示图 4-2 基本对话框这样, MFC AppWizard 就建立了一个基于对话窗口的程序

11、框架,如图4-3 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 23 页 - - - - - - - - - 7 图 4-3 新建的对话框4.2 界面设计界面设计主要是创建控件,在图4-3 所示的 Resoure View 选项卡中打开 Dialog 资源组,双击 IDD_ZHOUTONG_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。1)在图 4-3 中 C

12、ontrols 的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit 属性对话框,如图4-4 所示,在该对话框中输入ID 属性。4.2 界面设计名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 23 页 - - - - - - - - - 8 界面设计主要是创建控件,在图4-3 所示的 Resoure View 选项卡中打开Dialog资源组,双击

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

14、鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出Push Button 属性对话框,如图4-5所示,在该对话框中输入控件的ID 值和标题属性。图 4-5 Push Button 属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 23 页 - - - - - - - - - 9 完成后界面如图 4-6 所示。图 4-6 设计界面加入标准型和科学型按键:名师

15、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 23 页 - - - - - - - - - 10 图 4-7 加入标准型和科学型按键界面标准型:图 4-8 标准型界面科学型:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 23 页 - - - - - - - - - 11 5 测试5.1 测试方案先用标准型进行简单的四则运算:+ - * /, 测试

16、完成后。再用科学型进行稍复杂的运算: sin,cos,tan,log,ln,n!等,核对其计算结果的正确性。5.2 测试结果经测试标准型计算器,进行简单的四则运算,结果均正确,如图5-1 所示图 5-1 四则运算测试结果图测试科学型计算器,进行 sin,cos,tan,log,ln,n!等运算, 结果均正确,求 sin30( 如图 5-2 所示) 。图 5-2 求 sin30 测试结果图求 5 ! (如图 5-3 所示) ,测试完成名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13

17、 页,共 23 页 - - - - - - - - - 12 图 5-3 求 5! 测试结果图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 23 页 - - - - - - - - - 13 6 小结经过不懈的努力,终于顺利完成了这次设计。刚开始,我头绪不是很清楚,不知道从哪里入手,但通过老师的耐心指导并和同学认真研究设计课题,跑图书馆查资料、确定基本设计方案、 对所用芯片功能进行查找、 调试、上机仿真等, 经历了一次次的困难,却积累了很多宝贵的经验。在整个设计的过程

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

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

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

21、动东西及知识,更美没有深入的的去理解,通过这次我要更加的明确自己。更要注重自己在各方面的锻炼能力,把握机会。这次的设计非常的感谢老师们。参考文献:1 谭浩强 . C程序设计 ( 第三版)(M). 北京:清华大学出版社, 2005. 2 谭浩强 . C 程序设计题解与上机指导( 第三版 ) (M). 北京:清华大学出版社,2005. 3 甄炜. C+ 语言和面向对象程序设计教程(M). 北京:机械工业出版社, 2005. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 2

22、3 页 - - - - - - - - - 14 7 附录/CalculatorDlg.cpp:implementation file #includestdafx.h #includeCalculator.h #includeCalculatorDlg.h #includemath.h #ifdef_DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE=_FILE_; #endif CAboutDlg dialog used for App About class CAboutDlg:public CDialog

23、 public:CAboutDlg(); /Dialog Data /AFX_DATA(CAboutDlg)enumIDD=IDD_ABOUTBOX ; /AFX_DATA /ClassWizard generated virtual function overrides /AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); /DDX/DDV support /AFX_VIRTUAL /Implementation protected: /AFX_MSG(CAboutDlg) /A

24、FX_MSG DECLARE_MESSAGE_MAP() ; CAboutDlg:CAboutDlg():CDialog(CAboutDlg:IDD) /AFX_DATA_INIT(CAboutDlg) /AFX_DATA_INIT void CAboutDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CAboutDlg) /AFX_DATA_MAP BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) /AFX_MSG_MAP(CAboutDlg) /No

25、 message handlers /AFX_MSG_MAP END_MESSAGE_MAP() /CCalculatorDlg dialog /CCalculatorDlg message handlers BOOL CCalculatorDlg:OnInitDialog()CDialog:OnInitDialog(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 23 页 - - - - - - - - - 15 /AddAbout.menu item to s

26、ystem menu. /IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUTBOX&0 xFFF0)=IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOXAppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX, strAboutMenu); /Set the icon for this dialog. The framework does this automatically /when the applicatio

27、ns main window is not a dialog SetIcon(m_hIcon, TRUE); /Set big icon SetIcon(m_hIcon, FALSE); /Set small icon /TODO:Add extra initialization here GetWindowRect(rcSentific); CWnd* m_pMark=GetDlgItem(IDC_DISPLAY); ASSERT(m_pMark); CRect rect;m_pMark-GetWindowRect(rect); rcStandard=rcSentific;rcStandar

28、d.right=rect.right+5; m_bIsExpand=0; m_sentific=1; OnStandard(); m_result=0.; m_isDegree=1; UpdateData(FALSE); return TRUE; /return TRUE unless you set the focus to a control void CCalculatorDlg:OnSysCommand(UINT nID, LPARAM lParam) if(nID&0 xFFF0)=IDM_ABOUTBOX) CAboutDlg dlgAbout; dlgAbout.DoModal(

29、); elseCDialog:OnSysCommand(nID,lParam); /If you add a minimize button to your dialog,you will need the code below /to draw the icon.For MFC applications using the document/vi /this is automatically done for you by the framework. void CCalculatorDlg:OnPaint()if(IsIconic()CPaintDC dc(this); /device c

30、ontext for painting SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0); /Center icon in client rectangle int cxIcon=GetSystemMetrics(SM_CXICON); int cyIcon=GetSystemMetrics(SM_CYICON); CRect rect; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 23 页 - - -

31、 - - - - - - 16 GetClientRect(&rect); int x=(rect.Width()-cxIcon+1)/2; int y=(rect.Height()-cyIcon+1)/2; /Draw the icon dc.DrawIcon(x,y,m_hIcon); elseCDialog:OnPaint(); /The system calls this to obtain the cursor to display while the user drags /the minimized window. HCURSOR CCalculatorDlg:OnQueryDr

32、agIcon()return(HCURSOR) m_hIcon void CCalculatorDlg:OnOperandInput(UINT nID) ASSERT(nID= IDC_0 & nID =0&szButton0=1;i-) m_operand*=i; UpdateDisplay(); /m_func=FuncNone; void CCalculatorDlg:OnDegree() /TODO:Add your control notification handler code here m_isDegree=0; DtoR=(2*PI)/360; UpdateData(FALS

33、E); void CCalculatorDlg:OnRad() /TODO:Add your control notification handler code here m_isDegree=1; DtoR=1; UpdateData(TRUE); void CCalculatorDlg:OnCos() /TODO:Add your control notification handler code here m_func=FuncCos; Run_Func(); void CCalculatorDlg:ExpandToSentific() if(m_bIsExpand)SetWindowP

34、os(NULL,0,0,rcSentific.Width(), rcSentific.Height(),SWP_NOMOVE|SWP_NOZORDER); SetVisibleCtrl(); else SetWindowPos(NULL,0,0,rcStandard.Width(),rcSentific.Height(), SWP_NOMOVE|SWP_NOZORDER); SetVisibleCtrl(); UpdateData(FALSE); void CCalculatorDlg:SetVisibleCtrl() CWnd* pCtrl=GetWindow(GW_CHILD); CRec

35、t rcTest; CRect rcControl; CRect rcShow; GetWindowRect(rcShow); while(pCtrl!=NULL) pCtrl-GetWindowRect(rcControl); if(rcTest.IntersectRect(rcShow,rcControl) pCtrl-EnableWindow(TRUE); else pCtrl-EnableWindow(FALSE); pCtrl=pCtrl-GetWindow(GW_HWNDNEXT); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

36、- - - - 名师精心整理 - - - - - - - 第 21 页,共 23 页 - - - - - - - - - 20 课程设计成绩评定表评定项目内容满分评分总分学习态度学习认真,态度端正,遵守纪律。10 设计情况认真查阅资料,勤学好问,提出的问题有一定的深度,分析解决问题的能力较强。40 说明书质量设计方案正确、表达清楚;设计思路、实验(论证)方法科学合理;达到课程设计任务书规定的要求; 图、表、文字表达准确规范,上交及时。40 回答问题情况回答问题准确,基本概念清楚,有理有据,有一定深度。10 总成绩采用五级分制:优、良、中、及格、不及格名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 23 页 - - - - - - - - - 21 指导教师评语:签名:年月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 23 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁