串的查找和替换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
(数据结构)
班级
姓名
学号
指导教师
二○一一年一月二十日
课程设计任务书及成绩评定
课题名称串的查找和替换
Ⅰ、题目的目的和要求:
1、设计目的
巩固和加深对数据结构的理解,通过上机实验、调试程序,加深对课本知识的理解,最终使学生能够熟练应用数据结构的知识写程序。
(1)通过本课程的学习,能熟练掌握几种基本数据结构的基本操作。
(2)能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。
2、设计题目要求:
设计内容:
问题描述:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。
内容要求:
1.根据题目要求进行需求分析,分析出该项任务的主要功能和设计重点。
2.根据需求分析的内容划分模块
3.利用VC++软件进行程序设计并调试通过
4.写出课程设计说明书
Ⅱ、设计进度及完成情况
Ⅲ、主要参考文献及资料
[1] 严蔚敏数据结构(C语言版)清华大学出版社 1999
[2] 严蔚敏数据结构题集(C语言版)清华大学出版社 1999
[3] 谭浩强C语言程序设计清华大学出版社
[4] 与所用编程环境相配套的C语言或C++相关的资料
Ⅳ、成绩评定:
设计成绩:(教师填写)
指导老师:(签字)
二○一一年一月二十一日
目录
第一章概述 (1)
第二章系统分析 (2)
第三章概要设计 (3)
第四章详细设计 (4)
第五章运行与测试 (8)
第六章总结与心得 (11)
参考文献 (12)
第一章概述
课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。《数据结构》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。
数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
在这次的课程设计中我选择的题目是串的查找和替换。该课程设计实现了对文件的查找和替换。我采用的数据结构是字符串数组,这样操作起来比较方便,思路比较清晰。而如果采用指针则容易造成思路混乱,增加出错的几率。该课程设计可以实现对已打开文件的查找和替换,操作完毕关闭程序后,文件的内容为修改后的内容,实用性比较强。
第二章系统分析
一.功能分析
该课程设计的功能主要实现串的查找与替换,首先打开一个文档,对该文档进行查找和替换,该课程设计的文档中要包含替换后对文件保存的函数。以免造成替换后文件数据的丢失。
功能流程图:
二.主要函数及其功能
initst r( )从文件初始化数组
inputchatihuan( )从键盘输入要替换的单词
charu(char source[],int index,char dest[])把要替换的单词插入到被替换单词的位置tihuans( )调用函数是实现替换
第三章概要设计
1.数据结构的设计
本设计所采用的数据结构
数组
str[500]保存从文件中读取的字符
chazhao[15]保存被替换的单词
tihuan[15]保存要替换的单词
采用数组操作便于数据分析,思路清晰,便于操作。
2.算法的设计
(1)课程设计中首先要实现初始化数组。
(2)为了能够统计要查找的字符出现的次数,需要建立能够查找第一个出现要查找字符的下标的函数和要查看文章中共有多少个要查找的字符的函数。
(3)建立能够输入要替换的字符串的函数,该函数可以显示要被替换的字符串和替换的字符串,这样可使思路更为清晰。
(4)建立能够替换字符串的函数,实现字符串替换的功能。
(5)建立函数能够实现替换后的字符串得以保存。
第四章详细设计
1、设计每个成员函数;
/*数据结构:串的查找和替换
作者:赵延良*/
#in clude
#include
#include
#include
FILE * fp;
char str[500];
char chazhao[15];
char tihuan[15];
/*从文件初始化数组*/
void initstr()
{
int i=0;
fp=fopen("string.txt","rt");/*重新打开文件*/
if(fp!=NULL)
{
do
{
fscanf(fp,"%c",&str[i]);
i++;
}while(!feof(fp)) ;
fclose(fp);
}
}
/*查找第一个出现要查找字符的下标*/
int chazhaostring()
{
int i,j,k;
for(i=0;i { j=i;k=0; while((str[j]==chazhao[k])&&(chazhao[k]!='\0')&&(str[j]!='\0')) { j++;k++; } if(chazhao[k]=='\0') return i; } return -1;