面向对象课程设计报告格式.doc

面向对象课程设计报告格式.doc

ID:49702248

大小:167.37 KB

页数:11页

时间:2020-03-02

面向对象课程设计报告格式.doc_第1页
面向对象课程设计报告格式.doc_第2页
面向对象课程设计报告格式.doc_第3页
面向对象课程设计报告格式.doc_第4页
面向对象课程设计报告格式.doc_第5页
资源描述:

《面向对象课程设计报告格式.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、题目:计算器学号:1004681035姓名:李博洋班级:计科1011、需求分析:题目:设计一个简单的计算器要求:在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。分析:输入或从文件中读入需要计算的式子,然后计算出正确的结果,将结果输出。解析:得到一个需要计算的式子,很显然这个式子中包含着数字以及各种运算符和括号,这个式子是一个字符串,因而要用到string。在数据结构中,一个算术表达式就是一个按中序遍历的二叉树,如果要计算,很显然要将该式子按后续遍历(逆波兰式),得到按优先级排列的便于计算的式子,中间过程需要用到栈(sta

2、ck),计算过程也要用到栈,因而创建了一个链栈的模板,在需要的时候,按需要的类型实例化就可以了。操作流程:菜单界面--->选择输入的方式---->按不同的输入方式读取信息---->将计算式子按逆波兰式转化---->计算---->输出结果2、概要设计templateclassNode{public:Node(){this->next=NULL;}Node(Tdata,Node*next=NULL){this->data=data;this->next=next;}Tdata;Node*next;}明确设计为链表类型的存储结

3、构,因而节点(Node)就必须包含一个需要存储类型数据成员,还应有一个指向下一个节点的指针,用构造函数初始化个数据成员。将数据成员定义为public是为了下面的访问方便。templateclassLinkedStack{public:LinkedStack();~LinkedStack();boolisEmpty();voidpush(Tx);Tpop();TgetTop();private:Node*top;};根据需要,要用到多种类型的栈(stack),而栈的功能都大体相同,所以将类设计为模板类(template),这样在

4、需要用的时候实例化就可以用了。创建链栈,就要用到上面的节点(Node).栈的主要功能有初始化(LinkedStack()),入栈(voidpush(Tx)),出栈(Tpop()),得到栈顶元素(TgetTop()),还有可能判断栈是否为空栈(boolisEmpty()),然后分别将各个部分实现。3、程序编码。菜单界面程序的流程图如下:从文件读入从键盘输入打开文件输入所要计算的表达式计算过程成功继续逐行读取文件内容失败输出结果,然后问是否继续将结果输出到指定文件计算过程结束,退出部分重点代码注释详见程序清单。4、调试分析分模块(类)进行,设计好测试数

5、据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些问题如何解决),算法的改进设想。菜单界面。选择读取方式...从键盘读入表达式,并计算得出结果。继续从键盘读入选择从文件读入,并且文件打开成功输入文件中的算术表达式输出文件中的结果调试时存在的问题:刚开始时,链表的链接存在问题,老是出现内存访问错误,最后通过调试发现,原来多写了一个next。然后就是在写tochange()函数时,switch语句中的条件考虑的不够全面。再就是string类型的表达式不能够作为switch的条件。最后就是定义了一个stringa,不能够

6、通过a[i]="2as"这种方式给string类型的数据赋值算法的改进设想:在分配expression的时候,都是按的比较大的值分配的,有很多空间都没有用到,造成了很多内存的浪费。改进:运用链表,动态的分配,按需分配程序清单:#include#include#include#includeusingnamespacestd;template//链表节点类classNode{public:Node()//defaultconstructor{this->next=

7、NULL;}Node(Tdata,Node*next=NULL){this->data=data;this->next=next;}//声明为public类型是便于top的访问Tdata;Node*next;//next指向的对象是Node,};templateclassLinkedStack{public:LinkedStack();//defaultconstructor~LinkedStack();//defaultdestructorboolisEmpty();voidpush(Tx);Tpop();Tge

8、tTop();private:Node*top;};templateLinkedStack::

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。