目录
1.问题描述及要求 ................................................................................................................... 1
1.1 问题描述 ...................................................................................................................... 1
1.2 基本要求 ...................................................................................................................... 1
2.需求分析............................................................................................................................... 1
2.1 输入数据的形式和范围 .............................................................................................. 1
2.2 输出形式 ...................................................................................................................... 1
3.算法思想描述....................................................................................................................... 1
4.概要设计............................................................................................................................... 1
4.1 统计字符个数函数及算法流程图 ..............................................................................1
4.2 统计指定字符串个数函数及算法流程图 ..................................................................3
4.3 删除指定字符串函数及算法流程图 ..........................................................................3
5.详细设计............................................................................................................................... 4
5.1 文章输入函数 .............................................................................................................. 4
5.2 文章输出函数 .............................................................................................................. 5
5.3 统计字符个数函数 ...................................................................................................... 5
5.4 统计指定字符串个数函数 .......................................................................................... 5
5.5 删除指定字符串函数 .................................................................................................. 6
6.测试数据及分析 ................................................................................................................... 7
6.1 文章输入函数 .............................................................................................................. 7
6.2 文章输出函数 .............................................................................................................. 8
6.3 统计字符个数函数 ...................................................................................................... 8
6.4 统计指定字符串个数函数 .......................................................................................... 9
6.5 删除指定字符串个数函数 .......................................................................................... 9
6.6 退出程序 .................................................................................................................... 10
7.课程设计总结..................................................................................................................... 11
8.谢辞..................................................................................................................................... 12
9.参考资料............................................................................................................................. 12
课程设计(论文)任务书
软 件 学 院
学
院
软 件+电气
专
业
2011—4
班
文章编辑
一、课程设计(论文)题目
二、课程设计(论文)工作自 2012 年 12 月 29 日起至 2013 年 1 月 6 日止
三、课程设计(论文) 地点:
四、课程设计(论文)内容要求:
1.本课程设计的目的
科 技 楼 机 房
⑴训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,
编写程序求解指定问题;
⑵初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
⑶提高综合运用所学的理论知识和方法独立分析和解决问题的能力,巩固、深化学生
的理论知识,提升编程水平。
2.课程设计的任务及要求
1)基本要求:
⑴要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象
数据类型、编写上机程序和上机调试等若干步骤完成题目,最终写出完整的报告;
⑵在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率;
⑶程序设计语言推荐使用 C/C++,程序书写规范,源程序需加必要的注释;
⑷每位同学需提交可独立运行的程序和规范的课程设计报告。
2)课程设计论文编写要求
⑴理论设计部分以课程设计论文的形式提交,格式必须按照课程设计论文标准格式进
行书写和装订;
⑵课程设计报告(论文)包括中文目录、设计任务、需求分析、概要设计、详细设计、
编码实现、调试分析、课设总结、谢辞、参考文献、附录等;
⑶设计部分应包含系统功能模块图,调试分析应包括运行截图等。
3)课程设计评分标准:
⑴学习态度:10 分;
⑵系统设计:20 分;
⑶编程调试:20 分;
⑷回答问题:20 分;
⑸论文撰写:30 分。
4)参考文献:
⑴严蔚敏,吴伟民. 数据结构(C 语言版)[M]. 清华大学出版社. 2010.3
⑵严蔚敏,吴伟民. 数据结构题集(C 语言版)[M]. 清华大学出版社. 1999.2
⑶何钦铭,冯燕等. 数据结构课程设计[M]. 浙江大学出版社. 2007.8
5)课程设计进度安排
⑴准备阶段(4 学时):选择设计题目、了解设计目的要求、查阅相关资料;
⑵程序模块设计分析阶段(4 学时):程序概要设计、详细设计;
⑶代码编写调试阶段(8 学时):程序模块代码编写、调试、测试;
⑷撰写论文阶段(4 学时):总结课程设计任务和设计内容,撰写课程设计论文。
学生签名:
2012 年 12 月 29 日
6)课程设计题目具体要求:
问题描述:
输入一页文字,可以统计出文字、数字、空格的个数。
基本要求:
⑴静态存储一页文章,每行最多不超过 80 个字符,共 N 行。
⑵分别统计出其中英文字母和空格数及整篇文章总字数。
⑶统计某一字符串在文章中出现的次数,并输出该次数。
⑶删除某一子串,并将后面的字符前移。
⑷存储结构使用线性表,分别用几个子函数实现相应的功能。
课程设计(论文)评审意见
(1)学习态度(10 分):优( )、良( )、中( )、一般( )、差( );
(2)系统设计(20 分):优( )、良( )、中( )、一般( )、差( );
(3)编程调试(20 分):优( )、良( )、中( )、一般( )、差( );
(4)回答问题(20 分):优( )、良( )、中( )、一般( )、差( );
(5)论文撰写(30 分):优( )、良( )、中( )、一般( )、差( );
(6)格式规范性及考勤是否降等级:是( )、否( )
评阅人: 王英华
职称: 讲师
2013 年 1 月 7 日
华东交通大学课程设计
1
1.问题描述及要求
1.1 问题描述
功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
1.2 基本要求
(1)静态存储一页文章,每行最多不超过 80 个字符,共 N 行;
(2)分别统计出其中英文字母数和空格数及整篇文章总字数;
(3)统计某一字符串在文章中出现的次数,并输出该次数;
(4)删除某一子串,并将后面的字符前移;
(5)存储结构使用线性表,分别用几个子函数实现相应的功能。
2.需求分析
2.1 输入数据的形式和范围
可以输入大写、小写的英文字母、任何数字及标点符号。
2.2 输出形式
(1)分行输出用户输入的各行字符;
(2)分 4 行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数;
(3)输出删除某一字符串后的文章;
3.算法思想描述
本程序是对输入的文字进行操作,故使用静态的字符数组作为存储结构,定义如下:
char str[N][80]; // 存储文章的字符数组
对于文本的输入,采用头插法将文本信息存储到链表已申请好的存储空间中;对于
文本内容的统计,使用循环对已存储的文章进行匹配,大写字母数、小写字母数、空格
数、数字数直接通过条件比较即可得到;对于文本内容的处理,查找部分仍是使用循环
对已存储的文章进行匹配,判断需要查找的字符或者字符串是否与文章中某部分内容相
同,如果存在相同的记录相同的个数。删除部分先使用程序的查找功能对文章中需要删
除的字符或者字符串进行查找,然后对其进行删除。
4.概要设计
本 程 序 主 要 定 义 了 3 个 函 数 : void count(),void checkstring(),void
outputdelstr()
4.1 统计字符个数函数及算法流程图
况水云
1
华东交通大学课程设计
2
函数:void count()
功能:统计字母、数字、空格的个数
流程图如下:
i=0
i=N
j=0
len=strlen(len[i])
j=len
&&
&&
if(str[i][j]>='a'
str[i][j]<='z') cnum++;
if(str[i][j]>='A'
str[i][j]<='Z') cnum++;
if(str[i][j]>='0'
str[i][j]<='9') dnum++;
if(str[i][j]==' ') snum++;
&&
算法结束
j++
i++
况水云
2
华东交通大学课程设计
3
4.2 统计指定字符串个数函数及算法流程图
函数:void checkstring()
功能:统计某一个指定的字符串的个数
流程图如下:
i=0
i=N
p1= strstr(p1,p2)
p1!=null
p1=null
p1=strstr(p1,p2)+1
strnum++
i++
算法结束
4.3 删除指定字符串函数及算法流程图
函数:void outputdelstr()
功能:删除某一个指定的字符串
流程图如下:
况水云
3
华东交通大学课程设计
4
i=0
i=N
p1= strstr(p1,p2)
p1!=null
p1=null
p=p1=strstr(p1,p2);
while(*(p+len-1))
{ *p=*(p+len);
p++;
}
i++
算法结束
5.详细设计
5.1 文章输入函数
int intput() //文章输入函数
{
}
printf("请输入第 %d 行文字\n",i+1);
gets(str[i]); //读取数组的内容
if(strlen(str[i])>80)
{
printf("每行最多输入 80 字符,请重新输入第 %d 行文字\n",i+1);
/*当每行输入文字大于 80 字符时输出此语句,并且重新输入文字*/
gets(str[i]);
}
return strlen(str[i]); //返回数组的长度
况水云
4
华东交通大学课程设计
5
5.2 文章输出函数
void output()
//文章输出函数
{
}
for(i=0;i='a' && str[i][j]<='z') cnum++; //统计小写字母
if(str[i][j]>='A' && str[i][j]<='Z') cnum++; //统计大写字母
if(str[i][j]>='0' && str[i][j]<='9') dnum++; //统计数字
if(str[i][j]==' ') snum++;
//统计空格
}
5.4 统计指定字符串个数函数
void checkstring()
//统计指定字符串个数函数
{
char cstr[20];
char *p1,*p2;
printf("请输入需要统计的字符串:
");
gets(cstr);
p2=cstr;
for(i=0;i