编程C++ 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。。。

输功能:输入一页文字,程序可以统计出文字、数字、空格的个数.静态储存一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母和空格数以及整篇文章总字数... 输功能:输入一页文字,程序可以统计出文字、数字、空格的个数.
静态储存一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母和空格数以及整篇文章总字数;(2)统计某一字符串在文章中出现次数,并输出该次数;(3)删除某一子串,并将后面的字符前移.
存储结构使用线性表,分别用几个子函数实现相应的功能;入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号.
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出”全部字母数”、”数字个数”、”空格个数”、”文章总字数”;(3)输出删除某一字符串后的文章. 用C++,(课程设计报告撰写的基本要求)

题目(三号,黑体,居中)
(空一行)
一、设计任务与目标(标题均为小三号,宋体)
(正文均为小四号,宋体,行距1.5倍)
(这一部分需简单介绍题目内容,即该课程设计到底要做什么。如果涉及明确的算法,最好再简单介绍一下算法产生的背景,还要列出各项本设计要达到的具体的目标。)
二、方案设计与论证
(对设计目标进行总体分析,说明要采用的基本思路,说明遇到的问题和解决方法。说明完成本次课程设计的完整过程。要描述程序的设计思想,重点描述你自己提出的与已有工作不同的程序设计思想。)
三、算法说明
(这一部分需详细描述解决问题所需要用到的算法和重要的数据结构,即该课程设计到底应该怎么做。
基本要求:处理问题中所用到的关键算法都要描述清楚,而不是仅描述主函数。算法和数据结构可用伪码和图示描述,不要只写源代码和注释。这一部分的目的是让读者在短时间内清楚地理解作者解决问题的整体思路,表达方式必须比源代码更通俗易懂。如果读者感觉还不如直接读源代码来得明白,这一部分内容就失去了意义。)
四、全部源程序清单
(给出本次课程设计所编写全部源程序已经调试好的可运行代码清单,字体可以用宋体 五号,页数可增加,每个程序开头用注释文字说明此程序的用途和大体工作过程,,程序中必要部分也要加入足够多的注释行。)
五、程序运行的测试与分析
(这一部分内容需要紧扣课程设计的题目类型和要求,设计提供相应的测试方法和结果。
对于需要比较不同算法性能优劣的题目,应设计并填写一张性能比较表格,列出不同算法在同一指标下的性能表现。仅仅罗列出一堆数据是不够的,还应将数字转化为图形、曲线等方式,帮助读者更直观地理解测试结果。
对于需要利用某算法解决某问题的题目,应设计并填写一张测试用例表。每个测试用例一般应包括下列内容:
•测试输入:设计一组输入数据;
•测试目的:设计该输入的目的在于测试程序在哪方面可能存在漏洞;
•正确输出:对应该输入,若程序正确,应该输出的内容;
•实际输出:该数据输入后,实际测试得到的输出内容;
•错误原因:如果实际输出与正确输出不符,需分析产生错误的可能原因;
•当前状态:分为“通过”(实际输出与正确输出相符)、“已改正’’(实际输出与正确输出不符,但现在已修改正确)、“待修改”(实际输出与正确输出不符,且尚未改正)三种状态。
需要注意的是,测试员的态度,不是提供几组简单的数据让程序员容易通过,从而宣称该程序是正确的;而应该是千方百计设计“刁难”的数据,想办法让所测试的程序暴露出问题,这样才能真正帮助程序员完成正确的程序,最后通过严格的裁判数据测试。)
展开
 我来答
