C程序设计报告-副本.doc_第1页
C程序设计报告-副本.doc_第2页
C程序设计报告-副本.doc_第3页
C程序设计报告-副本.doc_第4页
C程序设计报告-副本.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

C+程序设计课程设计报告 题目:模拟计算器专 业: 学 号: 设 计 者: 时 间: 一,系统设计目标及意义,功能。 本题目要求实现一个简单的复数计算器,能够进行加、减、乘和除运算。使用时算式采用后缀输入法,每个操作数、操作符之间都以空白符分隔。例如,若要计算”(1+2i)+(3+4i)”则输入”(1+2i) (3+4i) +”。每次运算在前次结果基础上进行,若要将前次运算结果清除,可键入“c”。当键入“q”时程序结束。系统具体实现的功能如下:1) 设计一个操作数栈;2) 设计一个复数类,并实现对该类的加、减、乘、除、赋值及输入输出的”,”运算符的重载;3) 设计一个计算器类,实现表达式的运算。4) 系统界面采用文本菜单方式,交互性好。二,系统详细设计。系统使用类来组织管理计算器里的数据,整个程序包括三个类,分别是操作数栈类Stack,计算器类Calculator,复数类complex。操作数类Stack用来存放栈的元素,也就是计算器所接受的数据,实现操作数的保存和弹出,清空计算器内的数据等。计算器类Calculator用来执行数据的加减乘除和运算符的选择,它包含有操作数栈类Stack的文件用来实现数据的输入输出和数据保存,结果的输出操作等功能。复数类complex用来实现运算符+,-,*,/,的重载和这些运算符函数的实现。上述类关系的UML图如下: (1)操作数栈类Stack的UML图如图2: Stack- stacklistMaStackSize:T- top:int+ Stack(void):+ Push(const T& item):void+ Pop(void):T+ ClearStack(void):void+ Peek(void)const:T+ StackEmpty(void)const:int+ StackFull(void)const:int+ ClearStack(void):void 图2 Stack类UML(2)计算器类Calculator的UML图,如图3 Calculator- S:Stack- Enter(complex num):void- GetTwoOperands(complex & opnd1, complex & opnd2):Boolean- Compute(char op):void+ Calculator(void)+ Run(void):void+ Clear(void):void 图3 Calculator类UML图(3)复数类complex的UML图,图4 complex- real:double- imag:double+ complex(double r=0.0,double i=0.0)+ operator +(complex c2):complex+ operator -(complex c2):complex+ display():void+ Gong_e(complex &c):complex+ Gong_e():complex+ length(complex &c):double+ dlength(complex &c):double+ dlength():double+ operator*(complex c2):complex+ operator/(complex c2):complex+ operator=(complex c2):complex+operator(istream &intput,complex &):istream& 图4 complex类的UML图(1) 操作数栈类Stack:类属性包括存放栈的元素数组(stacklistMsxStackSize);数组下标(top);成员函数包括构造函数(Stack), 将元素item压入栈的函数(Push), 将栈顶元素弹出栈(Pop), 将栈清空(ClearStack), 访问栈顶元素(Peek) 测试是否栈满(StackFull), 测试是否栈空(StackEmpty)(2).计算器类Calculator: 类属性包括操作数栈(StackS), 将操作数num压入栈函数(Enter), 连续将两个操作数弹出栈函数(GetTwoOperands), 执行由操作符op指定的运算(Compute);成员函数包括构造函数(Calculator),运行计算器程序(Run), 清空操作数栈(Clear)。(3).复数类complex: 类属性包括:复数实部(real),复数虚部(imag);成员函数包括:构造函数(complex), 运算符+重载成员函数(operator+),运算符-重载成员函数(operator -),输出复数(display),带参数复数的共轭(Gong_e),不带参数的复数共轭(Gong_e),复数的模的平方(length),带参数的(dlength),不带参数的(dlength), 运算符*重载成员函数(operator *),运算符/重载成员函数(operator /),运算符=重载成员函数(operator =),友元函数重载流插入运算(operator流插入运算(operator),三系统主要功能模块流程图(1)主函数main的流程图(图6) 图 6(2)将操作数和运算符压人栈Calculator:Enter:图7图7(3)将两个操作数弹出栈流程图Calculator:GetTwoOperands(图8)图8 (4)执行运算符指定运算Calculator:Compute (图9)图 9(5)运行计算器程序流程图Calculator:Run 图10图10四课程设计心得体会:通过这次课程设计使我更加深入了解了编程这东西。更加深入了解了编程不是那么容易的是,它需要你下苦工,要静下心来慢慢对待编程过程中遇到的问题和疑惑。在遇到不懂的地方要懂得查找资料或者和同学互相探讨,互相请教。还要通过这次课程设计我们更加懂的的同学之间的团结协作的很重要的,我们要学会与同学沟通,要敢于发表自己的个人看法,在做程序的过程中我们多配合多看代码。在这次程序设计中我们更加深入了解了类作用,更进一步融会贯通的使用类来解决问题。我们也接触了堆栈,原来它在程序设计中有那么大的作用的。在这次程序设计中我们也用到 了模

温馨提示

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

评论

0/150

提交评论