文章编辑程序设计报告文档格式.docx

上传人:b****3 文档编号:15764847 上传时间:2022-11-15 格式:DOCX 页数:16 大小:362.19KB
下载 相关 举报
文章编辑程序设计报告文档格式.docx_第1页
第1页 / 共16页
文章编辑程序设计报告文档格式.docx_第2页
第2页 / 共16页
文章编辑程序设计报告文档格式.docx_第3页
第3页 / 共16页
文章编辑程序设计报告文档格式.docx_第4页
第4页 / 共16页
文章编辑程序设计报告文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

文章编辑程序设计报告文档格式.docx

《文章编辑程序设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《文章编辑程序设计报告文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

文章编辑程序设计报告文档格式.docx

1、定义结构体structline,文本行采用顺序存储,行与行之间采用链式存储

2、主要函数:

intFindString(LINE*&

head,char*str)/*统计str在文章中出现的次数*/

求在一行中Str出现的次数的流程图:

①.查找第一个字符,如果有第一个字符即p->

data[i]==str[0],设计数器k=0

②.查找这个字符后面的字符与要查找的字符串是否匹配即p->

data[i+j]==str[j],如果匹配k++

③.重复第二步,如果k=len2,则查找到,count++;

如果没查找到,重新进行第一步

voiddelstringword(char*s,char*str)/*删除字符串*s中的字符串*str*/

实现思想:

①.从字符串s中寻找str第一次出现的位置*p=strstr(s,str);

②.len=strlen(s);

i=len-strlen(p)即前i项恰好不含要删除的字符串,将前i项复制到tmp中

③.j=i+strlen(str)即要删除的字符串在i+1和j之间,将j之后的字符串复制到tmp中

④.将tmp赋给串s,返回s

三、详细设计:

3.1详细设计思想:

(1)定义结构体:

typedefstructline

{

char*data;

structline*next;

}LINE;

(2)输出函数voidOutPut(LINE*&

head)

将头指针赋值为p;

通过do-while语句遍历链表;

(3)字符串的创建函数:

voidCreate(LINE*&

head)

用printf语句输出一句提醒语句,请用户输入要编辑的文章

为链表建立一个附加表头结点,将p付给表头指针;

输入字符串,同时判断输入的字符串是否满足条件;

用if语句判断文章是否输入完成。

(4)统计文章中英文字母数:

voidcountLetter(LINE*&

将p付给表头指针;

初始化count为0;

用do-while语句遍历链表,同时统计字符串中英文字母数

用printf语句输出文章中英文字母数,调用子函数menu().

(5)统计文章中数字个数:

voidcountNumber(LINE *&

用do-while语句遍历链表,同时统计字符串中数字个数;

用printf语句输出文章中数字个数,调用子函数menu().

(6)统计文章中的空格数:

voidcountSpace(LINE*&

用do-while语句遍历链表,同时统计字符串中空格数;

用printf语句输出文章中空格数,调用子函数menu().

(7)统计文章总字数:

voidcountAll(LINE*&

将p付给表头指针;

用do-while语句遍历链表,同时统计字符串中总字数;

用printf语句输出文章中总字数,调用子函数menu().

(8)查找字符串的函数:

voidFindString(LINE*&

初始化count为0;

初始化len1,用来保存当前行的总字符数;

定义整型变量len2表示待统计字符串的长度;

用printf语句提醒用户输入要统计的字符串;

用do-while语句遍历链表,同时用for循环和if语句找出指定字符串在文章中出现的次数;

用printf语句输出指定字符串在文章中出现的总次数,调用子函数menu().

(9)删除字符串的函数:

voidDelString(LINE*&

先创建一个delstringword,其中包含两个字符串char*s和char*str,用*s表示输入的字符串,*str表示要删除的字符。

这个函数的功能是找到字符串s在字符串中出现的位置并删除该字符串。

定义字符串的删除函数DelString(),用do-while语句遍历链表,语句中再套用if语句,并调用delstringword()进行删除.

(10)主函数:

voidmain()

用switch语句实现功能的调用。

一个数字对应一个操作。

3.2核心代码:

#include<

string.h>

stdio.h>

char*data;

structline*next;

//创建链表,向里面输入文本数据

//向屏幕输出文字

voidOutPut(LINE*&

{

LINE*p=head;

printf("

输入的文章为:

\n"

);

do

{

%s\n"

p->

data);

}

while((p=p->

next)!

=NULL);

//遍历链表

}

voidmenu()

*********************文章编辑**********************\n"

***************************************************\n"

1.统计文章中全部英文字母数\n"

2.统计文章中空格个数\n"

3.统计文章中数字个数\n"

4.统计文章总字数\n"

5.统计指定字符串在文中出现的次数\n"

6.删除指定字符串\n"

voidCreate(LINE*&

printf("

请输入一页文章,以Ctrl+E(^E)为结尾(每行最多输入80个字符):

LINE*p=newLINE;

//首先为链表建立一个附加表头结点

head=p;

//将付给表头指针

chartmp[100];

while

(1)

{

gets(tmp);

//输入字符串

if(strlen(tmp)>

80)

printf("

每行最多输入80个字符!

"

break;

}

if(tmp[0]==5)break;

//如果发现输入^E,则退出输入

p=p->

next=newLINE;

p->

data=newchar[strlen(tmp)+1];

//为结点分配空间

strcpy(p->

data,tmp);

if(tmp[strlen(tmp)-1]==5)//除去最后一个控制符^E

data[strlen(tmp)-1]='

\0'

;

break;

next=NULL;

//最后一个指针为空

head=head->

next;

OutPut(head);

menu();

//统计英文字母数

voidCountLetter(LINE*&

intcount=0;

intLen=strlen(p->

//计算当前data里的数据元素个数

for(inti=0;

i<

Len;

i++)

if((p->

data[i]>

='

a'

&

p->

data[i]<

z'

)||(p->

A'

Z'

))//计算字母数

count++;

全部英文字母数%d\n"

count);

//返回文章里

voidCountNumber(LINE*&

if(p->

=48&

=57)count++;

while((p=p->

printf("

文章中数字个数:

%d\n"

count);

voidCountSpace(LINE*&

data[i]==32)count++;

空?

格?

个?

数º

y:

voidCountAll(LINE*&

do

count+=strlen(p->

文章总字数:

intlen1=0;

intlen2;

inti,j,k;

charstr1[20];

请输入要统计的字符串:

scanf("

%s"

str1);

len2=strlen(str1);

len1=strlen(p->

for(i=0;

len1;

i++)

{

if(p->

data[i]==str1[0])

{

k=0;

for(j=0;

j<

len2;

j++)

data[i+j]==str1[j])k++;

if(k==len2){count++;

i=i+

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

当前位置:首页 > 法律文书 > 辩护词

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

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