ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:90.06KB ,
资源ID:11713953      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11713953.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计修改.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计修改.docx

1、数据结构课程设计修改滁州学院课程设计报告课程名称: 数据结构课程设计 设计题目: 栈的应用 系 别: 计算机信息与工程学院 专 业: 计算机科学与技术 组 别: 第一组 起止日期: 2012年5月16日 年2012 6月 18 日 指导教师: 杨传健 计算机与信息工程学院二一二年制课程设计题目栈的应用组长学号班级1班系别计算机信息与工程学院专业计算机科学与技术组员指导教师杨传健课程设计目的1、学习栈的一些应用的设计方法。2、培养勤奋认真、分析故障和解决问题的能力。课程设计所需环境Window xp;multisim 10;课程设计任务要求利用栈实现数制转换、括号匹配的检验、行编辑器和表达式求值

2、。课程设计工作进度计划序号起止日期工 作 内 容分工情况12012.5.16-2012.5.24分析题目各成员进行题目分析并收集相关资料,查找相关算法22012.5.25-2012.6.3程序编写张路路和袁泉共同负责程序的编写32012.6.3-2012.6.12程序初步调试张路路、袁泉、张震负责对程序的调试,并对错误进行修改,查找资料42012.6.13-2012.6.14程序最终调试全体负责对程序的调试,张路路、袁泉并对错误进行修改,查找资料52012.6.15-2012.6.16书写报告张震、朱银莉、杨功瑾负责书写实验报告62012.6.17-2012.6.18实验报告的核实与完善全体组

3、员最后审核指导教师签字: 年 月 日系(教研室)审核意见:系(教研室)主任签字: 年 月 日课程设计任务书 栈的应用1引言 1.1 栈的说明 栈是一种重要的线性结构。从数据结构的角度来看,栈也是线性表,其特殊性在于栈的基本操作是线性表操作的子集,是操作受限的线性表,因此,可称为限定性数据结构。从数据类型角度来看,它是和线性表大不相同的重要抽象数据类型。由于它广泛应用于各种软件系统,因此在面向对象的程序设计中,它是多型数据类型。下面对栈做一些说明:栈是限定仅在表尾进行插入或删除操作的线性表,可对栈进行栈顶进行插入或删除、栈的初始化,判空及取栈顶元素等。和线性表类似栈也有两种存储表示方法:顺序栈和

4、链式栈。栈的应用可如下:数制转换、括号匹配、行编辑程序、迷宫求解等。而本次试验便是对前三种应用的一个考察。1.2课程设计目标利用栈实现数制转换、括号匹配的检验、行编辑器和表达式求值。1.3编程工具(编程环境)介绍 编程工具:Microsoft Visual C+ 编程环境:Microsoft Windows XP2需求分析2.1问题的解决步骤(1)创建两个空栈,一个字符型,一个数型。(2)写出栈的一些简单操作,如:取出栈顶元素、将数据元素e入栈、将栈置空、输出栈 中元素等。(3)写出把十进制数N转换为r进制的代码。(4)写出括号匹配的代码。(5)写出行编辑的代码。(6)写出将字符数转换为整数的

5、代码。(7)写出运算关系的优先级别的判断的代码。(8)写出进行四则运算的代码。(9)写出表达式求值的代码。2.2测试数据请输入选择:1;数字转换 2;括号匹配的检测 3;行编辑程序 4;表达式求值 0:退出程序1请输入要转换的数及转换的进制10 2转换后的数为 1010请继续选择 2请输入()括号匹配请继续选择 3Happ#py输出 Happy请继续选择 4请输入表达式 1+1=2 请继续选择 0退出程序3流程图4数据结构设计4.1结构体的定义typedef struct SElemType *base ; SElemType *top ; int stacksize ; / 栈的可用最大容量

6、SqStack1; 4.2具体函数功能解说 InitStack1(SqStack1 *S) 创建一个空栈SStackEmpty1(SqStack1 *S) 判断栈是否为空,为空则返回1,否则返回0GetTop1(SqStack1 S, SElemType *e) 取出栈顶元素 Push1( SqStack1 *S, SElemType e ) 将数据元素e入栈Pop1(SqStack1 *S, SElemType *e) 如栈不为空,将栈顶元素出栈clearStack(SqStack1 *S) 将栈置空Print_SqStackTraverse1( SqStack1 S ) 输出栈中元素Des

7、troyStack( SqStack1 *S) 销毁栈conversion(int N ,int r) 把十进制数N转换为r进制prool() 括号匹配LineEdit() 行编辑Transformnum(char c,float *sum,int j) 将字符数转换为整数Precede(SElemType a,SElemType c) 运算关系的优先级别的判断Operate(float a, SElemType theta,float b) 进行四则运算 EvaluateExpression() 表达式求值5详细设计5.1把十进制数N转换为r进制5.1.1主要代码void conversio

