课程设计简易计算器.docx

上传人:h**** 文档编号:27018004 上传时间:2022-07-21 格式:DOCX 页数:15 大小:17.72KB
返回 下载 相关 举报
课程设计简易计算器.docx_第1页
第1页 / 共15页
课程设计简易计算器.docx_第2页
第2页 / 共15页
点击查看更多>>
资源描述

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

1、课程设计简易计算器 仰恩大学C+课程设计 课程设计题目 设计简易计算器 班级 090901 专业计算机科学与技术 学号 110920220120 学生姓名涂国祥 指导教师张思民袁军 完成日期 2022 年 01 月 13 日 摘要 课程设计语言类课程的指导思想:使学生通过学习高级编程语言的知识、编程技术和基本算法,掌握课程设计的思想和方法,具备利用计算机求解实际问题的能力,能灵活运用高级语言进行程序设计。 其实认真学习一门语言并不难,关键是所追求的学习方法和途径。通过C 语言程序设计,可以使我们掌握软件开发过程的难题分析、系统设计、程序编码、测试程序等基本方法和技能。同时,还能加强我们的时间管

2、理意识,锻炼对难题的发现、分析和处理能力。我认为遇到难题并不可怕,可怕的是你不去解决,这可能是C语言课程设计的主要目的之一。 现时学习生活中,常会遇到一些数目较大数据繁杂的数值运算,徒手运算起来很困难,这时候我们就必须用到计算器。人们对计算的要求不断提高,普通的功能简单的仅能进行四则运算的计算工具已经不能满足需要,需要一种能进行多种计算。现在已经有一些功能较为强大、涵盖面较广的计算软件,而且各种平台的小工具仍不断出现。这些大大方便了我们的生活给我们更多的选择和实现方式。本程序的编写基础是MFC汉化版,它在MFC的原有基础上实现了多汉字的支持方便了我们的使用。生成的程序可移植性强兼容性好稳定!本

3、程序实现了加、减、乘、除、求幂、求模,求平方根,求Sin,求Cos,求Log10,求阶乘,取整,求正切,以及进制之间的相互转换。它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。但是,每次只能运算一个表达式,按 CE清空后再计算下一组式子。本程序在进制转换方面有一些漏洞,但一般的进制转换结果还是准确的。 第1章选题的意义 1.1自我介绍 我的名字是涂国祥,就读于仰恩大学,计算机090901班,计算机与信息学院。 1.2选题 1.我选的题目是:简单计算器的设计 2.我选这道题的原因如下: 计算器对我们每一的学生都很熟悉,从初中到高中再到大学。但是我们只知道按下几个按钮计

4、算器便会显示出结果,很少有学生分析过计算器究竟是如何运行的。C语言课程设计便是一个很好的机会,让我去亲自写计算器的运行代码,尽管是简单计算器的设计,但其背后的知识那是相当多的,对我是个挑战,我接受! 3.运用的数据结构和知识点 MFC 绘图知识数学函数选择结构循环结构数组指针顺序结 第2章系统功能需求分析 2.1系统的基本要求 1. 算术运算功能。能够实现+、-、*、/、mod、int运算。 2. 函数运算功能。能够实现exp、ln、sin、xy、log、cos、x3、n!、tan、 x2、1/x等运算。 3. 进制之间的转换功能。能够实现十六、十、二、八进制数据之间的转换。 4.通过键盘控制

