华东交大 数据结构课设 表达式求值

上传人:第*** 文档编号:55654555 上传时间:2018-10-03 格式:PDF 页数:28 大小:447.18KB
返回 下载 相关 举报
华东交大  数据结构课设 表达式求值_第1页
第1页 / 共28页
华东交大  数据结构课设 表达式求值_第2页
第2页 / 共28页
华东交大  数据结构课设 表达式求值_第3页
第3页 / 共28页
华东交大  数据结构课设 表达式求值_第4页
第4页 / 共28页
华东交大  数据结构课设 表达式求值_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《华东交大 数据结构课设 表达式求值》由会员分享,可在线阅读,更多相关《华东交大 数据结构课设 表达式求值(28页珍藏版)》请在金锄头文库上搜索。

1、课程设计(论文)任务书学院专业班一、课程设计(论文)题目 二、课程设计(论文)工作自年月日起至年月日止。 三、课程设计(论文) 地点: 四、课程设计(论文)内容要求: 1课程设计的目的课程设计的目的为了配合数据结构课程的教学,使学生能更深刻的领会数据结构课程的重要性,特开设此课程设计;编写一些在特定数据结构上的算法,通过上机调试,更好的掌握各种数据结构及其特点,培养学生综合运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队合作能力。2课程设计的任务及要求课程设计的任务及要求1)基本要求)基本要求(1)课程设计前必须选定课程设计题目,并认真进行需求分析与系统设计;(2)上机调试之前

2、要认真准备实验程序及调试时所需的测试数据;(3)独立思考,独立完成,严禁抄袭,调试过程要规范,认真记录调试结果;(4)上机结束后认真规范撰写课设报告,对设计进行总结和讨论。2)课程设计论文编写要求)课程设计论文编写要求(1)要按照书稿的规格撰写打印课设论文(2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等(3)正文中要有问题描述、抽象数据类型的定义、数据的存储结构、设计的求解算法、算法的实现、调试分析与测试结果(4)课设论文装订按学校的统一要求完成3)课设考核)课设考核从以下几方面来考查:(1)考勤和态度;(2)任务的难易程度及设计思路;(3)动手调试能力;(4)论文撰写的水平、格

3、式的规范性。4)参考文献)参考文献1 严蔚敏, 吴伟民. 数据结构(C 语言版)M. 北京:清华大学出版社, 2007 年.2 严蔚敏, 吴伟民. 数据结构题集(C 语言版)M. 北京:清华大学出版社, 2007 年.3 谭浩强. C 语言程序设计M. 北京:清华大学出版社,2006 年.5)课程设计进度安排)课程设计进度安排内容内容天数天数地点地点构思及收集资料1图书馆程序设计与调试3计算机房撰写论文1图书馆6)任务及具体要求)任务及具体要求表达式求值,可供小学生作业,并能给出分数任务要求:1) 建立试题库文件,随机产生 n 个题目;2)随时可以退出;3) 题目涉及加减乘除,带括号的混合运算

4、;4) 保留历史分数,能回顾历史,给出与历史分数比较后的评价。学生签名: _ 年月日课程设计课程设计( (论文论文) )评审意见评审意见(1)考勤和态度:优()、良()、中()、一般()、差()(2)任务难易及设计思路:优()、良()、中()、一般()、差()(3)动手调试能力评价:优()、良()、中()、一般()、差()(4)论文撰写水平及规范性评价:优()、良()、中()、一般()、差 ()评阅人:职称:讲师 年月日王志超王志超键入文字目录目录.11绪论 11.1 需求分析1 1.1.1 市场需求.1 1.1.2 软件功能需求.1 1.2 实验意义.22程序框架设计22.1 概要设计23.

