版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构课程设计报告题 目 文 章 编 辑 学生姓名 学 号 08120116 专业班级 计算机0801 指导老师 设计日期 2009/12/18 指导老师评阅意见:评阅成绩:签名:一、问题定义5.5文章编辑功能:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行;要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个子函数实现相应的功能。输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。输
2、出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章。二、可行性分析主要流程:首先调用initlist()输入一段字符,并输出。然后运用switch提供5个选择,第一个统计整篇文章的总字数,并输出;第二个统计某一字符串在文章中出现的次数,并输出;第三个删除某一字符串,并输出剩下的字符;第四个分行输出用户输入的字符;第五个退出。Main (InitlistPrint20print1(ca *LDelStr(ca *LStr
3、No(ca*L)print2(ca *L, int &p1, int &p2, int &p3, int &n图1开始输入cC=#?假 L->next =new caL=L->next真 L->next = NULL输出:输入nn退出Printf2统计p1,p2,p3,nStrNo统计s次数DelStr删除所有sPrintf1分行输出c图2三、程序设计#include #include #include struct ca char c;ca *next;void InitList(ca *L /输入文字printf("输入一页文字(
4、以#结束:n"while(L->c = getchar( != '#' /当输入的字符不为#时,开辟新的空间,继/续输入L->next = new ca;L = L->next;L->next = NULL;void StrNo(ca *L /统计字符出现的次数int n = 0; /初始化总数nchar s80, *q;ca *p;printf("输入一字符串: "cin>>s;while(L->next /L链表的next域为真 for (p = L, q = s; *q != '0'
5、&& p->next; p = p->next, q+/指针p指向L,q指向输入的字符串s,当q指向的不为空时,并且p有next域,则,P指/针后移,q+,重新循环. if (p->c != *q break; /当p指向的字符不等于q时,跳出循环if (*q = '0' n+; /当L中的某一字符串与s相对应完全,即q指向空时,n+1L = L->next;cout<<"字符串 "< 出现 "< 次 n" ca *DelStr(ca *L /删除一个字符串ca *H = L
6、;char s80, *q;ca *p;cout<<"输入该子串: "cin>>s;while(L->next for (p = L->next, q = s; *q != '0' && p->next; p = p->next, q+if (p->c != *q break;if (*q = '0' L->next = p;else L = L->next; /后面的字符串前移return H;void print1(ca *L while(L->nex
7、t cout< c; L = L->next;cout< void print2(ca *L, int &p1, int &p2, int &p3, int &n n = p1 = p2 = p3 = 0;for( ; L->next; L = L->next, n+if(isalpha(L->c p1+; /统计英文字母的个数else if(isdigit(L->c p2+; /统计数字的个数else if(L->c = ' ' p3+; /统计空格的个数else if(L->c =
8、9;n' n-; cout<<"n全部字母数: "< cout<<"n数字个数: "< cout<<"n空格个数: "< cout<<"n文章总字数: "< void main( ca *L = new ca;int p1, p2, p3, n, c;InitList(L;do cout<<"n0:退出n""1:统计中英文字母和空格数以及整篇文章总字数n""2:统计某一字符串
9、在文章中出现次数n""3:删除某一子串n""4:分行输出用户输入的各行字符n"cin>>c;switch(c case 1:print2(L, p1, p2, p3, n;break;case 2:StrNo(L;break;case 3:DelStr(L;case 4:print1(L;while(c;四、调试过程及其解决方法原程序:#include #include #include Class ca Public:char c;ca *next;void InitList(ca *L while(L->c = getch
10、ar( != '#' L->next = new ca;L = L->next;L->next = NULL;void StrNo(ca *L int n = 0; char s80, *q;ca *p;printf("输入一字符串: "cin>>s;while(L->next for (p = L, q = s; *q != '0' && p->next; p = p->next, q+ if (p->c != *q break;if (*q = '0'
11、n+;L = L->next;cout<<"字符串 "< 出现 "< 次 n" ca *DelStr(ca *L ca *H = L;char s80, *q;ca *p;cout<<"输入该子串: "cin>>s;while(L->next for (p = L->next, q = s; *q != '0' && p->next; p = p->next, q+if (p->c != *q break;if (*q
12、= '0' L->next = p;else L = L->next; return H;void print1(ca *L while(L->next cout< c; L = L->next;cout< void print2(ca *L, int &p1, int &p2, int &p3, int &n n = p1 = p2 = p3 = 0;for( ; L->next; L = L->next, n+if(isalpha(L->c p1+; else if(isdigit(L-&
13、gt;c p2+; else if(L->c = ' ' p3+; else if(L->c = 'n' n-; cout<<"n全部字母数: "< cout<<"n数字个数: "< cout<<"n空格个数: "< cout<<"n文章总字数: "< void main( ca *L = new ca;int p1, p2, p3, n, c;InitList(L;do cout<<"n0:退出n""1:统计中英文字母和空格数以及整篇文章总字数n""2:统计某一字符串在文章中出现次数n""3:删除某一子串n""4:分行输出用户输入的各行字符n"cin>>c;switch(c case 1:print2(L, p1, p2, p3, n;break;case 2:StrNo(L;break;case 3:DelStr(L;case 4:print1(L;while(c;1、 成员的数据类型不同,定义一个结构体;2、 运用函数isalpha isdigit来查找字母与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 尿路感染的饮食调养
- 2025年玻璃微纤维隔热毡项目发展计划
- 员工沟通培训课件
- 2025年油份测定仪合作协议书
- 护理管理沟通中的沟通障碍与克服
- 养老护理中的内分泌系统疾病护理
- 门诊护理中的PDCA循环:案例分析与经验分享
- 疝气患者的呼吸功能锻炼
- 文库发布:吸脂课件
- 吸氧课件介绍
- 成品综合支吊架深化设计及施工技术专项方案
- 改革开放简史智慧树知到课后章节答案2023年下北方工业大学
- 木薯变性淀粉生产应用课件
- 地下水污染与防治课件
- 校门安全管理“十条”
- 超全QC管理流程图
- 临时工劳动合同简易版可打印
- 洁净室施工及验收规范标准
- -井巷工程课程设计
- pks r5xx装机及配置手册
- GB/T 17215.322-2008交流电测量设备特殊要求第22部分:静止式有功电能表(0.2S级和0.5S级)
评论
0/150
提交评论