数据结构课程设计文章编辑附录中有全部代码Word文档下载推荐.docx
- 文档编号:17606891
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:25
- 大小:174.18KB
数据结构课程设计文章编辑附录中有全部代码Word文档下载推荐.docx
《数据结构课程设计文章编辑附录中有全部代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计文章编辑附录中有全部代码Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
3.文本字符统计
4.指定字符串统计
5.指定字符串删除
6.指定字符串替换
7.退出系统
本系统包含七个功能模块,分别为:
新建文本模块,浏览输入文本模块,指定字符串统计模块,指定字符串删除模块,指定字符串删除模块,指定字符串替换模块以退出系统模块。
新建文本模块实现用户录入文本信息,并且系统自动保存录入信息。
浏览输入文本模块实现了显示用户录入信息的功能。
指定字符串统模块实现了对英文字母数和空格数及整篇文章总字数的统计。
指定字符串统计实现了统计用户自定义字符串个数的功能。
指定字符串删除模块实现了对用户自定义字符串的删除。
指定字符串替换模块实现了替换用户自定义字符串为用户定义的新字符功能。
退出系统模块实现了退出系统功能。
图1.1系统功能模块图
2详细设计
这部分详细介绍了系统中主要部分的功能实现,以及代码功能说明。
voidCreate(LINE*&
head)
{
printf("
请输入一页文章,以Ctrl+E为结尾(每行最多输入80字符!
):
\n"
);
//以Ctrl+E结束文本录入,避免发生混淆
LINE*p=newLINE;
/*首先为链表建立一个附加表头结点*/
head=p;
/*将p付给表头指针*/
charch[100];
while
(1)
{
gets(ch);
/*输入字符串!
*/
if(strlen(ch)>
80)
printf("
每行最多输入80字符"
break;
}
if(ch[0]==5)break;
/*如果发现输入^E,则退出输入*/
p=p->
next=newLINE;
p->
data=newchar[strlen(ch)+1];
/*为结点分配空间*/
strcpy(p->
data,ch);
if(ch[strlen(ch)-1]==5)/*除去最后一个控制符^E*/
{
data[strlen(ch)-1]='
\0'
;
break;
next=NULL;
/*最后的一个指针为空*/
head=head->
next;
}
/**文本字数统计**/
intCount_Space(LINE*&
head)//统计空格数
LINE*p=head;
intasc_space=32;
intcount=0;
inti;
intLen;
do{
Len=strlen(p->
data);
for(i=0;
i<
Len;
i++)
if(p->
data[i]==asc_space)
count++;
}while((p=p->
next)!
=NULL);
returncount;
intCount_Num(LINE*&
head)//统计数字个数
data[i]>
=48&
&
data[i]<
=57)
intCount_All_Word(LINE*&
head)//统计文章的总字数
count+=strlen(p->
intCount_Letter(LINE*&
head)//统计字母数
='
a'
&
z'
||p->
A'
Z'
)count++;
//计算字母个数
while((p=p->
intFind_Word(LINE*&
head,char*sch)//统计sch在文章中出现的次数
intlen1=0;
intlen2=strlen(sch);
inti,j,k;
len1=strlen(p->
//当前行的字符数
len1;
{
data[i]==sch[0])
{
k=0;
for(j=0;
j<
=len2-1;
j++)
if(p->
data[i+j]==sch[j])k=k+1;
if(k==len2){count++;
i=i+k-1;
}
}
/**特定字符串的删除**/
voiddel_string_word(char*s,char*sch)
char*p=strstr(s,sch);
chartmp[80];
intlen=strlen(s);
intk,kk;
inti=len-strlen(p);
intj=i+strlen(sch);
for(k=0;
k<
i;
k++)
tmp[count++]=s[k];
for(kk=j;
kk<
len;
kk++)
tmp[count++]=s[kk];
tmp[count]='
strcpy(s,tmp);
voidDel_String(LINE*&
head,char*sch)//删除指定的字符串
while(strstr(p->
data,sch)!
=NULL)
del_string_word(p->
data,sch);
/**特定字符串的替换**/
voidreplace_string_word(char*s,char*sch,char*reh)
intStringLen;
charcaNewString[100];
char*FindPos=strstr(s,sch);
//if((!
FindPos)||(!
sch))
//return-1;
while(FindPos)
{
memset(caNewString,0,sizeof(caNewString));
StringLen=FindPos-s;
strncpy(caNewString,s,StringLen);
strcat(caNewString,reh);
strcat(caNewString,FindPos+strlen(sch));
strcpy(s,caNewString);
FindPos=strstr(s,sch);
}
/*return0;
*/
voidReplace_String(LINE*&
head,char*sch,char*reh)//替换指定的字符串
replace_string_word(p->
data,sch,reh);
/**打印输入的文本**/
voidOutPutTxt(LINE*&
head)//向屏幕输出文章
printf("
文本文件输出如下:
"
%s\n"
p->
voidCount(LINE*&
文章统计信息结果:
全部字母数:
%d\n"
Count_Letter(head));
数字个数:
Count_Num(head));
空格个数:
%d\n"
Count_Space(head));
文章总字数:
%d\n"
(Count_All_Word(head)+Count_Num(head)+Count_Space(head)+Count_Letter(head))/2);
voidmain()
LINE*head;
charsch[20];
charreh[20];
charID[10];
charch;
chartmp_sch[20];
chartmp_rch[20];
3调试报告
在本次程序设计中,在编译过程中,出现了几次问题
(1)错误提示:
errorC2660:
'
search'
:
functiondoesnottake1parameters
错误类型:
Search函数参数错误
改正方法:
将case语句后加break语句进行返回。
(2)错误提示:
errorC2228:
leftof'
.search'
musthaveclass/struct/uniontype
指针符号使用错误
将s.Search(stu,s)更改为s->
search(stu,s)
(3)错误提示:
errorC2676:
binary'
>
'
classstd:
:
basic_ofstream<
char,structstd:
char_traits<
char>
>
doesnotdefinethisoperatororaconversiontoatypeacceptabletothepredefinedoperator
文件流输入输出符号使用错误,错误使用>
作为文件写入操作符。
将>
改为<
<
。
4测试结果
测试项目
测试数据
测试结果
登陆界面
7.退出
显示:
新建功能
输入1:
新建文本
Abcdefg1234567
显示功能
输入2:
浏览输入文本
显示用户录入结果:
Abcdefg1234567
统计功能
输入3:
文本字符统计
7
空格个数:
1
文章总字数:
15
指定字符串统计功能
输入4:
指定字符串删除
输入要统计字符串:
Ab
出现次数:
指定字符串删除功能
输入5:
指定字符串删除
输入要删除字符串:
删除后文本文件如下:
cdefg1234567
指定字符串替换功能
输入6:
指定字符串替换
要替换掉的字符串:
cdefg
要替换成的字符串:
!
替换后文本文件如下:
1234567
5使用说明
本系统开始时显示所有选择项。
选择项采用文字提示,数字选择进行选择操作。
图5.1显示运行界面
录入选项:
图5.2新建文本界面
浏览输入文本
图5.3浏览输入文本界面
图5.4文本字符统计界面
指定字符串统计
图5.5指定字符串统计界面
图5.6指定字符串删除界面
指定字符串替换
图5.7指定字符串替换界面
输入7:
退出
图5.8退出界面
6总结
感谢老师的指导和讲解。
通过老师的讲解,让我对这门课程有了深刻的认识和了解,也让我对这门课程有了重新的认识。
通过近两周的课程设计中,我学到了数据结构程序设计中对类的设计方法,及对磁盘文件的操作,从中理解了数据结构中的设计思想。
经过这次集中上机实习,我充分意识到了数据结构的用途是非常广的,功能也非常强大,是学计算机不可缺少的知识;
更重要的是,在这次编程中熟悉了编写一个比较复杂程序的流程,以及发现问题、解决问题的能力,为了下一次学习一门新的计算机语言做了充分准备。
在之前感觉还是遥不可及的功能,现在可以实现了,这自然要感谢老师和同学们的热心帮助,这是我得以及时完成这个程序的重要因素。
最后还是要感谢老师对我们孜孜不倦的教导。
成绩:
预习报告分,系统分,课设报告分,总分分,总评:
评语:
批阅教师签字:
年月日
附录:
全部代码
#include<
string.h>
stdio.h>
stdlib.h>
conio.h>
typedefstructline
char*data;
structline*next;
}LINE;
/*将p付给表头指针*/
/*输入字符串!
/*为结点分配空间*/
if(ch[strlen(ch)-1]==5)/*除去最后一个控制符^E*/
voidCount(LIN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 文章 编辑 附录 全部 代码
![提示](https://static.bdocx.com/images/bang_tan.gif)