文章编辑课程设计报告及代码.docx

上传人:b****3 文档编号:4133228 上传时间:2022-11-28 格式:DOCX 页数:12 大小:162.67KB
下载 相关 举报
文章编辑课程设计报告及代码.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

文章编辑课程设计报告及代码

*****工学院

数据结构课程设计报告

选题名称:

文章编辑

系(院):

***工程学院

专业:

班级:

姓名:

**学号:

指导教师:

学年学期:

2009~2010学年第2学期

2010年6月16日

设计任务书

课题

名称

文章编辑

设计

目的

随着社会的高速发展,现在人们对信息的处理要求越来越高,设计此程序,以方便人们快速的处理信息文字,提高工作效率,从而适应快速的社会发展步伐

实验

环境

Windows2000以上操作系统

VisualC++6.0以上编译环境

任务

要求

功能:

静态存储一页文章,每行最多不超过80个字符,共N行;具有如下作用:

(1)分别统计出其中英文字母数和空格数及整篇文章总字数;

(2)统计某一字符串在文章中出现的次数,并输出该次数;

(3)删除某一子串,并将后面的字符前移。

工作进度计划

序号

起止日期

工作内容

1

6月14日~15日

查找资料,设计程序

2

6月16日~17日

完善程序,做答辩PPT

3

6月18日

完成设计,课题答辩

4

6月19日~20日

完成报告

指导教师:

年月日

 

摘要:

随着社会的高速发展,现在人们对信息的处理要求越来越高,使得文章内容、数量也越变庞大,所以,随之而来的就是对文章的处理变得越来越复杂。

设计此程序以方便人们对文章的处理。

此程序的功能有查找文章中某个字符串出现的次数,统计文章中数字,字母,空格等信息出现的次数,分行显示用户输入的文章,输入一字符串并删除文章中所有该字符串,最后,此程序功能简单,操作方便,所以,试验证明,本程序是一款很实用的程序。

 

关键字:

文章编辑;字符查找;统计;删除

 

 

1需求分析

这一次数据结构课程设计,我做的课题是文章编辑。

任务与要求包括:

输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过80个字符,共N行;

要求:

(1)分别统计出其中英文字母数和空格数及整篇文章总字数;

(2)统计某一字符串在文章中出现的次数,并输出该次数;

(3)删除某一子串,并将后面的字符前移。

存储结构使用线性表,分别用几个子函数实现相应的功能;

voidInitList(wzbj*L)//查找文章结尾有无结束符“#”

voidStrNo(wzbj*L)//统计某一字符串出现的次数

wzbj*DelStr(wzbj*L)//删除某一字段

voidprint1(wzbj*L)//分行输出用户的输入的各行字符

voidprint2(wzbj*L,int&p1,int&p2,int&p3,int&n)//统计字符信息

输入数据的形式和范围:

可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:

(1)分行输出用户输入的各行字符;

