数据结构课程设计.docx

上传人:b****5 文档编号:12123916 上传时间:2023-04-17 格式:DOCX 页数:12 大小:170.23KB
下载 相关 举报
数据结构课程设计.docx_第1页
第1页 / 共12页
数据结构课程设计.docx_第2页
第2页 / 共12页
数据结构课程设计.docx_第3页
第3页 / 共12页
数据结构课程设计.docx_第4页
第4页 / 共12页
数据结构课程设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据结构课程设计.docx

《数据结构课程设计.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计.docx(12页珍藏版)》请在冰豆网上搜索。

数据结构课程设计.docx

数据结构课程设计

 

数据结构课程设计

题目:

串的查找与替换

学院:

信息科学技术学院

目录

 

一、设计任务书..............................1

二、课程设计题目:

串的查找和替换............1

三、程序功能简介............................1

四、主体内容................................1

五、程序运行测试............................5

六、心得体会................................7

七、附录....................................8

一、设计任务书

1、设计目的

(1)学习和巩固数据结构的基本知识。

(2)充分体会在程序设计中数据的重要作用,学会在程序设计中运用数据结构的相关知识解决问题。

2、设计基本要求

(1)符合课程设计题要求,实现相应功能;

(2)要求界面友好美观,操作方便易行;

(3)注意程序的实用性、安全性;

(4)随时记录设计情况(备查,也为编写设计说明书作好准备);

(5)设计成果:

设计说明书一份(附录:

设计说明书格式及要求);源程序(能编译成可执行文件并能正常运行)。

3、设计组织方法

(1)分组选题:

每组一个课程设计题,成员两人,设组长一名,负责该组设计工作的协调、分工等。

(2)设计过程:

1)按组讨论、确定设计方案,确定程序模块,并进行明确分工;

2)各人分别完成自己的设计任务,编写源程序,并调试好;

3)程序汇总、编译。

4、设计时间

2011—2012学年第一学期:

第18-20周,共计3周

二、课程设计题目:

串的查找和替换

问题描述:

打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。

三、程序功能简介

该课程设计的功能主要实现串的查找与替换,首先打开一个文档,对该文档进行查找和替换,该课程设计的文档中要包含替换后对文件保存的函数。

以免造成替换后文件数据的丢失。

四、主体内容

1、设计分析

(1)主要函数及其功能

initstr()从文件初始化数组

inputchatihuan()从键盘输入要替换的单词

charu(charsource[],intindex,chardest[])把要替换的单词插入到被替换单词的位置tihuans()调用函数是实现替换

(2)数据结构的设计

本设计所采用的数据结构

数组

str[500]保存从文件中读取的字符

chazhao[15]保存被替换的单词

tihuan[15]保存要替换的单词

采用数组操作便于数据分析,思路清晰,便于操作。

(3)算法的设计

a.课程设计中首先要实现初始化数组。

b.为了能够统计要查找的字符出现的次数,需要建立能够查找第一个出现要查找字符的下标的函数和要查看文章中共有多少个要查找的字符的函数。

c.建立能够输入要替换的字符串的函数,该函数可以显示要被替换的字符串和替换的字符串,这样可使思路更为清晰。

d.建立能够替换字符串的函数,实现字符串替换的功能。

e.建立函数能够实现替换后的字符串得以保存。

2、程序说明

#include

#include

#include/*字符串系统函数*/

FILE*fp;/*声明fp是指针,用来指向FILE类型的对象*/

charstr[10000];/*定义一个字符型数组*/

charchazhao[1000];

chartihuan[1000];

voidinitstr()/*从文件初始化数组*/

{

inti=0;/*定义变量*/

fp=fopen("string.txt","r");/*重新打开文件*/

while(!

feof(fp))/*循环语句,到达文件尾时返回真值*/

{

str[i]=fgetc(fp);/*从文件中读取字符*/

i++;

}

str[--i]='\0';/*循环结束*/

fclose(fp);/*关闭文件*/

}

voidinputchatihuan()/*输入要替换的字符串*/

