数据结构文章编辑程序的设计Word版

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

数据结构(c语言版)课程设计报告

文章编辑程序的设计

学院:信息科学技术学院

班级:信息工程09级 1 班

学号:200941843107

姓名:董升

指导教师:何儒云

完成日期:2010年12月

目录

1.需求分析——文章编辑........................................................................................................... - 3 -

2.程序设计................................................................................................................................... - 3 -

结构体的设计:.................................................................................................................. - 3 -函数的设计:...................................................................................................................... - 3 -主函数的设计:.................................................................................................................. - 8 -

3.测试分析................................................................................................................................... - 9 -

4.用户说明................................................................................................................................. - 10 -

5.经验和体会............................................................................................................................. - 10 -

6.附录——程序完整原代码..................................................................................................... - 10 -

1.需求分析——文章编辑

题目:22题,文章编辑。

功能:从键盘输入一页文字,静态存储在一个文件中

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

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

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

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

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

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

(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"

(3)输出删除某一字符串后的文章;

2.程序设计

结构体的设计:

typedef struct essay

{

char *line;//动态分配的字符数组

struct essay *next;//结构体指针

}ESS;

//创建结构体,行与行之间用链表的形式

函数的设计:

#include

#include

#include

void create(ESS * &h)//创造链表

{

char m[1000];

ESS *p;

p=(ESS *)malloc(sizeof(ESS));

h=p;

int i,k;

FILE *fp;

fp=fopen("d:\\text.txt","w");//所输入的文本将保存在d盘的rr文本文档中

printf ("输入文章,用Ctrl+B结束输入:\n");//按Ctrl+B(^B)将结束输入

while(1)

{

gets(m); //输入字符串

if(strlen(m)>1000)

{

printf("超过1000字符\n");

break;

}

if(m[0]==2)break; //如果发现输入^B,则退出输入

p=p->next=(ESS *)malloc(sizeof(ESS));

p->line=(char *)malloc(sizeof(char)*strlen(m+1)); //为结点分配空间

strcpy(p->line,m);//将字符串m,复制到p所指向的字符串中

for(i=0;i<(k=strlen(m))&&(p->line[i]!=2);i++)

fwrite(&p->line[i],sizeof(char),1,fp);//写入文本文档中

fputc('\n',fp);

if(m[strlen(m)-1]==2) //除去最后一个控制符^B

{

p->line[strlen(m)-1]='\0';

break;

}

}

p->next=NULL; /*最后的一个指针为空*/

h=h->next; //将下一个节点赋值到头结点中

}

int Count(ESS * h) //统计数字

{

ESS *p=h;

int co=0;

int i;

int Lenght;

do

{

Lenght=strlen(p->line); /*计算当前line 里的数据元素的个数*/

for(i=0;i

if(p->line[i]>=48 && p->line[i]<=57)//用ASCII 码来进行比较,48与57之间是数字

co++;

}

while((p=p->next)!=NULL); //遍历链表不为空

return co;

相关文档
最新文档