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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计模板1文档格式.docx

1、计 划 完 成 内 容备注12012.12.10查阅资料,撰写读书笔记22012.12.11系统设计,数据结构设计,算法设计32012.12.12编程并上机调试42012.12.13撰写报告52012.12.14验收程序,提交设计报告书铜 陵 学 院 数 学 与 计 算 机 科 学 系数据结构课程设计成绩评定表 教研室: 信管教研室 班级: 11信管本 学生姓名:钱立新、钱浩、彭武彬 指 导 教 师 评 审 意 见评价内容具 体 要 求分数类别评分调 研论 证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。1086工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工

2、作。201612工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。课程设计报告的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。504030课程设计成绩指 导 教 师 签 名:第1章 文本编译器的设计的任务与要求1.1 文本编译器的设计的任务问题描述:编写一个简单的文本编译器软件,能够基本实现文本的输入、插入、删除等功能。 请根据所学过的线性表知识用C/C+编程实现此操作。程序要求:(1)一篇文章,要求将此文章中的内容输入文本编译器中;(2)删除某一个字符或字符串;(3)讲指定的字符后字符串插入文中指定的位置,操作完毕,需将

3、内容显示出来;(4)将更新后的文本保存;1.2 文本编译器设计的要求1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。2、设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。3、程序设计语言推荐使用C/C+,程序书写规范,源程序需加必要的注释;4、每组同学需提交可独立运行的程序和提交一份设计报告书。第2章 需求分析要求用到数据结构课上学到的线性

4、表以及链表等线性结构的的知识,所以就要充分而清晰的理解关于线性表和链表的知识,要有对数据的整体把握。要求实现的基本功能很简单,只有删除和插入以及插入,增加功能也不过是加上输入和保存。这些在数据结构课上已经讲过,只要能够理解关于线性表和链表的几个相关的基本算法加上对c语言的主要知识的把握就可以了。问题是将输入的信息保存入文件,并对文件中的信息进行查找、插入、和删除。这里基本是以前学过的c语言以及自学的内容,而且要考虑到是否要自行选择保存的地址。综上,做这个课题,要具备的知识就是数据结构的一些基本算法以及c的主要知识,文件的保存算法、查找、插入、和删除,必要的C或者C+知识(本次我将使用C实现),

5、以及丰富的程序调试经验。第3章 概要设计首先由于程序中要有对文本信息的增加和减少,定义一个全局变量n,在此程序的任意的模块中均可以使用。宏定义,定义三个结构体变量,存放数据data80,行长度length,列数row,以及线性表的后继next和前驱pre。 设计实现主要功能的函数有:输入文本信息的函数CreatWord();显示文本的函数PrintWord();查找的函数SearchWord();文件保存的函数duru();插入文本信息的函数InsertWord();删除文本信息的函数DeleteWord();内容处理菜单函Bmenu()以及主菜单mene();数然后在main()函数中实现对

6、各个子函数的调用。为了使用的方便,程序中将一些函数分层调用,在内容处理菜单Bmenu()中调用查找的函数SearchWord()、插入文本信息的函数InsertWord()、删除文本信息的函数DeleteWord(),在主菜单mene()中调用内容处理菜单函数Bmene()。 在主菜单函数Bmene()和内容处理菜单函数mene()中还要用一个switch()语句用于对不同函数的调用.为了直观的看到操作以后的界面分布,还要有一个输出文字的函数 HeadWord()。程序运行中,为了保持屏幕的清楚和美观,时刻进行清屏也是必要的,股要用到清屏函数system(cls)。第4章 详细设计1)宏定义,

7、定义全局变量、结构体: #define Link_Size 100/*宏定义*/ fstream fp;int NUM,C,N;/*全局变量*/ typedef struct list/*定义结构体*/ char data80; int length; struct list *next; struct list *pre; int row; LinkList; LinkList *h2)主函数的算法如下:void main() head=(LinkList *)malloc(sizeof(LinkList); LinkList *temp; temp=head; menu(temp); /*

