串的查找和替换Word文档格式.docx
- 文档编号:19485324
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:15
- 大小:60.82KB
串的查找和替换Word文档格式.docx
《串的查找和替换Word文档格式.docx》由会员分享,可在线阅读,更多相关《串的查找和替换Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
环境
PIV以上计算机,WindowXP以上操作系统;
编程语言不限。
任务
要求
要求学生结合课程体系的实际需求及实践能力、实验条件等外部因素,完成集合运算课题的设计任务。
课题功能:
功能:
打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。
任务要求:
1)界面友好,函数功能要划分好;
2)总体设计应画流程图;
3)程序要加必要的注释。
4)学生完成设计任务后,按要求提交算法设计报告,设计报告规范化,并能够反映算法设计的实际内容。
工作进度计划
序号
起止时间
工作内容
1
1~6周
制定课程设计计划,编写课程设计指导书
2
13~14周
下发任务,学生选题,分组,查阅资料
3
18周
上机系统调试,课程设计报告,课程设计答辩
4
上交报告电子及打印文档
指导教师:
2015年1月5日
课程设计摘要(题目)…………………………………………………03
1.引言………………………………………………………………03
2.需求分析…………………………………………………………04
3程序源代码………………………………………………………13
4.测试结果…………………………………………………………16
5.设计体会…………………………………………………………18
参考文献……………………………………………………………20
1.设计内容和要求
设计内容:
打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。
设计要求:
(1)符合课题要求,实现相应功能;
(2)操作方便易行;
(3)注意程序的实用性、安全性;
2.本设计所采用的数据结构
3.1数组
数组在编程应用时调用很方便随意,但在更改数组时比较麻烦必须调用数组中的所有元素。
charkeyWords[SIZE];
charcopyWords[SIZE];
charstrOne[MAXLEN];
charstrTwo[MAXLEN];
3.2串的匹配
if(keyWords[0]==strOne[i])
if(keyWords[j]!
=strOne[countFlag++])
3.功能模块详细设计
3.1详细设计思想
a)需求分析
b)概要设计
Ø
程序头设计
对程序作简单介绍以及输出程序制作人的基本信息。
main()
{
printf("
\n\n\n\t\t\t数据结构课程设计\n"
);
\n\t\t\t题目:
串的查找与替换\n"
\n\t\t\t专业:
计算机科学与技术\n"
\n\t\t\t学号:
\n"
\n\t\t\t姓名:
高苏生"
\n\t程序作用:
打开一篇英语作文,在该文章中找出所有给定的单词,然后对\n\t所有给定的单词替换为另一个单词再存盘。
"
\n************************************\n"
}
主函数voidmain()
通过for循环对字符串进行匹配,找到匹配的单词然后将copy的单词字符放入strTwo数组中,不匹配的单词也放入数组strTwo中完成替换,最后把strTwo中的字符放回文件中完成操作。
C)设计思想
串的查找与替换要实现的功能是:
首先实现程序比较简单的功能,即:
输入要替换的单词和给定单词gets(keyWords);
gets(copyWords)。
然后实现程序打开文件的功能。
最后编写最核心的替换功能,首先用关键字来匹配要查找的单词,第一个单词匹配上的话再判断这个关键字在不在单词的首字母上,否则不匹配,主要是要实现替换单词的功能不替换其他单词中的字符串。
然后匹配第二个字母,这样一次类推的判断。
不匹配的单词直接放入strTwo数组中,匹配的单词先替换然后再放入strTwo数组中。
D)流程图
3.2核心代码
打开文件
if((fp=fopen("
filename"
"
r"
))==NULL)
{
printf("
文件打开失败!
exit(0);
}
查找和替换单词
while(!
feof(fp))/*读文件*/
strOne[countOne++]=fgetc(fp);
/*这是从指定稳中取得一个字符strOne[countOne++]=fgets(fp);
这是从指定文章中取得一个字符串*/
countOne--;
/*减去最后一个文件结束字符*/
for(i=0;
i<
countOne;
i++)
{
if(keyWords[0]==strOne[i])
{
if(('
'
==strOne[i-1])||('
\n'
==strOne[i-1])||(0==i))
{
flag=1;
countFlag=i+1;
for(j=1;
keyWords[j]!
='
\0'
;
j++)
{
if(keyWords[j]!
=strOne[countFlag++])/*是否匹配*/
{
flag=0;
break;
}
}
if(('
==strOne[countFlag])||('
==strOne[countFlag])||(EOF==strOne[countFlag]))/*2.检查单词后的一个字符*/
{
if(1==flag)/*若匹配,则进行拷贝*/
i=countFlag-1;
for(j=0;
copyWords[j]!
{
strTwo[countTwo++]=copyWords[j];
}
else/*另外*/
strTwo[countTwo++]=strOne[i];
}
}
else/*另外*/
strTwo[countTwo++]=strOne[i];
}
else/*另外*/
strTwo[countTwo++]=strOne[i];
}
3.3调试分析
1开始执行
2.调试程序
4.课程设计心得及存在问题
心得:
通过这次做课程设计,发现了学习中的很多问题,平时学习的东西在做起来时有很大的困难,独立构思一个程序很难,不像平时看程序一样简单。
想出来程序结构后,就一个简单的打开文件就费了好大的劲,运行几次都出现了异常,最后找学长请教才学会使用exit()命令。
核心程序就更复杂了,做了很久都没头绪,最后在一位学长的辅助下完成了核心程序。
存在问题:
刚开始实现的功能是先输入要查找和替换的单词,再输入要打开的文件,做完程序后想把打开文件的程序放到前面,可换位置后就一直出错。
5.源程序
#include<
stdio.h>
stdlib.h>
#defineSIZE20/*查找单词字符和输入替换单词少于20*/
#defineMAXLEN10000/*文章字符不大于10000*/
voidmain()
inti,j;
intflag;
/*用于标记匹配单词*/
intcountFlag;
/*用于检查匹配计数*/
intcountOne=0;
/*记录未改文章字符个数*/
intcountTwo=0;
/*记录改后文章字符个数*/
charkeyWords[SIZE];
/*查找单词*/
charcopyWords[SIZE];
/*替换单词*/
charstrOne[MAXLEN];
/*将未改文章的所有字符储存在里面*/
charstrTwo[MAXLEN];
/*将改后文章的所有字符储存在里面*/
charfilename[20];
/*输入的文件名的字符个数*/
{
\n******************************************************************************\n"
FILE*fp;
请输入要查找的单词:
"
gets(keyWords);
请输入要替换的单词:
gets(copyWords);
请输入要打开的文件名:
scanf("
%s"
filename);
if((fp=fopen(filename,"
))==NULL)/*读文件,前边的就是输入的文件名,后边是指只读read*/
while(!
if(keyWords[0]==strOne[i])/*判断查找单词第一个字符是否匹配*/
if(('
==strOne[i-1])||(0==i))/*1.检查单词前的一个字符*/
if(('
fclose(fp);
if((fp=fopen("
w"
))==NULL)/*写入文件*/
exit
(1);
for(i=0;
countTwo;
i++)/*写入文件*/
fputc(strTwo[i],fp);
}
参考文献
【1】严蔚敏,吴伟民数据结构(C语言版)清华大学出版社
【2】谭浩强C程序设计(第三版)清华大学出版社
【3】胡学钢.数据结构算法设计指导[M].北京:
清华大学出版社,1999
【4】罗宇等.数据结构[M].北京:
北京邮电大学出版社,2003
指导教师评语
学号
姓名
李克勤
班级
计算机11112
选题
哈夫曼树应用
评价内容
权重(%)
得分
考勤记录、学习态度、工作作风与表现。
5
自学情况:
上网检索机时数、文献阅读情况(笔记)。
10
论文选题是否先进,是否具有前沿性或前瞻性。
成果验收:
是否完成设计任务;
能否运行、可操作性如何等。
20
报告的格式规范程度、是否图文并茂、语言规范及流畅程度;
主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;
是否提出了自己的独到见解。
30
6
文献引用是否合理、充分、真实。
7
答辩情况:
自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。
25
合计
指导教师(签章):
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 查找 替换