{printf("输入要查找的单词:

\n");/*输出查找提示语*/

scanf("%s",chazhao);/*输入*/

printf("输入要替换的单词:

\n");/*输出替换提示语*/

scanf("%s",tihuan);/*输入*/

getchar();/*回车返回*/

}

/*查找第一个出现要查找字符的下标*/

intchazhaostring()/*定义函数*/

{

inti,j,k;/*定义变量i,j,k*/

for(i=0;(size_t)i

{j=i;k=0;

while((str[j]==chazhao[k])&&(chazhao[k]!

='\0')&&(str[j]!

='\0'))/*while循环语句*/

{j++;k++;

}

if(chazhao[k]=='\0')

returni;/*字符串的第一个字符开始循环,知道字符结束,for循环结束*/

}

return-1;}

voidchazhaos()/*查看文章中共有多少个要查找的字符*/{

inti,j,k,all=0;/*定义变量i,j,k,allall的值为0*/

printf("输入要查找的单词:

\n");scanf("%s",chazhao);

for(i=0;(size_t)i

{j=i;k=0;

while((str[j]==chazhao[k])&&(chazhao[k]!

='\0')&&(str[j]!

='\0'))/*while循环语句*/

{j++;k++;}

if(chazhao[k]=='\0')all++;/*每当发现查找内容,all的植就加1*/}

printf("查找成功!

\n");

printf("一共查找了%d个%s",all,chazhao);

printf("\n按回车返回");

getchar();getchar();/*回车返回*/

}

voidcharu(charsource[],intindex,chardest[])/*从指定的下标开始插入dest数组中的元素*/

{

inti,j,k,m;

j=strlen(dest);/*第一步,计算串dest的长度,存入j*/

k=strlen(source);/*第二步,计算串source的长度,存入k*/

source[j+k]='\0';i=j+k-1;m=k-1;while(m>=index)

{

source[i]=source[m];

i--;m--;}

i=index;m=0;while(m

{source[i]=dest[m];i++;m++;}}

voidtihuans()/*将str中要替换的内容替换掉*/

{

inta,b=0;/*定义变量a,bb的值为0*/

inputchatihuan();

do

{a=chazhaostring();

b=a;

if(b==-1)/*选择语句*/

{

printf("此单词不存在!

\n");

return;

}else

{while(str[b+strlen(chazhao)]!

='\0')/*while循环*/

{str[b]=str[b+strlen(chazhao)];b++;}

str[b]='\0';charu(str,a,tihuan);}

a=chazhaostring();}

while(a!

=-1);

printf("替换成功\n");

printf("\n按回车返回.....");

getchar();/*回车返回*/

}

voidsave()/*保存修改后的文章信息*/

{inti=0;

FILE*fp;

fp=fopen("string.txt","w");/*写入文件*/

while((size_t)i

{

fputc(str[i],fp);/*写入字符到文件中*/

i++;}}

voidwelform()/*窗口跳转*/

{

printf("主菜单\n");

printf("*---------------------------------------*\n");

printf("\n");

printf("###1:

输出内容*\n");

printf("\n");

printf("###2:

查找单词*\n");

printf("\n");

printf("###3:

替换单词*\n");

printf("\n");

printf("###0:

退出程序*\n");

printf("\n");

printf("*---------------------------------------*\n");

printf("\n\n按回车返回:

\n");}

voidmain()

{

charch;initstr();

while

(1)

{

welform();

scanf("%d",&ch);

switch(ch)

{

case1:

;printf("%s\n",str);getchar();getchar();break;/*选择1打开string.txt文件并显示*/

case2:

;chazhaos();break;/*选择2执行chazhaos()*/

case3:

;tihuans();break;/*选择3执行tihuans()*/

case0:

save();exit(0);/*选择0执行saves(),退出*/

default:

printf("\n你输入的数字有误!

\n");/*如果上面条件都不成立时运行*/

printf("按回车返回");

getchar();

getchar();/*回车返回*/

}}}

五、程序运行测试

打开运行界面

输出内容界面

查找单词界面

替换单词界面

退出界面

六、心得体会

三周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。

在课程设计过程中,我一开始对自己如何完成一个独立的数据结构茫然不知所措,通过向同学们请教,逐步的了解了如何完成这次课程设计,并且提高了我对串的操作的熟练程度。

课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。

“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。

我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。

在这次数据结构课程设计过程中,体现出自己单独完成问题的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

七、附录

1、程序中主要函数列表

initstr()从文件初始化数组

inputchatihuan()从键盘输入要替换的单词

charu(charsource[],intindex,chardest[])把要替换的单词插入到被替换单词的位置

tihuans()调用函数是实现替换

2、附参考书目

《数据结构(C语言版)》严蔚敏吴伟民清华大学出版社

《数据结构实践指导教程》阮宏一华中科技大学出版社

《数据结构》田鲁怀电子工业出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1