8、结束main函数*/3)输入文本信息的算法如下: LinkList *CreatWord() LinkList *temp; char ch; int i,j; head-next=(LinkList *)malloc(sizeof(LinkList);pre=NULL; temp=head-next; temp-length=0; for(i=0;i80;i+)datai=0; printf(开始创建文本,请输入文章(输入#号结束):n); fp.open(context.txt,ios:out); if(fp.fail()文件创建失败! for(j=0;jLink_Size;j+) for

9、(i=0; ch=getchar(); if(ch!=#) fpdatai=ch;length+; if(ch= NUM=j; break; if(ch= temp-length=i;next=NULL;next=(LinkList *)malloc(sizeof(LinkList) ;next-pre=temp; temp=temp-row=NUM+1; system( fp.close(); return temp;4)显示文本的算法如下:void PrintWord() int i,j; LinkList *p; p=head- HeadWord();n当前文章的内容是:=NUM&p!=

10、NULL; for(i=0;(idatai)! printf(%c,p-datai); p=p-5)保存文件的算法如下:void duru() LinkList *temp;pre=NULLin); if(fp.eof() temp- break; fptemp-system(fp.close();6)查找的算法如下:void SearchWord(char *str1,LinkList* temp) char Data20 ; int i,j,k=0,sum=0; int l=1; strcpy(Data,st r1);=NUM;i+) for(j=0;j+) if(temp-dataj)=

11、Datak) k+; else if(Datak! j=j-k;k=0; if(Datak=) sum+; j=j-k+1;tt第%d次出现在第%d行第%d列n,l,i+1,j+1); l+; k=0; continue; ttt字符串总共出现次数为:%dnn,sum); C=sum; N=i*80+j;7)插入的算法如下:void InsertWord(LinkList *temp) char Data20; int h,l;ntt请输入要插入的字符或字符串: getchar(); gets(Data);ntt当前文章内容为: PrintWord();ntt请输入要插入的行: scanf(%

12、d,&h);ntt请输入要插入的列:l); int i=(h-1)*80+l; LinkList *a; int n=strlen(Data); int m ; int insertRow=i/80+1; int row=temp-row; int j; if(insertRow=row) for(m=temp-length-1;m=(i%80)&n0;m-) temp-datam+n=temp-datam; for(m=(i%80),j=0;mn+(i%80);m+,j+)datam=Dataj; else int r=0; for(int p=insertRow; plength-1-r;

13、=0& a=temp; temp = temp-pre;length = 80; for(m = temp-length-n,j=0;length; a-dataj=temp- for(m=temp-length-n-1;=(i%80);m-) (i%80)+n;m+,j+) datam =Dataj;8)删除的算法如下:void DeleteWord(char *str2) LinkList *temp,*term; int i,j,k,m,y,num; strcpy(Data,str2); for(y=0;y for(j=0; if(temp-dataj)=Datak) k+; else

14、if(Datak!j=j-k; if(Datak= num=j; if(num80) break; for(; for(; if(j+1data80-k+num=temp-dataj+1; else temp-dataj-k+1=temp- term=temp; j=0;9)各个模块之间的调用关系如下:第5章 设计与调试分析 在我自己课程设计中,就在编写好源代码后的调试中出现了不少的错误,遇到了很多麻烦及困难,我的调试及其中的错误和我最终找出错误,修改为正确的能够执行的程序中,通过分析,我学到了:在定义头文件时可多不可少,即我们可多写些头文件,肯定不会出错,但是若没有定义所引用的相关头文件,必

15、定调试不通过;从上面的算法和调用关系可以看出,这个程序的基本样子已经非常的清楚,但是真正的程序中还要考虑各种限制条件以及错误情况。例如在查找的过程中,可能不存在要查找的信息,就要给出不存在此信息的提示;在插入的时候,插入的位置不存在等。还有就是涉及到返回值得问题和程序中所要用到的变量的问题。在调试的过程中所遇到的问题很多,例如,.c和.cpp的区别等。 通过本次数据结构的课程设计,我学习了很多在上课没懂的知识,并对一些线性结构的算法有了更加深刻的了解,更巩固了课堂中学习的知识,真正学会一种算法了。当求解一个算法时,不是拿到问题就不加思索地做,而是首先要先对它有个大概的了解,接着再详细地分析每一

16、步怎么做,无论自己以前是否有处理过相似的问题,只要按照以上的步骤,必定会顺利地做出来。 这次课程设计,我在编辑中犯了不应有的错误,对文件的操作也很生疏。在不断分析后明确并改正了错误和疏漏,我的程序有了更高的质量。第6章 用户手册1、本程序可以在vc+6.0 的环境下运行。2、在vc中创建一个工程,将源程序复制到.cpp中,编译链接就可以。3、选择编译、运行以后会出现运行界面,选择相应的选项,根据提示即可进行演示。界面如下:4、创建信息就是把最开始要输入的信息输入到系统里。5、浏览信息就是浏览已经输入的信息。6、保存信息就是把输入的信息保存如指定的磁盘。7、文章内容处理菜单,界面如下:8、插入,

17、修改,删除分别是对指定的某信息进行相应的操作。 1)查找2)插入 3)删除第7章 课程设计心得体会以前做实验题目的时候大家感觉很难,因为根本就不知道从哪里开始,从哪里下手。而这次课程设计让我们对编程有了新的认识和宝贵的体会。拿到题目的时候我非常的无语,根本不知道该从何处下手,无赖之下我们上网查了很多相关的资料,看了很多有关的例子。并仔细看了书尤其是数据结构上的线性表和链表的知识,感觉就是老师上课讲到的一些内容,题目不是很难,是自己基础不够扎实,以至于先把自己吓住了。再后来,参照书上的和网上的诸多例子,我们大家一起认真的一个模块一个模块的编写,调试,一个功能一个功能去完善。我们发现越做越顺利,由

18、于以前的实验中对于改错的经验积累和几个学得不错的同学的帮助,我们的程序中的错误也一个一个的顺利解决。接下来,等我们的程序完全做好以后,我们竟然可以独立的帮其他同学修改一些以前根本不知所以然的错误。其实,从这次实验中我们认识到,我们距离高手还很远,编程有很多的乐趣也有很多的技巧性和知识性。我们将在以后的日子里继续认真的学习知识,积累经验,让自己的编程能力提高。最后,也是我们最重要的体会:我们在开始时的不知所措,对题目的畏惧如虎,一直以为编程很难。但当我们认真且努力的完成任务时我们才发现其实编程也不是不能掌握的。一直以来,都是我们自己给自己加添了难度,对自己缺乏应有的信心。我想经过这次体验后,我们

19、会更加相信自己,了解自己,这为我们以后漫长的人生道路有着不可估量的巨大帮助,让我们拥有面对社会,面对人生的无畏勇气。参考文献1谭浩强.C程序设计.北京:清华大学出版社,20052谭浩强.C程序设计题解与上机指导.北京:清华大学出版社,2005 3严蔚敏.吴伟民等编著数据结构(C语言版).北京:清华大学出版社,20114候风巍.杨永田等编著数据结构要点分析.北京:北京航空航天大学出版社,20075郑阿奇.Visual C+实用教程.北京:电子工业出版社,20106Frank M.Carrano 等著.数据结构与+高级教程.北京:清华大学出版社,20097严蔚敏.数据结构习题集(C 语言版).北京

20、:清华大学出版社, 20098数据结构(C语言版),陈明编著,清华大学出版社,2006年。9算法与数据结构 ,宁正元等编著,清华大学出版社,2006年。10数据结构知识点与典型例题解析,陈亦望编著,清华大学出版社,2005年。11数据结构与算法学习辅导及习题详解,张乃孝编著,电子工业出版社,2004年。附录(源程序清单)/*11信管本 钱立新、钱浩、彭武彬的课程设计题目,选题是:文本编译器的设计*/#includestdio.hmalloc.hstring.hiostream.hstdlib.hconio.h#include#define Link_Size 100fstream fp;typedef struct list char data80; int length; struct list *next; struct list *pre; int row;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2