C 课程设计报告

发布 2022-09-30 17:33:28 阅读 2331

课程设计题目:文章编辑

学生姓名: 陈泽蓉

专业: 计算机应用技术。

班级: 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

c语言课程设计报告 课程设计报告

周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...

C课程设计报告

题目各类图形面积与周长计算和高考倒计时。学生姓名张磊 学号 20131344054 学院计算机与软件学院 专业软件工程 指导教师马瑞。二 一五年六月 25 日。目录。1 引言 1 1.1 系统开发背景和意义 1 1.2 服务器运行环境 2 1.3 课题内容 2 2 系统需求分析及相关技术介绍 2 2...

C 课程设计报告

c 程序课程设计报告。学院 资源与安全工程学院 专业班级 城市地下空间工程1303 姓名卢途。指导教师 彭述权。课程设计时间 2013 2014学年第二学期18 19周。一 题目一 设计一 学生成绩管理系统 它的主要功能是对学生的成绩进行输入 修改和管理。系统功能要求 界面要求 学生成绩管理系统 1...