课程设计报告——括号匹配问题_第1页
课程设计报告——括号匹配问题_第2页
课程设计报告——括号匹配问题_第3页
课程设计报告——括号匹配问题_第4页
课程设计报告——括号匹配问题_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告一一括号匹配问 题作者:日期:1.设计目的1、能根据实际问题的具体情况,结合数据结构课程中的基本理论和基本算 法,分析并正确确定数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。2、提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正 确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。3、初步掌握软件开发过程中问题分析、系统设计、程序编码、测试等基本 方法和技能。4、训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所 应具备的科学的工作方法和作风。5、培养根据选题需要选择学习书籍,查阅文献资料的自学能力。2.设计内容2

2、.1 系统名称括号匹配问题:括号匹配问题就是给定任意判别式,然后检验括号的配对出 现的情况。2.2 要求假设一个算术表达式中可包含三种括号:圆括号、中括号、 花括号且这三种 括号可按任意次序嵌套使用。试利用栈的运算,编写判别给定式中所含括号是否 正确配对出现的算法。任意运用一种计算机语言,分析问题,写出具体程序,要求能够在对应的系 统中实现该问题的,实验通过计算机来完成。独立完成,可通过查阅资料来解决自己不会的问题,提高自己查阅文献的能 力级独立思考的能力。3.程序设计步骤3 .1程序流程分析图二口图3 -1程序流程图3.2主要的数据结构类型typed e f s t r uc tint to

3、p;ch ar Sz s t a ckMax S iz e ;Text;3.3程序功能模块函数(1)检验栈是否为空b oo 1 I s Em p ty(T e xt G)?if (G .t o p = =-1)?retu r n true;el s e? return fals e ;(2)检验栈是否为满bool Is F ull (Te x t G )? if( G .top=M a xSize-1)? ret u rn t r u e;else? retu r n fal s e;(3)弹出栈顶元素char P op (Text G) ?ch ar n =G . S zsta ck G .

4、 t op;?ret u rn n;(4 )检验括号是否配对int C h eck (char * A)?int i;Text G;?G.top=-1 ;? int L =str 1 c n (A);?char c ;? fo r ( i =0;i vL; i+)?c=Ai swi t ch (c )case / (:pr i nt f (压入(top= % dnn,G.op);?b reak;ca s e:?G .Szsta ck+(G.top)=c ;?pri n tf(压入t op=%dn n,G.top);?b r eak;c a s e :G.Szs ta ck + (G.top)

5、=c;?p r intf(压入 top= %dnn ,G. top)b r eak;case / ) /:?i f(P o p(G)!= /(,)return 0 ;?elseG.Szs tackG.top-;p r in tf(当遇)出栈(top= %n n,G.top);?bre a k;case7 /if ( Pop(G)l )re turn 0;?else?G.Szs tackG.top- ;prin t f (当遇出栈top= % d n n , G . to p );G.S z s t ack + + (G . top)尸 c ;?b r eak;?c ase:?i f(Pop(G

6、)!= / )?retu rn 0 ;?else? G.Szstac k G. t op-;?printf(当遇出栈 t o p =% n n,G.top)?break ;? def a ult:b r e ak;?if(!IsE mpty(G)? re t u r n 0;?return 1 ;3.4 程序实现中函数之间的调用先进行函数声明,在定义函数,再在功能函数及主函数中调用函数,实现检验 括号匹配的问题。主函数:i n t m a i n()Tex t G;sy s t e m ( colo r 1 f );? ch ar AMa xSize;p r int f (”请输入需要检验的括

7、号:nn);?scanf( %s,A);?if (Ch ec k (A)=1)?printf(括匹配nn n);e 1 sep r intf( n nn);print f (括号不匹配 n n);r eturn 0;4 .调试分析输入检验的表达式中的括号是否匹配,将进栈出栈过程在调试中显示出来, 方便观察。现在输入各种表达式及括号,都能正确判别其中括号是否匹配。主要是通过栈来实现检验功能,栈在很多方面都可以用到的,用途广泛。5 .测试结果进入演示程序后,即显示主界面为图5-1主界面输入力J别式,界面显示结果为:匹配情况:图5-2 括号匹配图招5-3括号匹配图不匹配的情况:D: D&l)uga,

8、 eie请输入需要检验的括号土n SA, Lop-0压入 top=l当遇出钱 top=0当遇出桂C tnp=-l压,、1 top-0拈号不匹配Press ankev to continue图54括号不匹配图6 .课程设计小结这次课程设计是运用C语言以及这学期所学习的数据结构的知识完成的。 数 据结构是由某一数据元素的集合和该集合中的数据元素之间的关系组成。当拿到一个问题时,首先要分析问题,确定算法遇到的资源限制;然后确定必须支持的 基本运算,度量每个运算所受到的资源限制。基本运算包括向数据结构插入一个 新数据项,从数据结构中删除一个数据项和搜索指定的数据项;最后选择最接近 这些资源开销的数据结构。然后运用所学的语言将算法思想通过程序表现出来,最后解决一个问题。本实验,我做的是检验括号匹配的问题。首先分析问题,理解题目意思。想 出具体解决该问题的算法。通过栈的思想来解决问题。此次实验遇到困难不多, 算法比较简单。通过一个数组和一个栈就可以解决问题了。只是在刚开始时,直接把判别式读入栈中,导致调试出现错误,一时无法解决,通过多次调试检查得以 解决。还有在该程序中遇到的问题是,将遇到的左括号压入栈中时,调用Pu sh()函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论