毕业设计数据结构a十进制整数四则运算计算器Word文件下载.docx

上传人:b****4 文档编号:14371222 上传时间:2022-10-22 格式:DOCX 页数:41 大小:182.32KB
下载 相关 举报
毕业设计数据结构a十进制整数四则运算计算器Word文件下载.docx_第1页
第1页 / 共41页
毕业设计数据结构a十进制整数四则运算计算器Word文件下载.docx_第2页
第2页 / 共41页
毕业设计数据结构a十进制整数四则运算计算器Word文件下载.docx_第3页
第3页 / 共41页
毕业设计数据结构a十进制整数四则运算计算器Word文件下载.docx_第4页
第4页 / 共41页
毕业设计数据结构a十进制整数四则运算计算器Word文件下载.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

毕业设计数据结构a十进制整数四则运算计算器Word文件下载.docx

《毕业设计数据结构a十进制整数四则运算计算器Word文件下载.docx》由会员分享,可在线阅读,更多相关《毕业设计数据结构a十进制整数四则运算计算器Word文件下载.docx(41页珍藏版)》请在冰豆网上搜索。

毕业设计数据结构a十进制整数四则运算计算器Word文件下载.docx

1.2课题原理1

1.3相关知识4

2需求分析4

2.1课题调研5

2.2用户需求分析5

3方案设计5

3.1总体功能设计5

3.2数据结构设计5

3.3函数原型设计5

3.4主算法设计5

3.5用户界面设计5

4方案实现6

4.1开发环境与工具6

4.2程序设计关键技术6

4.3个人设计实现(按组员分工)

4.3.1余灏然设计实现6

4.3.2魏嘉设计实现9

4.3.3张越设计实现11

5测试与调试13

5.1个人测试(按组员分工)13

5.1.1余灏然测试13

5.1.2魏嘉测试16

5.1.3张越测试20

5.2组装与系统测试25

5.3系统运行25

6课题总结26

6.1课题评价26

6.2团队协作26

6.3个人设计小结(按组员分工)26

6.3.1余灏然设计小结26

6.3.2魏嘉设计小结27

6.3.3张越设计小结27

7附录A课题任务分工28

A-1课题程序设计分工28

A-2课题报告分工29

附录C用户操作手册(可选)30

C.1运行环境说明30

C.2操作说明30

1课题背景

1.1课题任务

【问题描述】

【设计要求】

1.2课题原理

用二叉链表处理表达式字符串,用栈处理括号在表达式计算时的优先级问题,并且使用MFC编程语言实现可视化。

1.2.1二叉链表

1.2.2栈处理符号表达式

1.2.3MFC编程语言实现可视化

用MFC语言中对按钮Button功能的添加,将外界输入的由数字0~9,符号“+”、“-”、“*”、“/”、“(”、“)”构成的表达式传入编辑框中的变量CString中。

与此同时,可以使用退格键“←”执行退格功能和清屏键执行清屏功能。

并且使用“=”按钮时,对输入的表达式进行计算。

最终,由编辑框输出计算结果。

流程图如下

流程图1

流程图2

1.3相关知识

生成二叉链表,树的后序遍历,MFC编程语言实现可视化

2需求分析

2.1课题调研

整数十进制四则运算计算器,用户输入算式程序程序运行并输出运算结果。

2.2用户需求分析

(1)用户可以通过MFC按钮输入多项式;

(2)可输入带括号的运算;

(3)该程序应该有对用户错误输入的辨别纠错功能;

(4)程序应具有演示功能和调试功能。

(5)程序应具有良好的人机接口。

(6)程序应能友好的展现结果。

3方案设计

3.1总体功能设计

十进制整数四则运算

3.2数据结构设计

栈结构,用来储存多项式及生成树;

树结构,用来后序遍历以求多项式的值。

3.3函数原型设计

函数原型

参数说明

功能描述

voidturn(Stack&

T,chard[max])

voidchange(StackT,Stack&

S)

栈T,字符数组d

[]

栈T,栈S

将输入的多项式压栈并转化为前缀表达式

intCreatTree(Tree&

T,Stack&

S)

VoidPostOrder(TreeT,Stack&

树T,栈S

建立二叉链表并且后序遍历求值

3.4主算法设计

将输入的表达式压栈,并将其转换为前缀表达式;

由前缀表达式生成二叉链表;

后序遍历二叉树求值。

3.5用户界面设计

使用MFC编程语言设计界面如下:

4方案实现

4.1开发环境与工具

主要编程环境:

BlendforVisualStudio2013

编程工具:

C++。

4.2程序设计关键技术

4.3.1余灏然设计实现

数据结构定义和描述:

反转表达式及转换前缀表达式:

#include"

head.h"

fuhao.cpp"

iostream"

usingnamespacestd;

T,chard[max]);

S);

T,chard[max])//字符串输入表达式且压栈

{

inth,r=0;

//h用于重置数字,r用于计位置

datab;

while

(1)

{

if(d[r]=='

\0'

)break;

if(In(d[r]))

{

b.k=2;

b.s=d[r++];

Push(T,b);

}

else

h=0;

while(d[r]!

='

{

if(d[r]=='

+'

||d[r]=='

-'

*'

/'

('

)'

h*=10;

switch(d[r])

{

case'

1'

:

h+=1;

break;

2'

h+=2;

case'

3'

h+=3;

4'

h+=4;

5'

h+=5;

6'

h+=6;

7'

h+=7;

8'

h+=8;

9'

h+=9;

0'

h+=0;

default:

cout<

<

"

表达式有误!

;

exit(0);

}

r++;

b.k=1;

b.i=h;

}

}

}

S)//转前置表达式

StackP;

InitStack(P);

dataa,b,c;

a.k=2;

a.s='

Push(P,a);

Pop(T,b);

if(b.k==2&

&

b.s=='

if(b.k==1){Push(S,b);

continue;

if(b.k==2)

if(b.s=='

){Push(P,b);

if(b.s!

b.s!

while

(1)

GetTop(P,c);

if(Compare(b.s,c.s)=='

>

'

||Compare(b.s,c.s)=='

){Push(P,b);

else{Pop(P,c);

Push(S,c);

}

Pop(P,c);

if(c.k==2&

c.s=='

Push(S,c);

GetTop(P,c);

if(c.k==2&

Pop(P,c);

Push(S,c);

4.3.2魏嘉设计实现

符号相关操作:

charCompare(chara,charb);

intIn(charc);

intOperate(intb,charx,inta);

/*判断运算的优先顺序*/

charCompare(chara,charb)

charc;

switch(a)

case'

if(b=='

||b=='

c='

elsec='

break;

)c='

break;

c='

c='

returnc;

intIn(charc){

if(c=='

||c=='

||c=='

||c=='

return1;

elsereturn0;

intOperate(intb,charx,inta)

intz;

switch(x){

z=a+b;

z=a-b;

z=a*b;

z=a/b;

returnz;

typedefstructNode{

datap;

structNode*lchi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1