您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 串的查找和替换数据结构课程设计报告1
长沙理工大学《数据结构》课程设计报告黄博学院计算机与通信工程专业计算机科学与技术班级计算机0903班学号200986250311学生姓名黄博指导教师陈倩诒课程成绩完成日期2011年7月3日课程设计成绩评定学院城南学院专业计算机科技与技术班级计算机科学与技术学号200986250311学生姓名黄博指导教师陈倩诒完成日期2011年7月3日指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩指导教师签字2011年7月10日课程设计任务书城南学院计算机科学与技术专业课程名称数据结构课程设计时间2010~2011学年第2学期18~20周学生姓名黄博指导老师陈倩诒题目串的查找和替换主要内容:问题描述:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘要求:(1)通过实际项目的分析、设计、编码、测试等工作,掌握用C语言来开发和维护软件。(2)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户使用手册。应当提交的文件:(1)课程设计学年论文。(2)课程设计附件(主要是源程序)。用C++语言解决串的查找和替换问题学生姓名:黄博指导老师:陈倩诒摘要本课程设计主要解决的在一篇英语文章中,在文章中找出所指定的单词,然后对所指定的单词进行替换,替换为另一个单词,再存盘的课程设计。先建立一个文件,然后从文件中读取字符串保存到数组中。从键盘输入被替换的单词,然后删除这个单词。从键盘中输入替换的单词,把它插入到被删除的单词的位置。然后把该字符串再写入到文件中。程序通过调试运行,初步实现了设计目标。关键词程序设计;C++;替换;字符串目录1.引言·······················································12.课程设计目的和要求·······································22.1课程设计目的···············································22.2课程设计要求···············································23.课程设计分析·············································33.1课程设计思路················································33.2课程设计要求函数分析········································33.3课程设计主要流程············································44.课程设计调试···············································65.课程设计总结···············································9参考文献·······················································10附录····························································11黄博《串的查找和替换》1引言数据结构是一门理论性强,思维抽象,难度较大的一门课程。是基础课专业课之间的桥梁。该课程的先行课时计算机基础,程序设计语言、离散数学等,后续课程有操作系统、编译原理、数据库原理、软件工程等。通过本门课程的学习,我们应该透彻的理解各种数据的特点,学会数据的组织方法和实现方法,并进一步培养良好的程序设计能力和解决实际问题的能力,而且该课程的研究方法对我们学生在校和离校后学习和工作有着重要的影响。[1]数据结构是计算机科学与技术的一门核心专业基础课程,在该专业课程中有着承上启下的作用,学习好数据结构对于提高理论认知水平和实践操作能力有重要的作用,学习数据结构的最终目的是为了获得解决求解问题的能力。对于现实世界的问题,应该从中抽象出一个适当的数学模型,该数学模型在计算机的用数构表示出来,然后在设计一个求数学模型的的算法,再进行编程调试,最后获得问题的解答。数据课程设计着眼培养我们实践能力,加强编程能力的培养。第1页黄博《串的查找和替换》2课程设计目的和要求2.1课程设计目的通过课程设计的题目练习,强化对所学知识的掌握及对问题分析和任务定义的理解,对题目做了相应的逻辑分析和数据结构的选择通过对任务的分析,为操作对象定义相应的数据结构,一过程化程序设计的思想原则划分各个模块,定义数据的抽象数据类型。分模块对题目进行设计,强化对C++语言的掌握和对数据结构选择及掌握。通过程序的编译掌握对程序的调试及思想,并且学习一些编程的技巧。养成良好的编程习惯。[2]以及让学生对书本的上的知识进行实践。算法和数据结构是计算机科学与技术专业综合的专业基础课。它不仅是计算机学科的核心课程,而且成为其他理工专业的热门选修课。它又是操作系统、编译原理、数据库原理、算法分析、人工智能、图像处理等专业课程的前导课。具有承上启下的作用。数据结构的研究不仅设计到计算机硬件的研究方面,而且与计算机软件研究有着密切的关系。计算机科学各领域都要用到数据构,该课程的目的就是介绍一些常用的数据结构,阐明数据结构的内在逻辑关系,讨论它们计算机内的储存表示,并结合各种典型它们在进行各种运算时的动态性质和实际的执行算法。2.2课程设计要求1.问题分析和任务的定义对问题的描述应避免具体的算法和涉及的数据结构,它是对要完成的任务明确的回答,强调是做什么,而不是怎么做。2.详细的设计及编码算法的描述与代码的编写。3.上机调试源程序的输入及代码的调试。第2页黄博《串的查找和替换》3课程设计分析3.1课程设计思路先建立一个文件,然后从文件中读取字符串保存到数组中。从键盘输入被替换的单词,然后删除这个单词。从键盘中输入替换的单词,把它插入到被删除的单词的位置。然后把该字符串再写入到文件中。计算机上的非数值处理的对象基本上上字符串数据,字符串一般简称为串。串(string)是由零个或多个字符组成的有限序列,一般记为s=`a1a2…an`(n大于零)。通常称字符在序列中的序号为该字符在串中的位置,子串在主串中的位置则以子串的第一个字符在主串中的位置来表示。当两个串的每个字符都相等时(串值相等),称这两个串是相等的。[3]在子串的查找定位过程中,分别利用计数指针j和k指示被替换串和替换串中当前正待比较的字符位置。所用算法的基本思想是:首先利用指针i来完成被替换串和替换串在文本中的遍历,从被替换串和替换串的第一个字符起进行比较,若相等则继续逐个比较后续字符;否则完成一次比较,指针i递增进行下一次的比较。以此类推,直至匹配成功[4]。3.2课程设计主要函数分析本设计所采用的数据结构charString[65535];//长度要大于输入文本文件的长度!charfindString[50];//输入的要查找的字符charreplaceString[50];//输入的替换后的string.程序中各部分功能函数:voidInitStr()/*从文件初始化数组*/;voidInputReplaceChar()/*输入要替换的字符串*/;intFindString()/*查找第一个出现要查找字符的下标*/;voidFindStrings()/*查看文章中共有多少个要查找的字符*/;voidInsert(charsource[],intindex,chartarget[])/*从指定的下标开始插入target数组第3页黄博《串的查找和替换》中的元素*/;voidReplace()/*将String中要替换的内容替换掉*/;voidSave()/*保存修改后的文章信息*/;voidMenu()/*程序主菜单*/。3.3课程设计主要流程首先利用标准库函数fopen()打开一个文件,然后从文件中读取字符串保存到数组中,完成文件的读入。其次,根据键盘输入的选择命令(数字1~4)程序调用不同功能模块来完成相应的操作。[5]程序中用户选择命令(数字1~4)设置:“1”:文本文件显示;“2”:子串查找;“3”:子串替换;“4”:退出整个程序。程序设计流程图如图3.1所示:开始结束命令输入“1”回车键返回菜单子串替换子串查找退出程序回车键返回菜单文本文件显示“4”“3”“2”回车键返回菜单是是是否是否否否图3.1设计流程图第4页黄博《串的查找和替换》程序运行后显示主菜单,提示用户根据需要选择不同的命令操作。程序根据键盘输入的选择命令(数字1~4)调用不同功能模块来完成相应的操作。如果用户输入的命令是“1”,主函数调用InitStr()函数从文件进行初始化数组,利用标准输入函数将该数组输出到标准输出上;如果用户输入的命令是“2”,主函数调用FindStrings()函数查找匹配的字符串并连同匹配的字符串个数一并输出到标准输出上;如果用户输入的命令是“3”,主函数调用Replace()函数,将String中要替换的内容替换掉;如果用户输入的命令是“4”,程序自动退出。第5页黄博《串的查找和替换》4课程设计调试程序的开发与调试均在MicrosoftVisualC++环境下进行。首先程序运行后显示程序的主菜单,主菜单命令选择设置“1”:文本文件显示;“2”:子串查找;“3”:子串替换;“4”:退出整个程序。程序根据用户输入的命令(数字1~4)进行相应的操作输入命令一后程序的运行结果:显示文本文件的内容。如图4.1图4.1程序命令一的运行结果输入命令二后程序的运行结果:选择命令二,进行字符串的查找测试。从图4.3中可以看到查找后的结果。图中显示出查找到的字符串getchar的数量为3个,并显示查找成功等信息。如图4.2图4.3第6页黄博《串的查找和替换》图4.2程序命令二字符串查找图4.3程序命令二字符串查找再次输入命令三后程序的运行结果:选择命令三,进行字符串的替换测试。从图4.4中可以看到替换后的结果。图中显示出被替换的字符串getchar和替换后的字符串charget,并显示替换成功等信息第7页黄博《串的查找和替换》图4.4程序命令三字符串替换图4.5程序命令三字符串替换再次输入命令一查看命令三是否真正替换成功:从图4.5中可以看到替换后的结果,鼠标箭头所指的方向看以看到原先文本文件(对比前面的程序测试图)中最后一行(当然,先前是查找到三个,这里只以最后一行容易观察到的来进行说明)的getchar()已经被替换成了charget(),说明程序替换成功,并将替换后的文本文件进行了保存。第8页黄博《串的查找和替换》5课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。数据结构是程序设计的基本算法,经过这次数据结构的课程设计对于实际应用数据结构有很大帮助,尤其是对于串的学习上。在数据结构课程的学习及其课程设计中要感谢陈老师的悉心教导,为我细心的指出错误。第9页黄博《串的查找和替换》参考文献[1]谭浩强.C++程序设计.北京:清华大学出版社.2004[2]王晓东.计算机算法与分析.北京:电子工业出版社.2006[3]徐孝凯.C++语言基础教程.北京:清华大学出版社.2002[4]9.EsakovJ,WeissT.DataStructures:AnAdvancedApproachUsingC.Prentice-Hall,Inc.,1989年[5]晋良颍.《数据结构》.人民邮电出版社.2002第10页黄博《串的查找和替换》附录:源程序:#includestdio.h#includestdlib.h#includestring.hFILE*fp;charString[65535];//
本文标题:串的查找和替换数据结构课程设计报告1
链接地址:https://www.777doc.com/doc-5701120 .html