课程设计题目:文章编辑
学生姓名: 陈泽蓉
专业: 计算机应用技术。
班级: 1240301
学号: 201240030117
指导教师: 阳红星。
2024年1月6日。
一、 系统设计要求。
功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共n行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章**现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后的文章;
二、 设计思路。
1、 定义结构体struct line,文本行采用顺序存储,行与行之间采用链式存储,用int findstring(line * head,char *str),统计string在文章**现的次数。
2、 输入文章时,以ctrl+e(^e)为结尾,当tmp[0]==5时,发现输入^e时,则退出输入;输出文章时,如果tmp[strlen(tmp)-1==5即发现表示结束的字符^e,用 p->data[strlen(tmp)-1]='0'除去最后一个控制符^e
三、 设计目的。
1、 了解c++与c语言之间有什么不相同之处。
2、 对c语言进一步的加深了解,以及此程序中用到的数据结构知识,必须要先学会了解存储结构中使用线性表。
3、掌握数据结构中几个子函数的功能。
4、学会画系统功能模块图和系统流程图。
四、 系统功能模块图。
五、 系统流程图。
六、调试过程。
在写**的过程中,发现有些步骤运行不出来,刚开始做的时候,有好多错误,例:输入了一文章,当按ctrl+e时,竟然不能显示输出来的文章,后来在创建链表后面加了char *tmp=new char[100];在输出文章后加了一条输出语句,在老师的帮助下才纠正错误。
七、关键程序**。
#include
#include<>
#include<> 文本每行以字符串形式存储,行与行之间以链表存储*/
#include<>
using namespace std;
typedef struct line
char *data;
struct line *next;
line创建一链表,同时向里面输入文本数据*/
char *tmp=new char[100];
void create(line * head)
cout<<"请输入一页文章,以ctrl+e(^e)为结尾(每行最多输入80个字符!):n"<
line *p=new line首先为链表建立一个附加表头结点。
head=p; /将p付给表头指针。
while(1)
if(tmp[0]==5)break如果发现输入 ^e,则退出输入*/
p=p->next=new line;
p->data=new char[strlen(tmp)+1为结点分配空间 */
strcpy(p->data,tmp);
if(tmp[strlen(tmp)-1]==5除去最后一个控制符^e */
p->data[strlen(tmp)-1]='0';
break;
p->next=null最后的一个指针为空*/
head=head->next;
统计字母数*/
int countletter(line * head)
line *p=head;
int count=0;
do int len=strlen(p->data); 计算当前data里的数据元素的个数*/
for(int i=0;iif((p->data[i]>=a'&&p->data[i]<=z')|p->data[i]>=a'&&p->data[i]<=z计算字母数*/
countwhile((p=p->next)!=null遍历链表*/
return count返回文章的字母总数*/
*统计数字数*/
int countnumber(line * head)
line *p=head;
int count=0;
do int len=strlen(p->data); 计算当前data里的数据元素的个数*/
for(int i=0;iif(p->data[i]>=48 &&p->data[i]<=57)count计算数字数,ascii码*/
while((p=p->next)!=null遍历链表*/
return count;
统计空格数*/
int countspace(line * head)
line *p=head
int count=0;
do int len=strlen(p->data); 计算当前data 里的数据元素的个数*/
for(int i=0;i if(p->data[i]==32)count++;计算空格数,空格ascii码为32*/
while((p=p->next)!=null遍历链表*/
return count;
统计文章的总字数*/
int countall(line * head)
line *p=head保存链表的首地址*/
int count=0
do计算总字符数*/
while((p=p->next)!=null); 遍历链表*/
return count;
/*删除指定的字符串*/
char *tmp1=new char[100];
void delstringword(char *s,char *strs为输入的字符串,*str为将要删除的字符*/
char *p=strstr(s,str); 从字符串s中寻找str第一次出现的位置*/
char tmp[80];
int len=strlen(s);
int i=len-strlen(p);
int j=i+strlen(str);
int count=0;
for(int m=0;m for(int n=j;n 周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统... 题目各类图形面积与周长计算和高考倒计时。学生姓名张磊 学号 20131344054 学院计算机与软件学院 专业软件工程 指导教师马瑞。二 一五年六月 25 日。目录。1 引言 1 1.1 系统开发背景和意义 1 1.2 服务器运行环境 2 1.3 课题内容 2 2 系统需求分析及相关技术介绍 2 2... c 程序课程设计报告。学院 资源与安全工程学院 专业班级 城市地下空间工程1303 姓名卢途。指导教师 彭述权。课程设计时间 2013 2014学年第二学期18 19周。一 题目一 设计一 学生成绩管理系统 它的主要功能是对学生的成绩进行输入 修改和管理。系统功能要求 界面要求 学生成绩管理系统 1...c语言课程设计报告 课程设计报告
C课程设计报告
C 课程设计报告