5、元素存储结构.64.详细设计. 74.1 程序算法7 4.2 函数说明75 功能测试. 95 总结.12参考文献 13附录.14华东交通大学课程设计11绪绪论论1.1 需求分析需求分析1.1.1 市场需求市场需求为了适应市场小学生的题目需求以及节约纸张, 顾开发此程序以来到达 即可以节约纸张又可以通过做题来提高小学生的运算能力。而且,题目库 可以自己定制,适合于各给不同能力段的小学生,达到普及以及减轻社会 纸张压力。同时,培养小学生养成良好使用电脑的习惯。1.1.2 软件功能需求软件功能需求该题目的核心是利用栈这种数据结构来实现一个加减乘除以及带括弧 的混合数学表达式的计算。其次是利用文件来保

6、存和读写试题库、每次做 题的成绩和以往成绩的平均值。 对于数学表达式的计算,可以设置一个运算符栈和一个数字栈,分别来 保存运算符、数字或者中间计算得到的结果。将整个表达式看做一个字符 串,从开头依次判断每个字符是运算符还是数字,若是运算符,则根据运 算符优先级来确定是将其压栈还是弹栈进行计算;若是数字,则先将其转 化并计入一个临时 int 型变量中,看下一个字符是否为运算符栈,若是,则 将临时变量压进数字栈,否则读取下一个数字字符并进行相关处理后累加 到临时变量中,直到下一个字符为运算符,将临时变量压进数字栈。最后, 当字符为“=“时,结束计算,得到计算结果。 对于试题库, 第一次运行程序时需

7、要用户输入若干试题来建立试题库文 件,再次运行时磁盘上已经存在试题库文件,故不需再次建立试题库,直 接读取文件即可。然后从试题库中通过随机数函数随机抽取若干个试题供 用户来做测试。 测试过程中可即时跟踪判断用户所给答案是否正确,并给出相关提示。 测试完毕后给出本次测试得分,对得分进行评价并将得分存到磁盘文件上。 用户可随时查看成绩的历史记录以及其平均成绩,可随时选择退出程 序。华东交通大学课程设计21.2 实验意义 通过对软件的编写来了解银行业务办理过程。增加动手实践能力。提高 对程序的编写,调试和开发能力。通过对论文的撰写来提高论文撰写能力。 明确系统的需求,明确软件开发的最终目的,使开发出

