数据结构课程设计文章编辑器报告.doc
学号
数据结构课程设计
设计说明书
文章编辑
起止日期:2012年1月2日至2012年1月6日
学生姓名
班级
09计算机一班
成绩
指导教师(签字)
电子与信息工程系
2012年1月6日
天津城市建设学院
课程设计任务书
2011—2012学年第1学期
电子与信息工程系计算机科学与技术专业09级1班级
课程设计名称:数据结构课程设计
设计题目:文章编辑
完成期限:自2012年1月2日至2012年1月6日共1周
设计依据、要求及主要内容〔可另加附页〕:
一、设计目的
熟悉各种数据结构和运算,会使用数据结构的根本操作解决一些实际问题。
二、设计要求
〔1〕重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;
〔2〕按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;
〔3〕学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;
〔4〕认真编写课程设计报告。
三、设计内容
文章编辑程序
静态存储一页文章,每行最多不超过80个字符,共N行,要求:
〔1〕分别统计出其中英文字母数和空格数及整篇文章总字数;
〔2〕统计某一字符串在文章中出现的次数,并输出该次数;
〔3〕删除某一子串,并将后面的字符前移。
目录
TOC\o1-3\h\z\u一、需求分析 3
二、总体设计 3
三、详细设计 4
四、调试与测试 7
五、源程序及运行结果 10
六、心得体会 19
七、参考文献 19
文章编辑程序
一、需求分析
文章编辑,顾名思义就是对文章进行读写、统计、修改等操作。首先我们需要通过函数读取或者录入文章,然后设计模块统计需要分类统计各类字符的个数,当然有时候我们也需要查询某个字符或者字符串在文章中出现的次数,对于某个字符或者字符串,后来经过改良需要删除,就要设计函数实现,并且为了保证文本的页面一致性,我们需要实现分行输出,并且在删除子串以后后续字符前移。为此,我设计了文章编辑程序。
二、总体设计
程序组成框图
程序流程图
三、详细设计
程序主要包括六个模块
第一个模块是是文本获取模块,由三个函数组成,getdata分别调用getdata1、getdata2,实现读取文件和键盘输入两种文本获取方式
函数伪代码如下
Voidgetdata()
{
Case1:getadata1();
Case2:getdata2();
}
Voidgetdata1()
{
f1=fopen(filename,r);//以文件名翻开文件
while((a=getc(f1))!=EOF)
{
if(j==79){s[i++][j]=\n;j=0;}
if(a!=\n){s[i][j++]=a;}
elses[i++][j]=a;
}
}
Voidgetdata2()
{
while((a=getchar())!=#)//键盘输入文本
{
if(j==79){s[i++][j]=\n;j=0;}
if(a!=\n){s[i][j++]=a;}
elses[i++][j]=a;
}
}
第二个模块是文本输出模块,通过函数show_text()实现,伪代码如下:
voidText::show_text()
{
cout文本如下:endl;
}
第三个模块是指令集显示模块,便于随时查看命令,进行新的操作
函数伪代码”
voidText::help()
{cout请选择操作指令endlendl;
cout================================================================================endl;
cout☆count:分别统计各类字符总数☆endlendl;
cout☆search:统计所查字符☆endlen