5、字符和数字的输入。 2.2数据结构设计及用法说明 此程序调用的函数主要有 /*数学函数的定义*/ /*屏幕操作函数*/ /*I/O函数*/ /*库函数*/ / /*字符操作函数*/。基本使用:用控制鼠标图形移动,当*变量长度参数表*/ /*图形函数*/ /*字符串函数*移动到相应得按钮时按回车键输入当前数字或执行对应的函数。 加法:输入一个被加数数,按“+”,输入被加数,按“=”,输出结果。 乘法: 输入一个数,按“*”,输入另个数,按“=”,输出结果。 除法: 输入一个被除数,按“+”,输入另个除数,按“=”,输出结果。 求余:输入一个数,按“mod”,按“=”,输出结果。 取整:输入一个数

6、,按“int”,按“=”,输出结果。 八进制转十进制:输入一个八进制数,按“10-8”,按“=”,输出十进制结果。 十六进制转十进制:输入一个十六进制数,按下“jz”+“16- 10”按“=”,输出十进制结果 2.3功能模块 键盘控制模块:通过int specialkey(void)和键盘来实现输入数据,操作方式的控制。 计算模块:通过调用math.h中的数学函数,如:+、-、*、/、sin、cos、mod 等来实现对result的赋值。 输出模块:在指定位置输出计算模块中result的值,在指定位置输出键盘控制模块中对参量所赋的值以及在指定位置输出键盘控制模块中得到的运 算符。 第3章系统设

7、计3.1流程图 流程图 3.2数据结构 用到了if 判断语句,for 循环语句,while 语句,且主要通过while 语句实现对键盘、光标的操作和数据、运算符的输入,还用到了switch 语句,switch 语句的主要作用是实现对所输入的数据的运算操作,然后将运算结果赋值给result ,最后输出。 第4章 系统实现 本系统采用 C 语言开发,生成可执行文件在任何系统下都可以执行,具有很好的数据处理能力和稳定性。并且使用MFC 汉化版。生成的程序可移植性强、兼容性好。它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。 本程序通过调用int specialkey(vo

8、id) 和#include 来实现对屏幕的操作,通过调用int arrow()函数,int specialkey(void) 和#include 来实现对光标的操作。计算器图形采用Turbo C 2.0绘图程序制作,大致运行画面如下。 光标起始位置在“A ”上,通过键盘来控制光标的运动,如进行双目运算1+2时,移动光标,将其指在“1”上,按“Enter ”,在屏幕上会输出“1”,再移动光标,将其指在“2”上,按“Enter ”,在屏幕上会在指定位置输出“2”,再移动光标,将其指在“=”上,按“Enter ”,结果便会在指定位置输出。 按下“CE ”可以清零,重新进行下一组运算。 按“Esc ”

9、可以退出系统。 运行画面 第5章总结 经过了三个星期的课程设计,在设计中我们遇到了很多编程问题,最后我努力攻克一个个难关,我做得是计算器的设计。 测试阶段中发现了几处错误导致程序不能编译,去上网查找相关的资料, 又同学一起讨论。通过耐心的分析源代码终于编好了一个完整无误的程序。在这次的c语言程序设计实习中遇到了现实编程中必然见到的问题通过这些问题的解决积累了编程的实践经验。在实际的编程操作中发现自己c语言知识的不足,加深了对c语言的理解。在学习之余体验到收获的感觉. 善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不

10、足,这样所编写的程序才能逐步提高.课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。 自从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相我们把前面所学过的知识

11、又重新温故了一遍。 通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。安排课程设计的基本目的,在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟。尤其是观察、分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。作为整个学习体系的有机组成部分,课程设计虽然安排在一周进行,但并不具有绝对独立的意义。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多

12、大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。而这种实际能力的培养单靠课堂教学是远远不 够的,必须从课堂走向实践。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。近年来,我系为适应学生的实践需要陆续增设与调整了一系列课程,受到同学的欢迎,其中这次的设计很受同学们的喜欢。课程设计达到了专业学习的预期目的。在一个星期的课程设计之后,我感到不仅实际动手能力有所提高,更重要的是通过对

13、C语言的了解,进一步激发了我对C语言的兴趣。 5.1致谢词 致谢词 感谢张老师三周来的辛勤指导,每当我们遇到难题时您都能随时帮我们很好的解决,并且告诉我们为什么这样改,指导得很详细,很认真。您使我们知道了C语言程序设计的趣味性。 5.2主要参考文献: C+语言程序设计与实践张思民 5.3中心算法; 设计一个类CCALDLG,类里包含主要数据成员number1和number2,主要成员函数cal,在该函数内利用case语句实现各种基本计算。利用MFC实现人机交互。增加了清零求导,开根号等功能。 5.4程序代码; / jsqDlg.cpp : 实现文件 #includestdafx.h #incl

14、udejsq.h #includejsqDlg.h #includecmath #ifdef _DEBUG #define new DEBUG_NEW #endif double a1; /保存计算中的第一个数 double a2; /保存计算中的第二个数 double a3; int m_sign; /用来表示运算符号,为“+”,为“-”,为“*”,为“/”int add=0; /用来判断是否已经存在别的数,若没有,则令add=0;若有,则令add=1 int point=0; /表示小数点,初始化无小数点为 int num=0; /表示小数点后的位数 double i=0; int m=0

15、; / 用于应用程序“关于”菜单项的CAboutDlg 对话框 class CAboutDlg : public CDialog public: CAboutDlg(); / 对话框数据 enum IDD = IDD_ABOUTBOX ; protected: virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持 / 实现 protected: DECLARE_MESSAGE_MAP() ; CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD) void CAboutDlg:DoDat

16、aExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() / CjsqDlg 对话框 CjsqDlg:CjsqDlg(CWnd* pParent /*=NULL*/) : CDialog(CjsqDlg:IDD, pParent) , m_edit(0) m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME); void CjsqDlg:DoDataExchange(CDataExchan

17、ge* pDX) CDialog:DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_edit); BEGIN_MESSAGE_MAP(CjsqDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() /AFX_MSG_MAP ON_BN_CLICKED(IDC_BUTTON10, &CjsqDlg:OnBnClickedButton10) ON_BN_CLICKED(IDC_BUTTON1, &CjsqDlg:OnBnClickedButton1) ON_BN_CLIC

18、KED(IDC_BUTTON2, &CjsqDlg:OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON3, &CjsqDlg:OnBnClickedButton3) ON_BN_CLICKED(IDC_BUTTON4, &CjsqDlg:OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON5, &CjsqDlg:OnBnClickedButton5) ON_BN_CLICKED(IDC_BUTTON6, &CjsqDlg:OnBnClickedButton6) ON_BN_CLICKED(IDC_BUTTON7, &Cj

19、sqDlg:OnBnClickedButton7) ON_BN_CLICKED(IDC_BUTTON8, &CjsqDlg:OnBnClickedButton8) ON_BN_CLICKED(IDC_BUTTON9, &CjsqDlg:OnBnClickedButton9) ON_BN_CLICKED(IDC_BUTTON11, &CjsqDlg:OnBnClickedButton11) ON_BN_CLICKED(IDC_BUTTON12, &CjsqDlg:OnBnClickedButton12) ON_BN_CLICKED(IDC_BUTTON13, &CjsqDlg:OnBnClick

20、edButton13) ON_BN_CLICKED(IDC_BUTTON14, &CjsqDlg:OnBnClickedButton14) ON_BN_CLICKED(IDC_BUTTON15, &CjsqDlg:OnBnClickedButton15) ON_BN_CLICKED(IDC_BUTTON16, &CjsqDlg:OnBnClickedButton16) ON_BN_CLICKED(IDC_BUTTON18, &CjsqDlg:OnBnClickedButton18) ON_BN_CLICKED(IDC_BUTTON17, &CjsqDlg:OnBnClickedButton17

21、) ON_BN_CLICKED(IDC_BUTTON19, &CjsqDlg:OnBnClickedButton19) ON_BN_CLICKED(IDC_BUTTON20, &CjsqDlg:OnBnClickedButton20) ON_BN_CLICKED(IDC_BUTTON22, &CjsqDlg:OnBnClickedButton22) ON_BN_CLICKED(IDC_BUTTON21, &CjsqDlg:OnBnClickedButton21) ON_BN_CLICKED(IDC_BUTTON26, &CjsqDlg:OnBnClickedButton26) ON_BN_CL

22、ICKED(IDC_BUTTON23, &CjsqDlg:OnBnClickedButton23) END_MESSAGE_MAP() / CjsqDlg 消息处理程序 BOOL CjsqDlg:OnInitDialog() CDialog:OnInitDialog(); / 将“关于.”菜单项添加到系统菜单中。 / IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF

23、_STRING, IDM_ABOUTBOX, strAboutMenu); / 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动/ 执行此操作 SetIcon(m_hIcon, TRUE); / 设置大图标 SetIcon(m_hIcon, FALSE); / 设置小图标 / TODO: 在此添加额外的初始化代码 return TRUE; / 除非将焦点设置到控件,否则返回TRUE void CjsqDlg:OnSysCommand(UINT nID, LPARAM lParam) if (nID & 0xFFF0) = IDM_ABOUTBOX) CAboutDlg dlgAbout; dlgAbout.DoModal();

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

当前位置:首页 > 应用文书 > 策划方案

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

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