数据结构课程设计

发布 2022-10-01 21:54:28 阅读 8914

课程设计任务书。

题目: 算术表达式求值

学号: 姓名。

专业: 课程:

指导教师。完成时间: 2011-12-20~2011-12-27

课程设计任务书及成绩评定。

1 设计目的 2

2设计任务 2

3设计内容 3

3.1 需求分析 3

3.1.1程序的功能 3

3.1.2基本要求: 3

3.1.3测试数据: 3

3.2总体设计 3

3.2.1程序用到的抽象数据类型 3

3.2.2主程序流程图: 4

3.2.3说明各模块之间的调用关系: 4

3.3详细设计 4

3.3.1程序中用到的抽象数据类型: 4

3.4测试与分析 6

3.4.1测试 6

3.4.2调试分析 8

4.附录 8

5 总结与展望 12

加强我们的实践能力,掌握数据结构的应用,算法的编写,类c语言的算法转换成c程序并上级调试的基本方法。对我们基本的程序设计素养的培养和软件工作者作风的训练,起到显著的促进作用。

设计一个程序,演示用算符优先法对算术表达式求值的过程。

1)完成运算符和运算数的识别处理。

2)在识别出运算数的同时,将字符序列形式转换成整数形式。

3)实现对算数四则混和运算表达式的求值。

1、在本次演示中,要输入以字符序列的形式,语法正确且不含变量的整数表达式然后咦“#”结束。

2、由于算符有优先关系,故用栈来实现。设置运算符栈接收运算符,优先权低的压入栈内,优先权高的进行运算,设置运算数栈,来接收运算数,并存储运行的结果。

3、在读入字符序列的同时,完成运算符合运算数(整数)的识别处理,以及相应的运算,在识别出是运算数的同时,将当前字符序列转换成整数形式。

本程序利用栈的概念,利用栈“先进后出”的原则,利用链表的存储结构,进而设计的。

1) 首先定义一个栈,将字符x入栈定义栈结点,之后x出栈,既得到栈顶元素初始化的一个栈;

2) 对输入的字符判断是否为运算符,并比较其优先级;

3) 在读入字符序列的同时,完成运算符合运算数(整数)的识别处理。

在读入字符序列的同时,完成运算符合运算数(整数)的识别处理在读入字符序列的同时,完成运算符合运算数(整数)的识别处理。

本算法一共进行了两次调用,第一次调用是char eval_exp()对void pushoptr(snode *top,char x)和char popoptr(snode *top)的调用,第二次是主函数对char eval_exp()的调用,完成了运算符的操作,完成字符串对整形的转换。

栈。#include

#include<>

#define null 0

typedef struct nodeelse

return f;

3.3.3画出函数的调用关系图。

各程序模块之间的层次(调用)关系:

算符间优先关系如下表:

给出测试数据,输出测试的结果,测试数据应该完整(覆盖算法各种情况)。

1) 测试8+2-3结果如图4-1所示:

图4-12)测试3*(7-2)结果如图4-2所示:

图4-23)测试8/(4-2)的结果如图4-3所示:

图4-3在设计程序的过程中,出现程序不能运行,发现不能找到表达式结束的标识符,因此,在设计的时候需要认为动态的添加结束标识符‘#’,是程序能够顺利的运行。

#include

#include<>

#define null 0

typedef struct node{

char date;

struct node *next;

snode;

snode *initstack(){

snode *top;//初始化2个top,后面用来保存我们的输入。

top=(snode *)malloc(sizeof(snode));

top->next=null;

return top;

void pushoptr(snode *top,char x){

snode *p;

p=(snode *)malloc(sizeof(snode));

p->date=x;

p->next=top->next;

top->next=p;

char popoptr(snode *top){

snode *p;

char x;

if(top==null)

return null;

p=top->next;

x=p->date;

top->next=p->next;

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...