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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计总报告Word文档格式.docx

1、目录:1.引言 .22.需求分析.33.概要设计.34.详细设计.65.测试结果.116.调试分析.147.设计体会.148.结束语.14参考文献14附录151.引言栈,是硬件。主要作用表现为一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。要向外部介质上存储数据也必须先建立一个文件(以文件名标识),才能向它输出数据。本报告中所设计的整理表达式,实现了以线性表结构的单向表表示商场所需求的功能,将文件形式保存的数据恢复成线性表结构的单向表的流程中所需的功能。

2、2.需求分析输入字母和运算符号,输入数值也可以,但不好看,输出应输入对应。去掉所有多余的括号时,原表达式中所有变量和运算符相对位置保持不变,不能前移或是退后,并保持与原表达式等价。输入时也可以输入正确表达式。3.概要设计、string.hstdlib.h 为包含的库函数 除此之外还有结构体和宏定义的应用系统流程图见图 图3.1调用函数图; 图3.24、详细设计4.1引用库函数及变量的定义 #include /*包含绘制图形函数等头文件*/ /*包含字符串处理函数头文件*/ /*包含动态存储与释放函数头文件*/#include #include #define Max 100 /*宏观定义栈的最

3、大容量*/typedef struct stack /*栈结构定义*/ char dataMax; /*字符串定义,存储元素*/int top; /*栈中指针,代表栈的长度*/liststack;4.2 输入算法的实现void kuanjia1() /大框架 system(cls); printf( gotoTextPos(4,2); gotoTextPos(4,3); 整 理 表 达 式 gotoTextPos(4,4);printf( void menu() /主界面 kuanjia1(); gotoTextPos(16,8);1.Start gotoTextPos(16,10);2.Ex

4、it gotoTextPos(2,14);Please input your choice: 4.3输出算法的实现void zlbds() gotoTextPos(2,7);Input the primer expression: gotoTextPos(2,8); char strMax,expMax,tranMax; scanf(%s,str); strans(str,exp,tran); gotoTextPos(2,10);初步整理表达式:,exp); gotoTextPos(2,12);最终整理表达式:%sn,tran); Press any key to return! getch(

5、);menu();int n;%d,&n); switch(n) case 1:zlbds();break; case 2:return ; default:gotoTextPos(28,14);Error! gotoTextPos(2,16); Press any key to try again! menu(); 4.4 算法void strans(char str,char exp,char tran) /*子函数,删除字符串中多余项*/ liststack op; /*定义一个栈*/ int i=0,t=0,j=0,k=-1; op.top=-1; /*栈的初始位置*/ for(i=0

6、;iMax;i+) /*把输入的字符串存储在栈中*/ op.top+; /*指针移动*/ op.dataop.top=stri; /*第i个字符入栈*/=op.top;i+) /*从栈中查找元素*/ if(op.datai=() /*第i个元素若为“(”*/ if(op.datai-1=*|op.datai-1=/) /*如若第i个元素之前有“*”或“/”.即“(”前面有*或/*/ expi=op.datai; /*那么把第i个元素存在此数组里,即初始整理结果的存储位置*/ else if(i=0) /*如若第i个元素之前没有“*”或“/”,并且i=0*/ /*那么把第i个元素存在此数组里,也

7、即初始整理结果的存储位置*/ k=i; /*i的直赋给k,k用于记录当前记录位置*/ else /*i!=0*/*那么把第i个元素存在此数组里,也即初始整理 /*i的值赋给k,k用于记录当前记录位置*/ else if(op.datai=) /*第i个元素如不为“(”,而为“)”*/ if(op.datai+1=|op.datai+1=|k=-1) /*如果“)”后有*或/*/ /*那么把第i个元素存在此数组里,即初始整理 else if(i=op.top&k=-1) /*“(”后面没有*或/ ,并且当前位置合法*/ else /*当前位置不合法*/ expi= ; /*此数组存空*/ exp

8、k= k=-1; else /*第i各元素如若不为(,而不为“)”*/ expop.top+1=0 /*最后一个存/0*/ while(expt!=) if(expt!) /*第t个元素不为空*/ tranj=expt; /*把它放在最终整理数组中*/ t+; j+; else if(expt=t!=op.top) /*第t个元素为空 ,并且当前位置合法 tranj=expt+1; /*把下一个放在最终整理数组中*/ t=t+2; else break; /*跳出循环*/ 4.5主函数int main()mode con:cols=40 lines=20 setConsoleTitle(整理表

9、达式 by余海刚color 0A gotoTextPos(10,7);拜 delayMS(600); gotoTextPos(19,7); gotoTextPos(20,9);b gotoTextPos(21,9);y gotoTextPos(24,9);余 gotoTextPos(26,9);海 gotoTextPos(28,9);刚 return 0;5、 测试结果 5.1输入界面 图 图5.1 5.2.1输出界面 输入选择1的运行界面。见1.10 图 5.2.1 5.2.2输入选择2的运行界面。 图5.2.2 5.2.3输入其它选择的运行界面。 图5.2.36、 调试分析编译时,发现有的

10、括号可删可不删时,会自动删除,这样导致程序不够紧密。刚刚接到这个题目的时候,本人发现用栈做会更加的减少时间复杂度和空间复杂度,从而更好的方便使用,于是我的一切出发点都是围绕方便使用者进行。程序的开始我使用的是宏定义,使程序更加的简洁明了,其中贯穿程序大部分的是字符串和数组。登陆界面其实是利用判断语句做的,后面的输入输出没有什么特别的,是按照一般线性表的输入输出做的,。除此之外,本人还花了一部分时间到美化界面上,现在的界面是在本人的能力范围之内最好的。7、 设计体会通过这个星期的课程设计,本人的收获还是不少的。刚开始看到这个课程设计题目的时候,本人觉得很有信心,因为本人认为本人的数据结构和C语言

11、中本人最喜欢也是学的最好的地方就是线性,但是随着对这个题目的细细探索,本人发现这题目还是有一定的难度的,越看本人觉得越急躁,但是这样反而更加的阻碍我的思路,直到本人碰到一个在C语言方面颇有心得的同学,他帮我解决了很多问题,更主要的是他让本人明白了耐性在一个程序中的重要作用,现在,借着这里本人想真诚的对他说一声“谢谢!”本人一定会更加的努力培养本人的耐性,让本人的人生更加的美好而成功!数据结构的很多算法没能熟练的掌握,以致在调试的时候花了很长时间,而且程序不够工程化,功能不够完善。程序设计的过程中,代码的编写很不熟练,而且很容易犯一些低级的错误,如:语句后面的分号忽略了,括号不匹配等等。8、 结

12、束语该系统本人主要做了三个功能选项,,一个主界面。解决了编程整理表达式问题,当然此系统也可应用到其它表达式系统。它是利用了C语言实现的。此系统的作界面,操作员可以对某个指定的库存文件进行选择,文件名自定。非常感谢老师对本人的教导。参考文献1 严蔚敏 吴伟名 编著,数据结构, 清华大学出版社, 2001年1月2 谭浩强 编著, C程序设计(第三版) ,新世纪计算机基础教育丛书 清华大学出版社 ,2005年7月第三版3 张颖江,胡燕。c语言程序设计M。北京:科学出版社。1985年。4 裔红艳 数据结构课程设计报告 , 计算机师范5 知道6 李春葆 编著,数据结构习题与解析(第三版),清华大学出版社

13、,2006年10月20附录:#include strong.cpp#define Max 100void menu();typedef struct stack int top;void strans(char str,char exp,char tran) liststack s; s.top=-1;i+) s.top+; s.datas.top=stri;=s.top; if(s.datai= if(s.datai-1=|s.datai-1= expi=s.datai; else if(i=0) else if(s.datai= if(s.datai+1=|s.datai+1=|k=-1)

14、 else if(i=s.top&k=-1) exps.top+1=s.top) int n;pcc32.hvoid delayMS(uint32 d)Sleep(d);void clearText(void)system(int setTextColor(uint8 fColor)HANDLE hd = GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_SCREEN_BUFFER_INFO csbInfo;GetConsoleScreenBufferInfo(hd, &csbInfo);return SetConsoleTextAttribute(hd, fColor | (csbInfo.wAttributes&0x0F);PCCOLOR getTextColor(void)GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &return (PCCOLOR)(csbInfo.wAttributes&0x0F);int setBackColor(uint8 bColor)HANDLE hd = G

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

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