您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 文章编辑数据结构课程设计
长沙理工大学《数据结构》课程设计报告学院专业班级学号学生姓名指导教师课程成绩完成日期课程设计成绩评定学院专业班级学号学生姓名指导教师完成日期指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩指导教师签字年月日课程设计任务书计算机与通信工程学院软件工程专业课程名称数据结构课程设计时间学生姓名指导老师题目文章编辑主要内容:采用单链表数据结构静态存储文章,以C语言实现相关程序,实现对输入的文章进行统计文章中总字符数、统计文章中空格个数、统计文章中数字个数、统计文章中英文字母数、删除文章中指定字符串、统计文章中指定字符串出现次数的文章编辑功能操作。要求:(1)通过实际项目的分析、设计、编码、测试等工作,掌握用C语言来开发和维护软件。(2)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户使用手册。应当提交的文件:(1)文章编辑数据结构课程设计论文。(2)代码清单。文章编辑学生姓名:陈旖指导老师:陈倩诒摘要本课程设计主要解决了基本的文章编辑问题。对于一页按要求输入到程序执行窗口的文章,静态存储结构使用线性表中,分别完成统计文章总字符数、文章中空格个数、文章中英文字母数、统计文章中英文字母数的操作和文章中某一字符串的出现的次数,并输出该次数;除以上的统计操作,还实现删除文章中指定字符串,并且将删除字符串后面的字符前移,再保存为编辑后的文章。关键字静态存储;线性表;编辑;字符串目录1.引言……………………………………………………………………………………11.1课程设计意义…………………………………………………………………11.2课程设计目的……………………………………………………………………11.3课题要求…………………………………………………………………………12.设计思路与方案………………………………………………………………………22.1函数流程…………………………………………………………………………22.2功能函数…………………………………………………………………………43.详细实现………………………………………………………………………………53.1数据结构设计……………………………………………………………………53.2功能函数设计……………………………………………………………………53.3函数分析…………………………………………………………………………64.运行环境与结果……………………………………………………………………124.1运行环境…………………………………………………………………………124.2运行结果…………………………………………………………………………125.结束语………………………………………………………………………………166.参考文献……………………………………………………………………………177.附录…………………………………………………………………………………18代码清单………………………………………………………………………………18陈旖《文章编辑》11引言1.1课程设计意义在实践教学中,课程设计是一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。数据结构[1]是一门重要的专业基础课,是计算机理论和应用的核心基础课程。数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计[2]及其实现等方面,加深对课程基本内容的理解[3]。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。1.2课程设计目的1.提高对数据逻辑结构[4]的特点以及存储表示方式的认识,培养在具体应用中选择合适的数据结构和存储结构的能力。2.熟悉软件开发的基本过程,初步掌握软件开发过程的问题分析、系统设计、程序编码[5]、测试等阶段基本任务和技能方法。3.培养自己的算法设计和算法分析能力,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的工作方法、作风和相互合作的精神。5.综合运用链表[6]的查找、插入和删除,理论结合实际,将其运用到文章编辑这一实验中。使这些知识得到进一步巩固、加深和拓展。利用模块的思想,模块之间用指针连接,减少了不必要的麻烦。巩固加深指针的用途,理解模块的优点。加深对链表的理解,全面认识链表操作的字符串的模式匹配操作。1.3课题要求课题名称:文章编辑具体要求:(1)静态存储一页文章,每行最多不超过80个字符,共N行;(2)分别统计出其中英文字母数和空格数及整篇文章总字数;(3)统计某一字符串在文章中出现的次数,并输出该次数;陈旖《文章编辑》2(4)删除某一子串,并将后面的字符前移;(5)存储结构使用线性表[3],分别用几个子函数实现相应的功能。陈旖《文章编辑》32设计思路与方案2.1函数流程根据课题文章编辑的详细要求,可将程序的运行分为三个模块,即文章输入和文章输出模块、指令输入和指令判断模块、执行指令操作模块。构造多个线性表,将输入的文章的每一行字符,都分别静态存储[4]在相应的线性表中。每个线性表的存储容量不超过80个字符。文章输入结束后,程序输出指令菜单,列出程序可以合法执行的操作指令,并选择输入合法的指令,以执行相应的指令操作。依照课题要求,程序设计了6大功能,分别为统计文章中总字符数、统计文章中空格个数、统计文章中数字个数、统计文章中英文字母个数、删除文章中指定字符串、统计文章中指定字符串出现次数,并且为每一项功能提供相信的执行指令。程序的执行流程如图2.1所示。首先按要求输入文章,然后按照指令菜单选择要执行的指令,程序判断指令,并且执行相应的指令操作,输出指令执行结果后,重新返回指令菜单,再次等待指令输入。指令书输入和指令执行为无限循环,在用户退出程序前,程序不会自动结束。陈旖《文章编辑》4开机输入文章指令判断统计文章中英文字母数统计指定字符串出现次数删除文章中指定字符串统计文章中总字符数统计文章中数字个数统计文章中空格个数输入指令正确错误图2.1函数执行流程图2.2功能函数为实现6个执行指令操作,分别设计相应的功能函数,并运用C语言数据结构构造相关代码。功能函数名以功能说明如表2.2所示。表2-1功能函数列表函数功能voidCountAll()统计文章中总字符数voidCountSpace()统计文章中空格个数voidCountNumber()统计文章中数字个数voidConuntLetter()统计文章中英文字母数voidDelstring()删除文章中指定字符串voidFindstring()统计文章中指定字符串出现次数陈旖《文章编辑》53详细实现3.1数据结构设计(1)定义结构体:typedefstructline{char*data;structline*next;}LINE;LINE为单链表存储结构。3.2功能函数设计(1)统计文章总字数:voidCountAll(LINE*&head)将p付给表头指针;初始化count为0;用do-while语句遍历链表,同时统计字符串中总字数;用printf语句输出文章中总字数,调用子函数menu()。(2)统计文章中的空格数:voidCountSpace(LINE*&head)将p付给表头指针;初始化count为0;用do-while语句遍历链表,同时统计字符串中空格数;用printf语句输出文章中空格数,调用子函数menu()。(3)统计文章中数字个数:voidCountNumber(LINE*&head)将p付给表头指针;初始化count为0;用do-while语句遍历链表,同时统计字符串中数字个数;用printf语句输出文章中数字个数,调用子函数menu()。(4)统计文章中英文字母数:voidCountLetter(LINE*&head)将p付给表头指针;初始化count为0;陈旖《文章编辑》6用do-while语句遍历链表,同时统计字符串中英文字母数用printf语句输出文章中英文字母数,调用子函数menu()。(5)查找字符串的函数:voidFindString(LINE*&head)将p付给表头指针;初始化count为0;初始化len1,用来保存当前行的总字符数;定义整型变量len2表示待统计字符串的长度;用printf语句提醒用户输入要统计的字符串;用do-while语句遍历链表,同时用for循环和if语句找出指定字符串在文章中出现的次数;用printf语句输出指定字符串在文章中出现的总次数,调用子函数menu()。(6)删除字符串的函数:voidDelString(LINE*&head)先创建一个delstringword,其中包含两个字符串char*s和char*str,用*s表示输入的字符串,*str表示要删除的字符。这个函数的功能是找到字符串s在字符串中出现的位置并删除该字符串。定义字符串的删除函数DelString(),用do-while语句遍历链表,语句中再套用if语句,并调用delstringword()进行删除。3.3函数分析(1)voidCountAll(LINE*&head)本函数的作用是统计整篇文章的所有字符数,包括空格。返回统计结果之后会调用menu方法打印指令菜单。voidCountAll(LINE*&head){LINE*p=head;intcount=0;do{count+=strlen(p-data);陈旖《文章编辑》7}while((p=p-next)!=NULL);printf(文章总字数:%d\n,count);printf(******************************\n);printf(\n);menu();}(2)voidCountSpace(LINE*&head)本函数的作用是统计字符串链表中的空格个数,在统计完空格个数后,调用menu方法打印指令菜单。voidCountSpace(LINE*&head){LINE*p=head;intcount=0;do{intLen=strlen(p-data);for(inti=0;iLen;i++)if(p-data[i]==32)count++;}while((p=p-next)!=NULL);printf(文章中空格个数:%d\n,count);printf(******************************\n);printf(\n);menu();}(3)voidCountNumber(LINE*&head)本函数的作用是统计字符串链表中的数字个数,在统计完数字个数后,调用menu方法打印指令菜单。陈旖《文章编辑》8voidCountNumber(LINE*&head){LINE*p=head;intcount=0;do{intLen=strlen(p-data);for(inti=0;iLen;i++)if(p-data[i]=48&&p-data[i]=57)count++;}while((p=p-next)!=NULL);printf(文章中数字个数:%d\n,count);printf(******************************\n);printf(\n);menu();}(4)voidCountLetter(LINE*&head)本函数的作用是统计整个字符串链表中英文字母的个数。遍历完成之后会调用menu方法打印指令菜单。voidCountLetter(LINE*&head){LINE*p=head;intcount=0;do{intLen=strlen(p-data);//计算当前data里的数据元素个数
本文标题:文章编辑数据结构课程设计
链接地址:https://www.777doc.com/doc-6451515 .html