【数据结构】【A】十进制整数四则运算计算器

  • 格式:doc
  • 大小:431.00 KB
  • 文档页数:34

下载文档原格式

  / 34
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东北大学信息科学与工程学院

数据结构课程设计报告题目十进制整数四则运算计算器课题组长余灏然

课题组成员魏嘉张越

专业名称计算机科学与技术

班级计算机1307

指导教师杨雷

2015 年1月

课程设计任务书

题目:

十进制整数四则运算计算器

问题描述:

由输入的四则运算表达式字符串,动态生成算术表达式所对应的二叉树,通过表达式二叉树自动求值并输出。

设计要求:

设计十进制整数四则运算计算器。

(1)采用二叉树、栈等数据结构。

(2)给定表达式字符串,生成二叉链表的表达式二叉树。

(3)对表达式二叉树采用后序遍历求值并输出。

(4)可以考虑加入复数四则运算功能。

(5)其它完善性功能。

指导教师签字:

2014年12月28日

目录

1 课题概述 (1)

1.1 课题任务 (1)

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)给定表达式字符串,生成二叉链表的表达式二叉树。

(3)对表达式二叉树采用后序遍历求值并输出。

(4)可以考虑加入复数四则运算功能。

(5)其它完善性功能。

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 函数原型设计

函数原型参数说明功能描述

void turn(Stack &T,char d[max])

void change(Stack

T,Stack &S)栈T,字符数组d

[]

栈T,栈S

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

表达式

int CreatTree(Tree

&T,Stack &S)

Void PostOrder(Tree

T,Stack &S)

树T,栈S 建立二叉链表并且后序遍历求值

3.4主算法设计

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

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

⑶后序遍历二叉树求值。

3.5 用户界面设计

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