串的查找与替换(word文档良心出品)_第1页
串的查找与替换(word文档良心出品)_第2页
串的查找与替换(word文档良心出品)_第3页
串的查找与替换(word文档良心出品)_第4页
串的查找与替换(word文档良心出品)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中北大学数据结构课程设计说明书学生姓名学号:学院:专业:题目:串的查找与替换指导教师尹四清2011年12月30日1. 设计目的数据结构 课程主要介绍最常用的数据结构, 阐明各种数据结构内在的逻辑关系, 讨论其在计算机中的存储表示, 以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。进行数据结构课程设计要达到以下目的:了解并掌握数据结构与算法的设计方法, 具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作

2、者所应具备的科学的工作方法和作风。2. 设计面内容与要求设计内容:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。设计要求:(1) 符合课题要求,实现相应功能;(2) 操作方便易行;(3) 注意程序的实用性、安全性;3. 本设计所采用的数据结构3.1 数组数组在编程应用时调用很方便随意,但在更改数组时比较麻烦必须调用数组中的所有元素。char keyWordsSIZE;char copyWordsSIZE;char strOneMAXLEN;char strTwoMAXLEN;3.2 串的匹配if (keyWords0 = strOnei)if

3、(keyWordsj != strOnecountFlag+)4功能模块详细设计4.1 详细设计思想a)需求分析打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。b)概要设计程序头设计对程序作简单介绍以及输出程序制作人的基本信息。main()printf("nnnttt数据结构课程设计n");11printf("nttt 题目:串的查找与替换n");printf("nttt 专业:机电一体化软件开发与应用 n");printf("nttt学号:0921040836n")

4、;printf("nttt姓名:张胜东");printf("nt 程序作用:打开一篇英语作文,在该文章中找出所有给定的单词,然后对nt 所有给定的单词替换为另一个单词再存盘。 ");printf("n*n");主函数 void main()通过 for 循环对字符串进行匹配, 找到匹配的单词然后将copy 的单词字符放入 strTwo 数组中,不匹配的单词也放入数组 strTwo 中完成替换,最后把strTwo 中的字符放回文件中完成操作。C)设计思想串的查找与替换要实现的功能是: 打开一篇英文文章, 在该文章中找出所有给定的单词,然

5、后对所有给定的单词替换为另外一个单词,再存盘。首先实现程序比较简单的功能,即:输入要替换的单词和给定单词gets(keyWords); gets(copyWords) 。然后实现程序打开文件的功能。最后编写最核心的替换功能,首先用关键字来匹配要查找的单词,第一个单词匹配上的话再判断这个关键字在不在单词的首字母上, 否则不匹配, 主要是要实现替换单词的功能不替换其他单词中的字符串。 然后匹配第二个字母, 这样一次类推的判断。不匹配的单词直接放入 strTwo 数组中,匹配的单词先替换然后再放入 strTwo 数组中 。4.2 核心代码打开文件if (fp = fopen("filena

6、me", "r") =NULL )printf(" 文件打开失败!n");exit(0);查找和替换单词while (!feof(fp)/* 读文件 */strOnecountOne+ = fgetc(fp);/* 这是从指定稳中取得一个字符strOnecountOne+ = fgets(fp); 这是从指定文章中取得一个字符串 */countOne-;/* 减去最后一个文件结束字符*/for (i=0; i<countOne; i+)if (keyWords0 = strOnei)if (' ' = strOnei-1)

7、 | ('n' = strOnei-1) |(0 = i)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 =

8、countFlag-1;for (j=0; copyWordsj!='0' j+) strTwocountTwo+ = copyWordsj;else/* 另外 */strTwocountTwo+ = strOnei;else/* 另外 */strTwocountTwo+ = strOnei;else/* 另外 */strTwocountTwo+ = strOnei;)4.3调试分析图1程序开始的界面网 XAa ppi -catiQnVMicros&ft Vkual Studi:QMyPrajectspfcS?HDebu33=eMe敝据结枸课程设计题目:串的查找与替拗专

9、此机电一体化软件开发与应用学号.092104B83t姓名:张胜东程序作用:打开一篇英语作文.在谈文宣中找出所有给定的单词,然后对 所有给定的单词替换为另一个单词再存盘0谙输人要皆我的单记:0 清新士硬杏神单旦后二are睛输入要打开的文件名,.输入要查找和替换的单词3输入要打开的文件名5.课程设计心得及存在问题心得:通过这次做课程设计,发现了学习中的很多问题,平时学习的东西在 做起来时有很大的困难,独立构思一个程序很难,不像平时看程序一样简单。想 出来程序结构后,就一个简单的打开文件就费了好大的劲, 运行几次都出现了异 常,最后找学长请教才学会使用 exit ()命令。核心程序就更复杂了,做了很

10、 久都没头绪,最后在一位学长的辅助下完成了核心程序。存在问题:刚开始实现的功能是先输入要查找和替换的单词,再输入要打开 的文件,做完程序后想把打开文件的程序放到前面,可换位置后就一直出错。如"C:AppIicMianMicrcsoft Visual挑群 MkDebtigl张脖乐qxe"匏据结构课程设计题目二串的查找与替检专业:机由一体化软件开发与应用学号:0921046836程序作用二打开一藕巷艘东在该文宣中找出所有给定的单词,然后对 第有给定的单词替描为另一个单词再存盘,* Ml M X * Hi X W Mil 请输入要查找的单词!/ 量输入要替换的星调;样 请辎人要打

11、开的文件名:.5.源程序#include <stdio.h>#include <stdlib.h>#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 st

12、rTwoMAXLEN; /*用于标记匹配单词*/用于检查匹配计数*/记录未改文章字符个数*/记录改后文章字符个数*/查找单词*/替换单词*/将未改文章的所有字符储存在里面*/char filename20; /*输入的文件名的字符个数*/printf("nnnttt数据结构课程设计n");printf("nttt 题目:串的查找与替换n");printf("nttt 专业:机电一体化软件开发与应用 n");printf("nttt学号:0921040836n");printf("nttt姓名:张胜东&qu

13、ot;);printf("nt 程序作用:打开一篇英语作文,在该文章中找出所有给定的单词,然后对nt所有给定的单词替换为另一个单词再存盘。 ");将改后文章的所有字符储存在里面*/printf("n*n");FILE *fp;printf("请输入要查找的单词: ");gets(keyWords);printf("请输入要替换的单词: ");gets(copyWords);printf(" 请输入要打开的文件名: ");scanf("%s",filename);if (fp

14、= fopen(filename, "r") =NULL )/*读文件 , 前边的就是输入的文件名 , 后边是指只读read */printf(" 文件打开失败!n");exit(0);while (!feof(fp)/* 读文件 */strOnecountOne+ = fgetc(fp);/* 这是从指定稳中取得一个字符strOnecountOne+ = fgets(fp); 这是从指定文章中取得一个字符串 */countOne-;/* 减去最后一个文件结束字符*/for (i=0; i<countOne; i+)if (keyWords0 =

15、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/* 另外 */strTw

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论