计算机工程学院课程设计报告数据结构课程设计.doc
《计算机工程学院课程设计报告数据结构课程设计.doc》由会员分享,可在线阅读,更多相关《计算机工程学院课程设计报告数据结构课程设计.doc(18页珍藏版)》请在三一办公上搜索。
1、淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 数据结构课程设计 选题名称: 简单行编辑 姓 名: 侯耀生 学 号: 2012122694 专业班级: 软件工程 软件121 系 (院): 计算机工程学院 设计时间: 2013.12.232013.1.5 设计地点: 软件工程实验室、教室 成绩:指导教师评语: 签名: 年 月 日1课程设计目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训
2、练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。2课程设计任务与要求:任务根据教材数据结构-C语言描述(耿国华主编)和参考书数据结构题集(C语言版)(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。设计题目从任务书所列选题表中选取,每班每题不得超过2人。学生自选课题学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题
3、需在18周前报课程设计指导教师批准方可生效。要求:1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。3、程序设计语言推荐使用C/C+,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;5 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实
4、,不少于10页(代码不算);6、课程设计实践作为培养学生动手能力的一种手段,单独考核。 3课程设计说明书一 需求分析设计一个简单的行编辑程序,输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行。存储结构使用线性表,文字中可以是大写、小写的英文字母、任何数字及标点符号。 基本要求 (1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。(4)输出形式:1)分行输出用户输入的各行字符;2)分4行输出全部字母数、数字个数、空格个数、文章总字数3)输出删除某
5、一字符串后的文章;二 概要设计1.结构体定义:typedef struct linechar *data;struct line *next;LINE;2各函数功能(1)void Create(LINE * &head)功能:创建一个链表,同时向里面输入文本数据(2)int Countwords(LINE * &head)功能:统计字母数(3)int CountNumber(LINE * &head)功能:统计数字数(4)int CountSpace(LINE * &head)功能:统计空格数(5)int CountAll(LINE * &head)功能:统计文章的总字数(6)int Find
6、String(LINE * &head,char*str)功能:统计str在文章中出现的次数(7)void delstringword(char *s,char *str)void DelString(LINE * &head,char *str)功能:删除指定的字符串(8)void OutPut(LINE * &head)功能:向屏幕输出文章系统流程图主函数 统计文章总字数统计某个字符串出现次数 统 计字母数 退出该系统 删除指定字符串 统计空格数 统计数字数三 详细设计1.定义头文件#include #include #include 2. 定义结构体定义一个链表,文本每行以字符串形式存储
7、,行与行之间以链表存储typedef struct linechar *data;struct line *next;LINE;3. 主要难点函数的功能及其实现(1)统计str在文章中出现的次数。int FindString(LINE * &head,char*str)LINE *p=head;int count=0;int h=0;int len1=0;/保存当前行的总字符数int len2=strlen(str);/待统计字符串的长度int i,j,k;dolen1=strlen(p-data);/当前行的字符数for(i=0;idatai=str0)k=0;for(j=0;jdatai+
8、j=strj)k+;if(k=len2)count+;i=i+k-1;while(p=p-next)!=NULL);/遍历链表return count;(2)删除指定字符串void delstringword(char *s,char *str)char *p=strstr(s,str);/从字符串s中寻找str第一次出现的位置char tmp80;int len=strlen(s);int i=len-strlen(p);int j=i+strlen(str);int count=0;for(int m=0;mi;m+)tmpcount+=sm;for(int n=j;ndata,str)!
9、=NULL)delstringword(p-data,str);while(p=p-next)!=NULL);/遍历链表/向屏幕输出文章void OutPut(LINE * &head)LINE *p=head;doprintf(%sn,p-data);while(p=p-next)!=NULL);/遍历链表四 设计与调试分析(1) 系统起始界面,要求输入字符串文章(2) 系统主界面(3) 统计字母数(4) 统计数字数(5) 统计空格数(6) 统计文章总字数(7) 统计某个字符串出现的次数(8) 删除指定字符串(9) 退出该系统(10) 未按指定要求输入编号五 用户手册1. 进入用户界面,输入
10、一篇文章,可以包括字母数字以及空格符,完成后按Ctrl+E键。2. 输入完成后,进入用户主界面,在选项17内进行选择。 (1)若按1键,统计该篇文章的全部字母数。 (2)若按2键,统计该篇文章的全部数字数。 (3)若按3键,统计该篇文章的全部空格数。 (4)若按4键,统计该篇文章的总字数。 (5)若按5键,统计某个字符串在文章中出现的次数。 (6)若按6键,删除该文章中的指定字符串。 (7)若按7键,退出该系统。 (8)若按8键,则返回异常,提示输入键为17键。六 测试成果七 附录(源程序清单)#include #include #include /文本每行以字符串形式存储,行与行之间以链表存
11、储typedef struct linechar *data;struct line *next;LINE;void Create(LINE * &head)printf(请输入字符串,以Ctrl+E(E)为结尾(每行最多输入80字符!):n);LINE *p=new LINE; head=p; char tmp100; while(1)gets(tmp); if(strlen(tmp)80)printf(每行最多输入80字符);break;if(tmp0=5)break;p=p-next=new LINE;p-data=new charstrlen(tmp)+1; strcpy(p-data
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 工程学院 课程设计 报告 数据结构
链接地址:https://www.31ppt.com/p-4297061.html