漫兰谬宏伯
2020-01-09 · TA获得超过3900个赞
知道大有可为答主
回答量:3193
采纳率:32%
帮助的人:169万
展开全部
"#include
#include
#include
#include
#include
typedef
char
TreeItem;
struct
a
{
char
ch[256];
}work[256];
typedef
struct
btnode
*btlink
;
typedef
struct
btnode
{
TreeItem
*
WORD;//字符串
指针
btlink
left
,
right
,
parent
;
int
count;
}
BtNode
;
typedef
struct
bstree
*Tree
;
typedef
struct
bstree
{
btlink
root
;
//
根结点指针
}BSTree;
Tree
T;
Tree
Init()
{
T
=
(Tree)malloc(sizeof(T));
T->root
=
0
;
return
T
;
}
btlink
NewNode(char
*
x)
{
btlink
p;
if((p=(btlink)malloc(sizeof(BtNode)))==0)
{
cout<<"开辟失败!"<<endl;
exit(0);
}
p->WORD=x;
p->left=0;
p->right=0;
p->parent=0;
p->count=1;
return
p;
}
int
less(char
*
x,char
*
y)
{
return
(strcmp(x,y)<0);//x<y
}
void
Search(TreeItem
*x,
btlink
p
)
{
while(p)
{
if(
less(x,p->WORD)
)
p
=
p->left
;
else
if(
less(p->WORD,x))
p=p->right;
else
break
;
}
if(p){
cout<<"有找到"<<x<<endl;
cout<WORD<<"有"<count<<"个"<<endl;;
}
else
cout<<"木有找到"<<endl;
}
void
InOrder(btlink
t)
{
if(t)
{
InOrder(t->left);
cout<<"字符串:"<WORD<<endl;
cout<<"个数:"<count<<endl;
InOrder(t->right);
}
}
void
Insert(char
*x
,Tree
T)
{
btlink
p,r,pp=NULL
;
p
=
T->root
;
while(
p
)
{
pp
=
p
;
//
保存父结点
//
通过和根结点比较,选取要搜索的子树
if(less(x,p->WORD))
p
=
p->left
;
else
if(less(p->WORD,x))
p
=
p->right
;
else
{
p->count++;
return
;//
元素x已存在于字典中
}
}
r
=
NewNode(x);
if(T->root)
{
if(less(x,pp->WORD))
pp->left
=
r
;
else
pp->right
=
r
;
r->parent
=
pp
;
}
else
T->root
=
r
;
//
插入空树
}
void
open(Tree
T)
{
char
seps[]="
,.\t\n;?:";
int
k=0;
char
*taken;
char
filename[20];
FILE
*fp;
cout<<"输入你所要打开(OPEN)的文件名:"<<endl;
cin>>filename;
cout<<endl;
if((fp=fopen(filename,"r"))==NULL)
{
printf("cannot
open
file!\n");
exit(0);
}
while(!(feof(fp)))
{
fscanf(fp,"%s",work[k++].ch);//这里还真不能用char
str【256】
taken=strtok(work[k-1].ch,seps);
while(taken!=NULL)
{
Insert(taken,T);
taken=strtok(NULL,seps);
}
}
fclose(fp);
}
void
add()
{
char
filename[20];
FILE
*fp;
cout<<"输入你所要打开(OPEN)的文件名:"<<endl;
cin>>filename;
cout<<endl;
if((fp=fopen(filename,"a"))==NULL)
//追加文本
{
printf("cannot
open
file!\n");
exit(0);
}
cout<<
"输入要增加的内容
以@为结束"<<endl;
char
ch;
getchar();
ch=getchar();
while(ch!='@')
{
fputc(ch,fp);
ch=getchar();
}
fclose(fp);
}
void
find(Tree
T)
{
cout<<"输入要查找的内容:"<<endl;
char
WORD[256];
gets(WORD);
cout<<WORD<<endl;
char
*
w;
w=WORD;
btlink
p=T->root;
Search(w,p);
}
void
main()
{
btlink
t;
Tree
T;
btlink
p;
loop:cout<<"功能选取:"<<endl;
cout<<"1
打开(OPEN)文件"<<endl;
cout<<"2
中序显示"<<endl;
cout<<"3
增加文本内容"<<endl;
cout<<"4
查找"<<endl;
int
cs;
cin>>cs;
switch(cs)
{
case
1:
T=Init();
open(T);
goto
loop;
case
2:
p=T->root
;
InOrder(p);
goto
loop;
case
3:
add();
goto
loop;
case
4:
find(T);
goto
loop;
}
}
前提
你要有建个txt的文档
例如
a.txt就可以
我开始做了挺久的"
q59825
2010-12-23
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
#include "stdio.h"
void main()
{
char c;
int english=0,number=0,space=0,others=0;
/*定义字母 数字 空格及其他变量并给它们赋初值*/
printf("输出一串字符包含空格,数字,字母及其它:");
while((c=getchar())!='\n') /*用getchar函数输出一串字符*/
{
if (c>='A'&&c<='Z'||c>='a'&&c<='z')
english++;
else if (c>='0'&&c<='9')
number++;
else if (c==' ')
space++;
else
others++;
}
printf("字母有%d个 数字有%d个 空格有%d个 其它有%d个",english,number,space,others);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gmlovecc
2011-01-05
知道答主
回答量:28
采纳率:0%
帮助的人:13.9万
展开全部
#include "stdio.h"
void main()
{
char c;
int english=0,number=0,space=0,others=0;
/*定义字母 数字 空格及其他变量并给它们赋初值*/
printf("输出一串字符包含空格,数字,字母及其它:");
while((c=getchar())!='\n') /*用getchar函数输出一串字符*/
{
if (c>='A'&&c<='Z'||c>='a'&&c<='z')
english++;
else if (c>='0'&&c<='9')
number++;
else if (c==' ')
space++;
else
others++;
}
printf("字母有%d个 数字有%d个 空格有%d个 其它有%d个",english,number,space,others);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lccqj50
2010-12-24 · TA获得超过192个赞
知道答主
回答量:296
采纳率:0%
帮助的人:228万
展开全部
直接用string类就行。

class MyClass
{
//统计str中英文字母数和空格数及总字数
public static void Static(string str, out int n_letter, out int n_num, out n)
{
n_letter = 0;
n_num = 0;
n=str.Length; //总字数
char ch;
for (int i = 0; i < str.Length; i++)
{
ch=str[i];
if (char.IsLetter(ch))
//字母数
if (ch==' ')
{
n_num++; //空格数
}
}

}

//统计某一字符dest在文章str中出现的次数,并输出该次数。
public static void Find(string str, string dest, out int n)
{
int i;
n = 0;
for (i = 0; i < str.Length; i++)
{
i=str.IndexOf(dest, i); //查找dest
if (i == -1)
{
break; //没有一个dest,结束循环
}
else
{
n++;
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式