版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计课程名称C+程序设计课程设计题目名称模拟计算器程序专业班级2016级软件工程3班学生姓名齐佳宁、江亮亮、余唐丽、郑小云学 号51602043027、51602043028、51602043008、51602043016指导教师华文立二一七年十二月二十五日蚌埠学院计算机工程学院本科课程设计成绩评定表项目权重分值具体要求得分文献阅读与调查论证0.20100能独立查阅文献和从事其它调研;有收集、加工各种信息的能力设计质量0.30100设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强的实际动手能力论文撰写质量0.20100设计说明书完全符合规范化要求,用A4复印纸打印成文学习态
2、度0.20100学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务学术水平与创新0.10100设计有创意,有一定的学术水平或实用价值总分评语:等级: 指导教师: 年 月 日蚌埠学院计算机工程学院课程设计任务书课 程C+程序设计课程设计班级2016级软件工程3班指导教师华文立题 目模拟计算器运行程序完成时间2017年12月20日至2017年1月15日主要内容要求完成以下功能:1 程序支持算数运算+、-、*、/、=,以及C(清楚)、A(全清楚)2 程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入“=”符号后,窗口显示出结果设
3、计报告要求1封面: 2课程设计任务书3课程设计报告: 系统总体方案 设计思路和主要步骤 各功能模块和流程图 设计代码 心得体会和参考资料说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(可以打印),文字不少于5000 字,并装订成册。版面要求1 题目用黑体三号,段后距18磅(或1行),居中对齐;2 标题用黑体四号,段前、段后距6磅(或0.3行);3 正文用小四号宋体,行距为1.25倍行距;4 标题按“一”、“”、“1”、“”顺序编号。上机时间安排2016级软件工程(3)班10-18周, 周三1-2节指导地点实验室(B523) 分工协作说明课题名称学生姓名学号所做的工作文
4、件加解密系统江亮亮51602043028项目框架总体设计、整体项目指导、综合设计文档编写齐佳宁51602043027需求分析、C+编码余唐丽51602043008后台代码测试、整理资料、打印郑小云51602043016部分代码编写、分模块测试摘 要计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用VC+的知识编写程序来解决此问题。该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用.本课程设计将实现一个简单计算器。其类似于Win
5、dows附件中自带的计算器。这个计算器不仅实现了简单的四则运算功能,还实现了高级的科学计算功能,而且具有简洁大方的图文外观。它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和较好的健壮性使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。在课程设计中,系统开发平台为Windows2000XP,程序设计设计语言采用VisualC+,在程序设计中,采用了结构化与面向对象两种解决问题的方法。关键词:程序设计,计算器,MFC,按钮控件SummaryCalculator is a very convenient a
6、nd effective tool in daily life, which can add, subtract, multiply, divide, root, and calculate the simple operation of the reciprocal.To implement the calculation function, you can use the knowledge ofVC + +to write a program to solve this problem.The calculator greatly reduces the difficulty of th
7、e numerical calculation and improves the accuracy and accuracy of the calculation.The calculator is very simple and easy to use, for the majority of primary and secondary school students to learn a great help, but also for the work of the staff a little Help.This course design will implement a simpl
8、e calculator.It is similar to a calculator that is included with theWindowsattachment.This calculator not only realizes the simple operations function, but also realizes the advanced scientific computation function, and has the concise and elegant picture and text appearance.It is designed according
9、 to the method of software engineering,the system has a good interface, necessary interaction information and good robustness of the user can quickly and easily operate.The real-time and accurate calculation results can reduce the difficulty of digital calculation and save time, which will help peop
10、les life.In the course design, the system development platform isWindows 2000XP, the programming language adoptsVisual C + +, and in the programming, it adopts structured and object-oriented two kinds of problem solving methods.Tags: programming, calculator,MFC, button controls目 录摘要 81.选题意义 1.1设计任务
11、12 1.2设计目标 12 1.3关于visual C+ 13 1.4可行性及需求分析 14二、系统功能与设计 2.1系统功能 15 2.2对话框界面设计 18 2.3数值计算设计 19三、主要成员函数关系图 四、源代码 20五、结语 30参考文献 31选题意义1.1设计任务此题选择意义在于引导学生学会设计简单的科学计算器,进一步掌握Visual C+应用程序。统地学习面向对象编程思想,了解 MFC架构,逐步熟悉可视化编程环境 Visual C+,并在此环境下设计并实现一个简单计算器系统。该计算器应能实现如下功能:1)、数的加、减、乘、除、乘方等简单计算2)、科学计算函数,包括正弦、余弦、正切
12、、余切、开方、对数、指数等函数运算3)、具备历史计算的记忆功能。1.2设计目标 (1) 了解Windows编程的基础知识,掌握MFC应用程序的基本知识。(2) 理解需求分析过程,掌握需求分析文档编写。(3) 理解面向对象程序设计的基本思路和方法。(4) 掌握用VC+开发MFC应用程序的一般步骤和方法。(5) 掌握基于对话框的应用程序的编写,主要包括文本框和按钮等。(6) 掌握后缀表达式算法。(7) 掌握VC+开发工具的使用。包括资源管理,项目创建,运行调试等。(8) 完成表达式的计算器应用程序,实现基本的加、减、乘、除等四则运算,且支持包括括号的表达式运算功能。1.3关于 visualc+Vi
13、sual C+6.0 是 Microsoft 公司在 1998年推出的基Windows 9X和 WindowsN T 的优秀集成开发环境。该环境为用户提供了良好的可视化编程环境, 程序员可以里利用该开发环境轻松地访问 C+源代码编辑器,资源编辑器和使用内部调试器,并且可以创建项目文件。 Visual C+6.0 不仅包括编译器,而且它还包括许多有用组件,通过这些组件的协同工作,可以在 Visual C+6.0 集成环境中轻松地完成创建源文件, 编辑资源,以及对程序的编译,连接和调试等各项工作。VC+6.0是 Windows 9598、XP或 Windows NT下的一个应用程序,本身对软硬件没
14、有特殊要求。就是说它对环境的要求与 Windows 9598、Windows NT要求是一致的。硬件要求:一般在 586以上的处理器、16MB以上内存、100MB以上的硬盘。软件要求:Windows 9598 或 Windows NT3.51 以上版本。VC+6 .0 系统可以在一张 CD盘上,也可以在“Visual Studio( Visual C+、Visual Foxpro) ”等产品的第一张 CD盘上。一般都有一个 VC的自动安装程序,也可以执行 VC6目录下的 setup.exe ,在安装包的提示下进行,对初学者可采用“典型安装”方式。在安装好 VC 6.0 系统后,有时根据需要添加
15、或删除某些部件,可插入 CD盘重新执setup.exe 安装程序,安装程序会检测当前系统安装 VC6的足件,用户单击“添加删除” 按钮后,在“安装维护”对话框中选定要添加的部件或取消选定要删除的部件。与一般的应用软件一样,有以下两种启动方式:(1)通过“开始”按钮,选择“程序”菜单,然后打开“ Microsoft Visual studio 6.0 中文版”子菜单中的“ Microsoft Visual C+ 6.0 中文版”程序。(2)用户也可以使用命令行启动 VC。单击“开始”按钮后选择“运行”命令,在“运行” 对话框中输入 c:Program FilesMicrosoft Visual
16、StudioVC98VC6.exe (按默认盘符和路径安装)即可。1.4可行性及需求分析本设计是简单计算器。日常计算机使用中,常常涉及到一些有计算的问题,一个小型的计算器软件变得非常有用, 该校型计算器需要空间资源较少, 对电脑其他程序的应用影响较小。它的设计按软件工程的方法进行 , 系统具有良好的界面、必要的交互信息和较好的健壮性;醒目美观的软件封面。使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间, 对人们的生活有一定的帮助。本软件主要用于计算机 windows 2000XP 以上版本的用户的使用,这次课程设计一般是实现简单计算器的功能。
17、要程序能实现:加,减,乘,除,开方,倒数等运算功能;还要实现数据的输入,输出,计算,显示及程序退出等功能。另外还可以实现多种科学计算的功能,如:三角函数的计算,弧度与角度间的转换,对数指数的计算等等。系统功能与设计2.1系统功能1)输入的符号,数字从右向左显示。 先输入“8”8 再输入“”8* 点击“=”输出结果,在输出行显示.2)支持加减乘除运算.输入行a.乘法计算:8*3 24输出行 b. 加法计算 1+0 1 c. 减法计算8-3 5 d.除法运算(特殊情况见10.B)9/4 2.253)支持求次方(x y)运算。求次方(x y)运算:“”为次方(x y)在输入行中的显示符号42 164
18、)“(”“)”的使用。(括号的使用)要使用“(”“)”的时候,先点击“(”,再输入数字或符号,内容输入完毕以后,点击“)”,完成“(”“)”的所有功能。例如:2(2+2)=?2 2*( 2*(2+2 2*(2+2) 2*(2+2) 85)支持混合运算。附:运算符的优先级表优先级功能键显示结合律从高到低( 、 ) ( 、 )自左向右xy、1/x、自左向右、*、/自左向右自左向右例如:(5+2)5=?混合运算则按优先级表中的运算符优先顺序从左向右计算(5+2)*5 356)功能键“CLEAR”及“BACKSPACE”的使用。 a“CLEAR”为清0键。只要按下“CLEAR”键,输入行所有字符清0,
19、输出行回到原始状态。输入前:(5+2)*5 输入后:0 b.“BACKSPACE”为退格键。当输入任何数字或运算符,只要按下“BACKSPACE”键,字符位自右向左消去一位。(注:初始的“0”不能被删除)输入前:(5+2)*5 输入后:(5+2)* C.“ANS”为变量储存器。当一次结果被清除后,只要按下“ANS”键就会显示这个结果。如: 5+2 7 按“CLEAR”键后,再按“ANS”键就会这样 77 77)计算器的输入方式:只支持鼠标点击计算器键输入;8)计算器计算结果的输出方式:在计算器窗口的输出行显示。9)算数运算的数据类型:整数和浮点数。a.输入行最大显示的字符数32位,每个运算符算
20、一位;b.“(”,“)”各占一个字符位;c.输出行最大显示的字符数为32位;d.纯小数显示的最大字符数为小数点后30位,整数及小数点各占一位;若纯小数为负数,则显示最大字符数为小数点后29位,“-”占一位;e.输入行在未输入任何数字的时候,显示“0”,只占一个字符位;当输入任何数字时。“0”消失,输入的的数字取代“0”;当输入任何运算符时。默认之前输入数字“0”;f.点击“=”键后方可显示数字或字母或汉字。10)特殊情况的运算A.运算结果整数部分超出32位,显示Infinity(无穷大);出现运算异常! 9999999999999999*99999999 InfinityB.除数为0的情况,提
21、示用户被除数不能为零!1/0 除零错误 C在运算时,若结果为纯小数,小数位超过30位,则超出的字符舍弃。2/30 .6666666666666666666666666若舍弃超出部位后,结果全为0,则结果为01/9999 0 D在运算时,若结果的整数位不为0a总位数在最大字符位内,则直接显示;b总位数在最大字符位以外,整数部分在最大字符位以内,则只优先显示整数部位,弃掉32位以后的字符5/3 1.6666E当用户输入“0”时,若“0”之前的算式或数字的值为0,点击“=”后,输出界面显示“底数不能为0”11) 以上所有的运算都是在10进制下进行2.2对话框界面设计2.3数值计算实现例如:2(2+2
22、)=?2 2*( 2*(2+2 2*(2+2) 2*(2+2) 8源代码源代码#include #include #include Stack.h#include using namespace std;bool jisuan(double a,double b,char c,double& d) switch (c) case +: d=a+b;/couta+bendl;return true; case -: d=a-b;/couta-bendl;return true; case *: d=a*b;/couta*bendl;return true; case /:if(b=0)throw
23、 CString(除零错误!);/couta/bendl; d=a/b;return true;case ,: /couta,b0)/将符号压栈op.Add(char)num);elsechar mid;while(arraynum-40pre-400)int MyCheck=(int)name.at(i-1);if(MyCheck=48|MyCheck=41)break;else throw CString(括号中的表达式不合法);elsethrow CString(出现未匹配的);tryop.Delete(mid);catch(CString e)throw CString(出现未匹配的)
24、;double data1,data2; trydata.Delete(data2); data.Delete(data1);catch(CString e)throw CString(缺少操作数); if(!jisuan(data1,data2,mid,data1) result=0; throw CString(表达式异常); data.Add(data1);pre=(int)op.Top();/ CompuetrDlg.cpp : 实现文件/#include stdafx.h#include Compuetr.h#include CompuetrDlg.h#include counter
25、.h#include #include .compuetrdlg.husing namespace std;#ifdef _DEBUG#define new DEBUG_NEW#endifvoid CCompuetrDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc(), 0);/ 使图标在工作矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon
26、= GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ 绘制图标dc.DrawIcon(x, y, m_hIcon);else CRect rect; CPaintDC dc(this); GetClientRect(rect); dc.FillSolidRect(rect,RGB(255,0,0);/设置背景颜色 CDialog:OnPaint();CDialo
27、g:OnPaint();/ Compuetr.cpp : 定义应用程序的类行为。/#include stdafx.h#include Compuetr.h#include CompuetrDlg.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ CCompuetrAppBEGIN_MESSAGE_MAP(CCompuetrApp, CWinApp)ON_COMMAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP()/ CCompuetrApp 构造CCompuetrApp:CCompuetrApp()/ TODO: 在此处
28、添加构造代码,/ 将所有重要的初始化放置在 InitInstance 中/ 唯一的一个 CCompuetrApp 对象CCompuetrApp theApp;/ CCompuetrApp 初始化BOOL CCompuetrApp:InitInstance()/ 如果一个运行在 Windows XP 上的应用程序清单指定要/ 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,/则需要 InitCommonControls()。否则,将无法创建窗口。InitCommonControls();CWinApp:InitInstance();/ 标准初始化/ 如果未使用这些功能并希望
29、减小/ 最终可执行文件的大小,则应移除下列/ 不需要的特定初始化例程/ 更改用于存储设置的注册表项/ TODO: 应适当修改该字符串,/ 例如修改为公司或组织名SetRegistryKey(_T(应用程序向导生成的本地应用程序);CCompuetrDlg dlg;m_pMainWnd = &dlg;INT_PTR nResponse = dlg.DoModal();if (nResponse = IDOK)/ TODO: 在此放置处理何时用“确定”来关闭/对话框的代码else if (nResponse = IDCANCEL)/ TODO: 在此放置处理何时用“取消”来关闭/对话框的代码 /
30、由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,/ 而不是启动应用程序的消息泵。return FALSE;/stack#include#include#includeusing namespace std;template class LinkedStack;template class Node friend LinkedStack;private:T data;Node *link;template class LinkedStackpublic:LinkedStack()top=0;length=0;LinkedStack();bool isEmpty()constreturn top=0;bool isFull()const;T Top() const; LinkedStack&Add(const T& x); LinkedStack&Delete(T& x);int getLength()return length; private:Node *top;int length;template LinkedStack:LinkedStack()Node *next;while(top)next=top-link;delete top;top=next;template
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度工程安装居间合同2篇
- 项目经理合作协议书 2篇
- 售房补充协议 3篇
- 化妆品销售合同简单范本
- 高二期中家长会课件
- 饮品购销合同书范本
- 2024年度高速公路沥青混凝土搅拌站租赁合同2篇
- 基于AR技术的虚拟展览服务合同(2024版)
- 股权转让协议书范本合同范本标准版
- 《技术员岗位职责》课件
- 2024新版《药品管理法》培训课件
- 高空作业时的安全注意事项
- 智研咨询发布:中国铜铝复合板带行业竞争格局及发展前景研究报告
- 初三毕业班课件2024-2025学年期中家长会
- 深圳2020-2024年中考英语真题复习专题01 语法填空(解析版)
- 更换阀门施工方案
- 企业财务会计电子教案 10存货核算4
- 定期体检 预防常见病 课件 2024-2025学年人教版(2024)初中体育与健康七年级全一册
- 现代服务业课件
- 2024年国家公务员考试《行测》真题卷(行政执法)答案和解析
- 生活饮用水、公共场所卫生管理系列国家强制性标准解读答案-2024年全国疾控系统“大学习”活动
评论
0/150
提交评论