




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计串的查找与替换一、 问题陈述:二、 需求分析:三、 概要设计和详细设计:四、 程序代码:五、 结果与测试:六、体会与总结:一、问题陈述:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。设计要求:(1) 符合课题要求,实现相应功能;(2) 操作方便易行;(3) 注意程序的实用性、安全性;二、需求分析: 串的查找与替换要实现的功能是:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。 首先实现程序比较简单的功能,即:输入要替换的单词和给定单词gets(keyWords); gets(copyWords)。 然后实现程序打开文件的功能。 最后编写最核心的替换功能,首先用关键字来匹配要查找的单词,第一个单词匹配上的话再判断这个关键字在不在单词的首字母上,否则不匹配,主要是要实现替换单词的功能不替换其他单词中的字符串。然后匹配第二个字母,这样一次类推的判断。不匹配的单词直接放入strTwo数组中,匹配的单词先替换然后再放入strTwo数组中。三、概要设计和详细设计: 程序头设计对程序作简单介绍以及输出程序制作人的基本信息。main() printf(nnnttt数据结构课程设计n); printf(nttt题目:串的查找与替换n); printf(nttt专业:信息管理与信息系统n); printf(nttt学号:2013143129n); printf(nttt姓名:张朝翔);printf(nt程序作用:打开一篇英语作文,在该文章中找出所有给定的单词,然后对nt所有给定的单词替换为另一个单词再存盘。); printf(n*n); 主函数void main()通过for循环对字符串进行匹配,找到匹配的单词然后将copy的单词字符放入strTwo数组中,不匹配的单词也放入数组strTwo中完成替换,最后把strTwo中的字符放回文件中完成操作。5程序代码:#include #include #define SIZE 20 /* 查找单词字符和输入替换单词少于20 */#define MAXLEN 10000 /* 文章字符不大于10000 */void main()int i, j;int flag; /* 用于标记匹配单词 */int countFlag; /* 用于检查匹配计数 */int countOne = 0; /* 记录未改文章字符个数 */int countTwo = 0; /* 记录改后文章字符个数 */char keyWordsSIZE; /* 查找单词 */char copyWordsSIZE;/* 替换单词 */char strOneMAXLEN; /* 将未改文章的所有字符储存在里面 */char strTwoMAXLEN; /* 将改后文章的所有字符储存在里面 */char filename20; /*输入的文件名的字符个数*/ printf(nnnttt数据结构课程设计n); printf(nttt题目:串的查找与替换n); printf(nttt专业:信息管理与信息系统n); printf(nttt学号:2013143129n); printf(nttt姓名:张朝翔); printf(nt程序作用:打开一篇英语作文,在该文章中找出所有给定的单词,然后对nt所有给定的单词替换为另一个单词再存盘。); printf(n*n);FILE *fp;printf(请输入要查找的单词: );gets(keyWords);printf(请输入要替换的单词: );gets(copyWords);printf(请输入要打开的文件名:);scanf(%s,filename);if (fp = fopen(filename, r) =NULL )/* 读文件,前边的就是输入的文件名,后边是指只读read */printf(文件打开失败!n); exit(0);while (!feof(fp)/* 读文件 */strOnecountOne+ = fgetc(fp);/*这是从指定稳中取得一个字符 strOnecountOne+ = fgets(fp);这是从指定文章中取得一个字符串*/countOne-;/* 减去最后一个文件结束字符 */for (i=0; icountOne; i+)if (keyWords0 = strOnei)/* 判断查找单词第一个字符是否匹配 */if ( = strOnei-1) | (n = strOnei-1) | (0 = i)/* 1.检查单词前的一个字符 */flag = 1;countFlag = i + 1; for (j=1; keyWordsj!=0; j+) if (keyWordsj != strOnecountFlag+)/* 是否匹配 */ flag = 0;break; if ( = strOnecountFlag) | (n = strOnecountFlag) | (EOF = strOnecountFlag)/* 2.检查单词后的一个字符 */if (1 = flag)/* 若匹配,则进行拷贝 */ i = countFlag-1;for (j=0; copyWordsj!=0; j+) strTwocountTwo+ = copyWordsj; else/* 另外 */strTwocountTwo+ = strOnei;else/* 另外 */strTwocountTwo+ = strOnei;else/* 另外 */strTwocountTwo+ = strOnei; fclose(fp); if (fp = fopen(filename, w) =NULL )/* 写入文件 */ printf(文件打开失败!n); exit(1); for (i=0; icountTwo; i+)/* 写入文件 */ fputc(strTwoi, fp); fclose(fp);五、结果与测试:图1 程序开始的界面图2 输入要查找和替换的单词图3 输入要打开的文件名六、体会与总结:心得:通过这次做课程设计,发现了学习中的很多问题,平时学习
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贷款公司借款合同模板
- 2025 年农业基础设施建设项目合同书
- 有了爱就有了一切爱的作文(13篇)
- 企业园区智能物业服务协议
- 人才招聘表-公司类型一
- 红楼梦第32回课件
- 红楼梦填空课件
- 诗歌的演变历程
- 2025年互联网广告精准投放算法在智能安防行业的应用效果研究报告
- 2025征兵政策试题及答案
- 通信工程用电登高等高风险作业施工安全操作
- 邮政储汇业务员高级技师理论知识试卷
- 四川雅安市人力资源和社会保障局招考聘用编外工作人员【共500题附答案解析】模拟检测试卷
- 护理服务规范整改措施(共15篇)
- 幼儿园教育活动设计与实践 张琳主编 PPT
- 建筑施工过程中成品保护施工方案
- 西师版三年级上册数学全册教案(完整)
- 整理版第三届宁波国际海报双年展2004获奖作品选
- 关键过程(工序)和特殊过程(工序)管理办法
- 武术校本课程武术基本功
- 机械制造及自动化专业讲座
评论
0/150
提交评论