还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
中北大学数据结构课程设计说明书学号:学生姓名:学院:专业:题目:串的查找与替换指导教师年月日20111230strOne[countOne++]=fgets fp;这是从指定文章中取得一个字符串*/countOne-;/*减去最后一个文件结束字符*/for i=0;icountOne;i++if keyWords
[0]=strOne[i]/*判断查找单词第一个字符是否匹配*/if==str0ne[i-l]||\n==str0ne[i-l]||0=i/*
1.检查单词前的一个字符*/{flag=1;countFlag=i+1;for j=l;keyWords[j]!=,\0,;j++{if keyWords[j]!=strOne[countFlag++]/*是否匹配*/{flag=0;break;if C==strOne[countFlag]||n==strOne[countFlag]||EOF==strOne[countFlag]/*
2.检杳单词后的一个字符*/if1==flag/*若匹配,则进行拷贝*1i=countFlag-1;for j=0;copyWords[j]!=\0;j++{strTwo[countTwo++]=copyWords[j];else/*另外*/|strTwo[countTwo++]=strOne[i];}else/*另外*/{strTwo[countTwo++]=strOne[i];}else/*另外*/strTwo[countTwo++]=strOne[i];}fclose fp;if fp=f openfilename,w==NULL/*写入文件*/printf〃文件打开失败!\n〃;exit1;for i=0;icountTwo;i++/*写入文件*/fputcstrTwo[i],fp;fclose fp;.设计目的1■《数据结构》课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论进行数据结构课程设计要达到以下目的■了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;■初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;■提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风设计面内容与要求
2.设计内容打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘设计要求1符合课题要求,实现相应功能;2操作方便易行;3注意程序的实用性、安全性;本设计所采用的数据结构
3.数组
3.1数组在编程应用时调用很方便随意,但在更改数组时比较麻烦必须调用数组中的所有元素char keyWords[SIZE];char copyWords[SIZE];char strOne[MAXLEN];char strTwo[MAXLEN];串的匹配
3.2if(keyWords
[0]==str0ne[i])if(keyWords[j]!=strOne[countFlag++])功能模块详细设计
4.详细设计思想
4.1)需求分析a打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘程序头设计对程序作简单介绍以及输出程序制作人的基本信息main(){printf(〃\n\n\n\t\t\t数据结构课程设计\n〃);printf(\n\t\t\t题目:串的查找与替换\n);printf(〃\n\t\t\t专业机电一体化软件开发与应用\n);printf(,z\n\t\t\t学号0921040836\n);printf(\n\t\t\t姓名张胜东”);printf(W程序作用打开一篇英语作文,在该文章中找出所有给定的单词,然后对\n\t所有给定的单词替换为另一个单词再存盘〃);printf(〃\n************************************\n);主函数void mainO通过for循环对字符串进行匹配,找到匹配的单词然后将copy的单词字符放入strTwo数组中,不匹配的单词也放入数组strTwo中完成替换,最后把strTwo中的字符放回文件中完成操作)设计思想C串的查找与替换要实现的功能是打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘首先实现程序比较简单的功能,即输入要替换的单词和给定单词gets keywords;gets copyWords然后实现程序打开文件的功能o最后编写最核心的替换功能,首先用关键字来匹配要查找的单词,第一个单词匹配上的话再判断这个关键字在不在单词的首字母上,否则不匹配,主要是要实现替换单词的功能不替换其他单词中的字符串然后匹配第二个字母,这样一次类推的判断不匹配的单词直接放入strTwo数组中,匹配的单词先替换然后再放入strTwo数组中>打开文件if fp=fopenfilename”,〃r〃==NULL{printf文件打开失败!\n;exit0;>查找和替换单词while!feoffp/*读文件*/{strOne[count0ne++]=fgetcfp;/*这是从指定稳中取得一个字符strOne[count0ne++]=fgets fp;这是从指定文章中取得一个字符串*/countOne-;/*减去最后一个文件结束字符*/for i=0;i<count0ne;i++{if keyWords
[0]==str0ne[i]if==str0ne[i-l]||\n==strOne[i-l]|0==i{flag=1;countFlag=i+1;for j=l;keyWords[j]!=,\0,;j++{if keyWords[j]!=strOne[countFlag++]/*是否匹配*/{flag=0;break;}if--strOne[countFlag]||\n==strOne[countFlag]||EOF==strOne[countFlag]/*
2.检查单词后的一个字符*/{if1==flag/*若匹配,则进行拷贝*/{i=countFlag-1;for j=0;copyWords[j]!=,\05;j++{strTwo[countTwo++]=copyWords[j];}else/*另外*/|strTwo[countTwo++]=strOne[i];else/*另外*/strTwo[countTwo++]=strOne[i];}else/*另外*/strTwo[countTwo++]=strOne[i];调试分析
4.3国B C:\appiication\Microsoft VisualStudio\MyProjects\张胜东\Debug课胜东.exe照数据结构课程设计题目串的查找与替换专业机电一体化软件开发与应用学号0921040836姓名张胜东程序作用打开一篇英语作文,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另一个单词再存盘谙揄人要查找的单词-图程序开始的界面1QB C:\application\Microsoft VisualStudio\MyProjects张胜东\DebugEK胜东.exe数据结构课程设计专业:机电一体化软件开发与应用学号:0921040836题目串的查找与替换姓名:张胜东程序作用打开一篇英语作文,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另一个单词再存盘请输入要查找的单词请输is入重替输的单词请输入要打开的文件名.输入要查找和替换的单词QB C:\application\Microsoft VisualStudio\MyProjects\feEte{\Debug\3RK^E.exe数据结构课程设计题目:串的查找与替换专业:机电一体化软件开发与应用学号:0921040836姓名:张胜东程序作用打开一篇英语作文,在该文章中找出所有给定的单词,然后,所有给定的单词替换为另一个单词再存盘KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK,请输入要查找的单词is请输入要替换的单词请输入are要打开的文件名dong.输入要打开的文件名3MHO2课程设计心得及存在问题
5.心得通过这次做课程设计,发现了学习中的很多问题,平时学习的东西在做起来时有很大的困难,独立构思一个程序很难,不像平时看程序一样简单想出来程序结构后,就一个简单的打开文件就费了好大的劲,运行几次都出现了异常,最后找学长请教才学会使用exit命令核心程序就更复杂了,做了很久都没头绪,最后在一位学长的辅助下完成了核心程序存在问题刚开始实现的功能是先输入要查找和替换的单词,再输入要打开的文件,做完程序后想把打开文件的程序放到前面,可换位置后就一直出错源程序□
5.ftinclude stdio.hftinclude stdlib.hftdefine SIZE20/*查找单词字符和输入替换单词少于20*/^define MAXLEN10000/*文章字符不大于10000*/void mainint i,j;int flag;/*用于标记匹配单词*/int countFlag;/*用于检查匹配计数*/int countOne=0;/*记录未改文章字符个数*/int countTwo=0;/*记录改后文章字符个数*//*查找单词*/char keyWords[SIZE];char copyWords[SIZE];/*替换单词*/char strOne[MAXLEN];/*将未改文章的所有字符储存在里面char strTwo[MAXLEN];A将改后文章的所有字符储存在里面char filename
[20];/*输入的文件名的字符个数*/printf(〃\n\n\n\t\t\t数据结构课程设计\n);printf(\n\t\t\t题目串的查找与替换\n);printf(\n\t\t\t专业机电一体化软件开发与应用\n);printf(,z\n\t\t\t学号0921040836\n,/);printf(〃\n\t\t\t姓名:张胜东);printf(〃\n\t程序作用打开一篇英语作文,在该文章中找出所有给定的单词,然后对\n\t所有给定的单词替换为另一个单词再存盘〃);-4-\vx slzslzIJ[I\II^TS✓TS^TS#7%^TXXTVZT%#TS#TX^TXXT%ZT%ZT%#TS^TS^TS^TS✓TS^TS#7%^TXXTS ZT%#TS#TX#7X^TXXT%ZT%ZT%#TS^TS^TX✓TS✓T%✓1XTSXTXXTXXTSTS^TSXTXXTXXTXTS✓1TSX7XXTSXTXZTS\v\i■✓T✓TsX7XX7X^TX✓!✓!✓TX✓TXX7XX*XXTX✓TS^TX^7XX7XXIS✓TS\IIIFILE*fp;printf(〃请输入要查找的单词〃);gets(keyWords);printf(〃请输入要替换的单词〃);gets(copyWords);printf(〃请输入要打开的文件名〃);scanf(〃%s〃,filename);if fp=fopenfilename,z,rz/==NULL/*读文件,前边的就是输入的文件名,后边是指只读read*/printf文件打开失败!\n;exit0;while!feoffp/*读文件*/strOne[count0ne++]=fgetcfp;/*这是从指定稳中取得一个字符。