(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;

运行环境包括:

Windows2000以上操作系统、VisualC++6.0以上编译环境。

2概要设计

对于文章的处理,我用的是for语句查找,即将符合条件的字符查找出来,然后通过函数实现字符的统计,删除等操作。

同时,存储用线性表的链表结构,然后通过设计四个函数,实现设计要求的4个基本功能。

2.1主要模块的描述

while(L->next)

{

for(p=L,q=s;*q!

='\0'&&p->next;p=p->next,q++)

if(p->wz!

=*q)break;

if(*q=='\0')n++;

L=L->next;

}

将链表指针指向输入的字符串开始字符,和文章中字符的首位,然后使用循环语句,将字符串的每一个字符依次比较,判断相同的字符,以便实现其他的查找,统计,删除等功能。

2.2程序流程框图如图1所示

 

图1流程图

2.3各功能函数描述

本次设计共分为四个函数,分别实现四个功能:

分行输出用户的输入的各行字符,函数为:

voidprint1(wzbj*L);文章中的字符数,空格数,数字等统计,函数为:

voidprint2(wzbj*L,int&p1,int&p2,int&p3,int&n);字符串删除,函数为:

wzbj*DelStr(wzbj*L);统计某一字符串出现的次数,函数为:

voidStrNo(wzbj*L)

3详细设计和实现

3.1存储结构设计

线性表是最基本、最简单、也是最常用的一种数据结构。

线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。

线性表的逻辑结构简单,便于实现和操作。

因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。

在实现线性表数据元素的存储方面,一般可用顺序存储结构和链式存储结构两种方法。

本程序中采用链式存储结构。

3.2主要算法设计

本课程设计中用指针链表,配合循环语句,完成字符串比较功能,从而完成统计字符串,删除字符串,统计字符信息的功能。

字符串删除:

如果,输入字符的第一个字母与文本中的元字符有相同的时候,执行第一个for循环语句,对原文中的字符依次和输入的字符串比较,有不相同的跳出,如果完全相同,则将P指针给H指针,从而达到删除的作用。

然后,进行上述操作,完成删除操作。

wzbj*DelStr(wzbj*L)//删除某一字段

{

wzbj*H=L;

chars[80],*q;

wzbj*p;

cout<<"输入一子串:

";

cin>>s;

if(H->wz==*s){

for(p=H->next,q=s+1;*q!

='\0'&&p->next;p=p->next,q++)

if(p->wz!

=*q)break;

if(*q=='\0')H=p;//删除

}

while(L->next){

for(p=L->next,q=s;*q!

='\0'&&p->next;p=p->next,q++)

if(p->wz!

=*q)break;

if(*q=='\0')L->next=p;

elseL=L->next;

}

returnH;

}

统计某一字符,操作也是如此,两个字符比较,如果发现字符相同时统计数字N就加1

函数为:

voidStrNo(wzbj*L)//统计某一字符串出现的次数

{

intn=0;

chars[80],*q;

wzbj*p;

cout<<"输入一字符串:

";

cin>>s;

while(L->next){

for(p=L,q=s;*q!

='\0'&&p->next;p=p->next,q++)

if(p->wz!

=*q)break;

if(*q=='\0')n++;

L=L->next;

}

cout<<"字符串"<

}

统计字符信息用循环语句,如果有信息符合就让统计数字叠加,最后得出统计的字符数。

函数为:

voidprint2(wzbj*L,int&p1,int&p2,int&p3,int&n)

//统计字符信息

{n=p1=p2=p3=0;

for(;L->next;L=L->next,n++)

if(isalpha(L->wz))p1++;

elseif(isdigit(L->wz))p2++;//统计数字

elseif(L->wz!

='\n')p3++;//统计空格

elseif(L->wz=='\n')n--;//统计文章总字数

cout<<"\n全部字母数:

"<

cout<<"\n数字个数:

"<

cout<<"\n空格个数:

"<

cout<<"\n文章总字数:

"<

}

同时在其中引用了两个函数进行数字和字符的统计,分别为

isalphaisdigit

3.3程序运行流程说明

程序运行时首先从主函数开始,先判断选择的操作。

然后根据要求进行相应的查找、删除、统计、显示等操作,一次操作完之后,会回到开始的选择界面,用户可重新选择操作,如果用户选择退出,程序就停止。

4调试与操作说明

首先,在程序中输入一段文字,以“#”符做结尾。

按回车enter显示选择操作,便实现统计这段文字中英文字符,空格,数字,和文章总字数的功能,如下图4-1和4-2所示:

图4-1

图4-2

接着,选择1—回车enter出现文章中全部字母数、数字个数、空格个数及文章总字数,如下图4-3所示:

图4-3

按选择2—回车enter输入一字符串:

you统计其在文章中出现的次数,如图4-4所示:

图4-4

对文字的输出处理,按选择4—回车enter分行显示用户输入的各行字符,如下图4-5所示:

图4-5

按选择3—回车enter实现对输入的某一子串进行删除并将其后面字符前移,输出删除后的文章,如下图4—6所示:

图4-6

按选择0—回车enter出现Pressanykeytocontinue结束程序

图4-7

总结

致谢

参考文献

1苏仕华.数据结构课程设计.北京:

机械工业出版社,2005

2王红梅,胡明,王涛,数据结构(C++版)学习辅导与实验指导.北京:

清华大学出版社,2005

3数据结构(用面向对象方法与C++语言描述)

4丁有和,郑进,周怡君.VC++实用教程(第3版).北京:

电子工业出版社,2007

5于永彦,王志坚,娄渊胜.C++程序设计基础案例教程.北京:

北京大学出版社,2009

6AdamDrozdek.数据结构与算法,北京:

清华大学出版社,2006

 

指导教师评语

学号

姓名

班级

选题

名称

文章编辑

序号

评价内容

权重(%)

得分

1

考勤记录、学习态度、工作作风与表现。

5

2

自学情况:

上网检索机时数、文献阅读情况(笔记)。

10

3

论文选题是否先进,是否具有前沿性或前瞻性。

5

4

成果验收:

是否完成设计任务;能否运行、可操作性如何等。

20

5

报告的格式规范程度、是否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。

30

6

文献引用是否合理、充分、真实。

5

7

答辩情况:

自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。

25

合计

指导教师(签章):

年月日

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

当前位置:首页 > 小学教育 > 英语

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

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