文章编辑程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告

课程设计名称数据结构课程设计

专业计算机科学与技术

班级

学号

姓名

指导教师

成绩

2012年2月26日

数据结构课程设计

——《文章编辑》

一、设计任务与要求 (1)

二、需求分析 (1)

2.1 用户需求分析 (1)

2.2 功能需求分析 (1)

三、概要设计 (2)

3.1 各模块的算法设计说明 (2)

3.2 存储结构设计说明 (4)

四、详细设计 (4)

五、实际运行结果 (6)

六、收获与体会 (9)

七、主要参考资料 (9)

一、设计任务与要求

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

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

要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。

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

输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;

二、需求分析

2.1 用户需求分析

随着社会的发展,人们对信息的处理要求逐渐增高,设计这个程序是为了方便人们能更加迅速地处理文字信息,从而提高工作效率。

2.2 功能需求分析

功能分析如图所示

功能说明:

输出原文:此功能是将原先录入的信息读出,并在屏幕上显示出来。

统计文章字数:此功能是统计出文章中的字母数,空格数,数字数和文章总字数。

统计某一字符串在文章中出现的次数:通过用户输入要查询项来统计要查询的字符在文章中的出现次数。

删除某一字符串并输出文章:删除文章中用户希望删除的字符,并将修改后的文章在屏幕上显示出来。

结束:退出程序。

2.3 系统需求分析(开发环境、工具)

Windows操作系统,visual6.0编译环境

三、概要设计

3.1 各模块的算法设计说明

本程序由输入、输出、统计、查找、删除、选择功能模块组成,以下为重要模块的流程图:

1.输入模块

2.统计模块

3.查找模块:

3.2 存储结构设计说明

线性表是我们最常用的一种简单而基本的数据结构,线性表中数据元素间的关系是一对一的,就是说除了头尾数据元素外,其他元素都是首尾相接的。其逻辑结构简单,便于实现和操作,因此是一种在实际应用中广泛采用的数据结构。

四、详细设计

为实现本程序功能所包含的库函数有:

#include

#include

为实现本程序功能所包含的功能模块及注释有:

输出模块:

void print() //输出用户输入的各行字符

{

int i,j;

for(i=0;i<=n;i++) //行数

{

for(j=0;j

printf("%c",str[i][j]);

}

printf("\n"); //每输出一行之后换行

}

统计模块:

void tongji() //统计

{

int i,j;

int wz,kg,sz,sum; //分别记录文字个数,空格个数,数字个数,总数

wz=kg=sz=sum=0;

for(i=0;i<=n;i++)

{

for(j=0;j

{

if(str[i][j]!='\n') //若为回车则记录行数+1

sum++;

if((str[i][j]<='z'&&str[i][j]>='a')||(str[i][j]<='Z'&&str[i][j]>='A')) //若为字母则记录字母个数+1 wz++;

if(str[i][j]<='9'&&str[i][j]>='0') //若为数字则记录数字个数+1

sz++;

if(str[i][j]==' ') //若为空格则记录空格数+1

kg++;

}

}

printf("\n全部字母数为:%d\n",wz);

printf("数字个数为:%d\n",sz);

printf("空格个数为:%d\n",kg);

printf("文章总字数为:%d\n\n",sum);

}

查找模块:

void chazhao() //统计某一字符串在文章中出现的次数

{

int i,j,k,l1,y;

int x=0;

l1=strlen(a); //获取字符串长度

for(i=0;i<=n;i++) //确定行数

{

for(j=0;j

{

y=1;

if(j+l1==l[i])break;

for(k=0;k

{

if(a[k]!=str[i][j+k]){y=0;break;} //若检查字符串中出现不同字符则挑出

}

if(y)x++; //若未跳出则判定为出现符合条件的字符串,出现次数+1 }

}

for(i=0;i

printf("%c",a[i]);

printf(" 在文中出现次数为:%d\n\n",x);

}

删除模块:

与查找模块功能相似,此处省略。

相关文档
最新文档