8、来的软件更能符合 客户的需求。2程序框架设计程序框架设计本程序主要用到的结构为栈。2.1 概要设计概要设计1)为了能够实现上述软件需求功能,先定义栈的抽象数据类型 ADT Queue= 数据对象:D=ai|ai=ElemType,i=0,1,2,n,n=0 数据关系:R=|ai,ai+1=D 基本操作: InitStack( 数字栈类型 typedef struct int *base,*top; int size; Num; /数字栈图-3-1: 数字栈结构体如图 Shiti 试题数据类型 typedef struct char a100; int result; Shiti;/试题数据类型

9、图 3-2:Shiti 试题数据类型 如图是运算符栈类型 typedef struct char *base,*top; int size; Oper;/运算符栈int *base,*top int sizechar a100;int resulNumShiti华东交通大学课程设计7图 3-3: 运算符栈类型4.详细设计详细设计4.1 程序算法程序算法本次的课程数据我是用栈来实现表达式求解,利用栈求表达式的值,可 供小学生作业,并能给出分数。 要求:建立试题库文件,随机产生 n 个题目;题目涉及加减乘除,带括弧 的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分 数比较后的评价。

10、我利用文件来保存和读写试题库,且要运用磁盘文件。 数学表达式的计算,我设置了一个运算符栈与一个数字栈,分别来保存 运算符、数字或者中间计算得到的结果。将表达式看成一个字符串,从而 分种计算。 通过输入的表达式来建立试题库。 对从键盘输入的的表达式通过算符栈和数字栈进行压栈和出栈。 .通过菜单按钮进行选择,做题,查看历史分数,退出。4.2 函数说明函数说明4.2.1main()在主函数中调用子函数进行初始化,调用函数执行程序模拟,控制 程序的进行。4.2.2int Buildshitiku()建立试题库,通过 txt 文件进行保存。char *base,*top;int size;Oper华东交

11、通大学课程设计84.2.3int NumInitStack(Num *S1)构造数字栈,申请空间,初始化数字栈。4.2.4int OperInitStack(Oper *S2)构造算符栈,申请空间,初始化算符栈。4.2.5int NumGetTop(Num *S1)得到数字栈的栈顶元素,以来入栈。4.2.6 char OperGetTop(Oper *S2)得到运算符栈顶元素,以便入栈。4.2.7void NumPush(Num *S1,int e1)数字栈压栈,也就是所谓的入栈。4.2.8void OperPush(Oper *S2,char e2)函运算符栈压栈,入栈。4.2.9int N

12、umPop(Num *S1)数字栈出栈。4.2.10char OperPop(Oper *S2)运算符出栈,返回一个字符。4.2.11char Precede(char a,char b)将判断运算符的优先级,以来计算表达式。4.2.12int Operate(int a,char theta,int b)计算表达式的值,通过表达式运算规则从左到右,先乘除后加减, 先括号内在括号外的顺序去计算。4.2.13void Xuanti(int n,int a)在已建好的试题库中,通过随机抽取 n 个题目,保存在数组中。4.2.14 void Zuoti(Shiti a首做题,通过输入的题数,在试题库

13、中随机抽取题目,输入答案, 通过表达式求解出答案。华东交通大学课程设计94.2.15void History()将以往的做题成绩保留在内存中,通过调用函数给出成绩。4.2.16) int menu()菜单函数。4.2.17int IsOper(char ch)判断字符 ch 是否为运算符4.2.18void Avescore()求出平均成绩,在给出的分数以及题数给出平均成绩。5 功能测试功能测试(1) 首次运行程序时如图5-1。图 5-1:程序初运行图 (2) 依次输入所要建立的试题数目 n 和 n 个表达式,现以输入十个为例,实 际可多输入一些,如图 5-2.华东交通大学课程设计10图 5-

14、2:建立试题库 (3)任意键,跳出菜单页面,如图 5-3图 5-3:菜单图(4) 选择 1,进行做题。如图 5-4.华东交通大学课程设计11图 5-4:做题(5) 选择 2,回顾历史分数。如图 5-5图 5-5:历史回顾华东交通大学课程设计12(8)选择 3,退出系统,如图 5-6。图 5-6:退出5 总结总结对本次课程设计是制作一个试题库供小学生选题, 我是通过栈来实现表 达式求值的,起初对于表达式求值,我不知如何求值。而后参考网上的我 设置了运算符栈与数字栈来分别保存运算符和数字以及中间计算得到的结 果。通过这次课设,体会到每一个简单程序编写的困难以及自身的不足, 对编程的不熟练,以及编写

15、程序时产生的许多不必要的错误。在创建磁盘 文件时也有很多问题,磁盘的导入导出没实现。所以将会加强自身的素质。 数据结构这门课感觉比较难,许多的功能都遍写不出来,我将会努力调试 代码。华东交通大学课程设计13参考文献参考文献1 严蔚敏, 吴伟民. 数据结构(C 语言版)M. 北京: 清华大学出版社, 2007.2 刘汝佳.算法竞赛入门经典M.北京:清华大学出版社,2009.11.3 (美)普拉达(Prata,S.)著,云颠工作室译.C Primer Plus(第5版)中文版M.北京:人民邮电出版社,2005.2(2008.8 重印).4 谭浩强. C 语言程序设计M. 北京:清华大学出版社,20

16、06 年.5 严蔚敏, 吴伟民. 数据结构题集(C 语言版)M. 北京:清华大学出版社, 2007年.6 谢昕 等编著,C 程序设计(第二版),北京: 北京邮电大学出版社,2007.华东交通大学课程设计14附附录录#include #include #include /对时间和日期操作 int N;/定义全局变量 N,表示试题库试题数量 typedef struct char a100; int result; Shiti;/试题数据类型 typedef struct int *base,*top; int size; Num; /数字栈 typedef struct char *base,*top; int size; Oper;/运算符栈int NumInitStack(Num *S1)/构造数字栈 S1-base=(int *)malloc(100*size

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号