8、n(int N ,int r) float x; SqStack2 S; InitStack2(&S); while(N!=0) x=N%r; Push2( &S, x); N=N/r; Print_SqStackTraverse2( S );5.1.2界面设计及测试结果 图5-1 数制装换界面5.2 括号匹配5.2.1主要代码int prool()/括号匹配 SqStack1 S; InitStack1(&S); char a10; printf(请输入n); fflush(stdin); gets(a); int i,flag; char e; i=0;flag=1; while(ai!=

9、0&flag=1) if(ai=(|ai=|ai=) Push1(&S,ai); else switch(ai) case):Pop1(&S,&e); if(e!=() flag=0; break; case:Pop1(&S,&e); if(e!=) flag=0; break; case:Pop1(&S,&e); if(e!=) flag=0; break; i+; if(flag=0) printf(括号不匹配n); else printf(括号匹配n); return OK;void LineEdit()/行编辑 SqStack1 S; char ch,c,a50; int i=0; I

10、nitStack1(&S);/构造空栈 ,用来当缓冲区 fflush(stdin); ch=getchar(); while(ch!=.) while(ch!=.&ch!=n) switch(ch) case #:Pop1(&S,&c);break;/*当栈非空时退栈*/ case :clearStack(&S);break; default:Push1(&S,ch);break;/*有效字进栈*/ ch=getchar();/*接收下一个字符*/ while(S.base!=S.top) Pop1(&S,&ai); i+;/*把栈逆序输出到 a */ clearStack(&S); /*把栈

11、重置为空,以便再当缓冲区*/ if(ch!=.) ai=0; ch=getchar(); i=i+1; for(i=i-1;i=0;i-) if(ai!=0) printf(%c,ai); else printf(n); printf(n); /DestroyStack(&S);float Transformnum(char c,float *sum,int j)/将字符数转换为整数 int i=1,x; if(j=1)/小数点以前数的转换 x=c-0; *sum=(*sum)*10+x; if(j=0)/点以后的转换 x=c-0; *sum=(*sum)+x/pow(10,i); i+; r

12、eturn OK;5.2.2界面设计及测试结果 图5-2 括号匹配界面5.3行编辑5.3.1主要代码void LineEdit()/行编辑 SqStack1 S; char ch,c,a50; int i=0; InitStack1(&S);/构造空栈 ,用来当缓冲区 fflush(stdin); ch=getchar(); while(ch!=.) while(ch!=.&ch!=n) switch(ch) case #:Pop1(&S,&c);break;/*当栈非空时退栈*/ case :clearStack(&S);break; default:Push1(&S,ch);break;/

13、*有效字进栈*/ ch=getchar();/*接收下一个字符*/ while(S.base!=S.top) Pop1(&S,&ai); i+;/*把栈逆序输出到 a */ clearStack(&S); /*把栈重置为空,以便再当缓冲区*/ if(ch!=.) ai=0; ch=getchar(); i=i+1; for(i=i-1;i=0;i-) if(ai!=0) printf(%c,ai); else printf(n); printf(n); /DestroyStack(&S);5.3.2界面设计及测试结果图5-3 行编辑界面5.4表达式求值5.4.1主要代码void Evaluat

14、eExpression()/表达式求值 char c20,e,theta; float a,b,sum=0; int i=0,j=1,h=0,x; /创建两个栈,一个储存运算符,一个储存运算数 SqStack1 S1;/运算符栈 InitStack1(&S1); SqStack2 S2;/运算数栈 InitStack2(&S2); Push1(&S1,=); Push2(&S2,0); printf(请输入表达式); scanf(%s,c); /*for(i=0;ci!=0;i+) if(ci=0&ci=0;i-) if(ai!=0) printf(%c,ai); else printf(n)

15、; printf(n); DestroyStack1 (&S);6.4括号匹配int prool()/括号匹配 SqStack1 S; InitStack1(&S); fflush(stdin); for(i=0;ai!=0;i+); length=i; char e; i=0;flag=1; while(i=length&flag=1) if(ai=(|ai=|ai=) Push1(&S,ai); else /Push1(&S,NULL); switch(ai) case):Pop1(&S,&e); if(e!=() flag=0; break; case:Pop1(&S,&e); if(e

16、!=) flag=0; break; case:Pop1(&S,&e); if(e!=) flag=0; break; case0: Pop1(&S,&e); if(e!=0) flag=0; /default: flag=0; / break; i+; DestroyStack1 (&S);7课程设计总结与体会两周的课程设计结束了,在这次的课程设计中不仅检验了我们所学习的知识,也培养了我们如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计

17、是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础通过这次栈的应用课程设计,综合运用本专业所学课程的理论和生产实际知识进行一次栈应用设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了数据结构等课程所学的内容,掌握设计的方法和步骤,掌握程序设计的基本的技能懂得了怎样分析,怎样确定方案,提高了计算能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。

18、在这次设计过程中,体现出我们课程设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。8致谢在此感谢我们的杨传健老师.,老师严谨细致、一丝不苟的作风一直是我们工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我们无尽的启迪;这次课程设计的每个实验细节,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我们能够很顺利的完成了这次课程设计。同时感谢对我帮助过的同学们,谢谢你们对我们的帮助和支持,让我们感受到同学的友谊。 9参考文献严蔚敏,吴伟民,米宁 编著.数据结构习题集(C语言版)M,北京:清华大学出版社2011.48-54.

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

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