用一个字符数组保存一个英文句子高级语言课程设计
感恩节的英语作文-浦发银行实习报告
《高级语言程序设计》课程设计
设计题目:
用一个字符数组保存一个英文句子
指导教师:
班 级:
小组人员:
计算机科学与工程系
2011年8月
河南城建学院 《高级语言程序设计》数字媒体技术专业
目录
一.课程设计题目„„„„„„„„„„„„„„„„„„„„„ „„2
二.课程设计要求
.............................................. 2
三.系统环境
..................................................
2
1.硬件平台
............................................. 2
2.软件平台
............................................. 2
⑴.Visual C++6.0特点
............................... 2
⑵.Visual
C++6.0具有的优点 ........................ 3
四.课程设计
目的.............................................. 3
五.课程设计内容......................................
........ 4
六.设计结果与分析..........................
................. 11
七.心得体会...................
.............................. 12
附录一:程序源代码...
........................................ 14
附录二:参考文献„„„„„„„„„„„„„„„„„„„„„„„16
一、 课程设计题目:
计算机科学与工程系《高级语言课程设计》
1
河南城建学院 《高级语言程序设计》数字媒体技术专业
用一个字符数组保存一个英文句子
二、 课题设计要求:
1.删除该英文句子中的前导空格,后导空格,并删除句子中多余的空格(单词之间留一
个空格
);
2.统计该句子中单词出现的频率;
3.查找并替换某个单词。
三、 系统环境:
1. 硬件平台
硬件平台是程序设计与运行所需要
的硬件环境,主要包括计算机机型及硬件配置。由于
本课程是
用字符数组保存一个英文句子的程
序设计
,因此对计算机硬件的要求不高,
比较经济,只要配备有PII300处理器(或以上)
、64M内存(或以上)、20G硬(或以上)的
普通微机即可顺利运行。
2.
软件平台
软件平台是程序设计与运行的软件环境。本程序开发使用的是Visual C++ 6.0
⑴ Visual C++ 6.0特点
Visual C++ 6.0是功能最为强大的
可视化开发工具之一,它不仅支持传统的软件开发
方法更重要的是它能支持面向对象、可视化的开发风格
。因此Visual C++
6.0又称作是一
个集成开发工具,它提供了软件代码自动生成和可视化资源编辑功能。
⑵
Visual C++ 6.0具有的优点:
计算机科学与工程系《高级语言课程设计》
2
河南城建学院 《高级语言程序设计》数字媒体技术专业
提供了面向对象的应用程序框架MFC(Microsoft Foundation Class),
简化了程序员
的编程工作,提高了模块的可重用性;提供了基于CASE技术的可视化软件的自动生成和
维
护工具App Wizard、Class Wizard、Visual
Studio、Wizard Bar等,实现了直观、可视的
程序设计风格,方便的编译和管理各种类
,维护程序的源代码;封装了Windows的API函数、
USER、KERNEL、GDI函数,简
化了编程时创建、维护窗口的许多复杂的工作。
其中MFC 是一个很大的、扩展了的 C++
类层次结构,它能使开发 Windows 应用程序变得
更加容易。MFC 是在整个
Windows 家族中都是兼容的,也就是说,无论是 Windows3.x、
Windows95
还是 Windows NT,所使用的 MFC 是兼容的。每当新的 Windows 版本出现时,MFC
也会得到修改以便使旧的编译器和代码能在新的系统中工作。MFC
也回得到扩展,添加新的
特性、变得更加容易建立应用程序。 使用 MFC
的最大优点是它为你做了所有最难做的事。
MFC 中包含了上成千上万行正确、优化和功能强大的
Windows
代码。你所调用的很多成员
函数完成了你自己可能很难完成的工作。从这点上将,MFC 极大地加快了
你的程序开发速度。
由于MFC编程方法充分利用了面向对象技术的优点,它使得我们编程时极少需要关
心对象方
法的实现细节,同时类库中的各种对象的强大功能足以完成我们程序中的绝大部分所需功
能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调
试性。
四、 课程设计目的:
1.掌握高级程序设计语言的基本思想、基本概念、基本方法和基本技能;
2.初步学会利用 c 语言编制一些程序以解决一般实际应用问题;
3.培养学生分析问题和解决问题的能力;
五、 程序设计内容:
★第
一步:删除该英文句子中的前导空格,后导空格,并删除句子中多余的空格(单
词之间留一个空格);流
程图设计如下:
计算机科学与工程系《高级语言课程设计》
3
河南城建学院 《高级语言程序设计》数字媒体技术专业
程序设计①
#include
#include
计算机科学与工程系《高级语言课程设计》
4
河南城建学院 《高级语言程序设计》数字媒体技术专业
在该C语言语句里,这个编程运行时,要把这两个文件打开
char str[200];
------------ 定义字符串str (最大的存储量为200个字符)。
char
tmp[200]; ------------ 定义字符串tmp (最大的存储量为200个字符)。
char frequency[200]; --------定义字符串frequency
(最大的存储量为200个字符)。
void tz() ---------------
函数tz
{ ------------- 函数tz开始
int i,j,flag,len; -------------定义整形字符
i,j,flag,len
j=0;
--------------给j赋值0
flag=1;
----------------给flag赋值1
len=strlen(str); ------------
把strlen(str)值赋值给len
for(i=0;i
if(str[i]=='
'&&flag==1)-------------if判断,str[i]==' '并且flag==1
{ -------------if条件判断开始
tmp[j++]=str[i];-------
------使用str[i]给tmp[J++]赋值
flag=0;-------------给flag赋值0
} -------------if条件判断结束
else -------------else如果上面if条件不符合
if(str[i]!=' ')
-------------if条件判断,判断str[i]!=''
{ -------if条件开始
tmp[j++]=str[i];
---------使用str[i]给tmp[J++]赋值
flag=1;
---------给flag赋值1
}
---------if条件结束
}
---------for循环,结束
len=strlen(tmp);
---------------把strlen(tmp)值赋值给len
j=0;
------------给j赋值0
if(tmp[0]!=' ')
---------if条件判断,判断条件是tmp[0]!=' '
str[j++]=tmp[0];
--------符合上面条件,使用tmp[0]给str[j++]赋值
for(i=1;i
if(tmp[len-1]!=' ')
------------if条件判断,判断条件tmp[len-1]!=' '
str[j++]=tmp[len-1];
-----符合if条件下,使用tmp[len-1]给str[j++]赋值
str[j]='0'; --------------给str[j]赋值'0';
printf(输出符合删除该句子中的前导空格,
后导空格,并删除句子中多余的空格;单词之间只留
一个空格条件的字符串
} -------
函数tz结束
★ 第二步:统计该句子中单词出现的频率
计算机科学与工程系《高级语言课程设计》
5
河南城建学院 《高级语言程序设计》数字媒体技术专业
;流程图设计如下:
程序设计②
计算机科学与工程系《高级语言课程设计》
6
河南城建学院 《高级语言程序设计》数字媒体技术专业
#include
#include
在该C语言语句里,这个编程运行时,要把这两个文件打开
char str[200];
--------- 定义字符串str (最大的存储量为200个字符)。
char
tmp[200]; -------- 定义字符串tmp (最大的存储量为200个字符)。
char frequency[200]; ------定义字符串frequency
(最大的存储量为200个字符)。
void tj()
------------函数tj
{ -----------
函数tj开始
int i, j, len, k, h, count;
----------定义整形字符 i,j,len,k,h,count
k=0;
-------------给k赋值0
len=strlen(str);
---------------把strlen(str)值赋值给len
printf(输出nfrequency:n
for(i=0;i
j=0;
--------------给j赋值0
count=0;
------------给count赋值0
while(str[i]!='
'&&str[i]!='0') --- while循环,循环条件是str[i]!='
'并且
str[i]!='0'
tmp[j++]=str[i++];
-----------使用str[i++]给tmp[j++]赋值
tmp[j]='0'; -----------给tmp[j]赋值为'0'
for(k=0;k
h=0;
-----------给h赋值0
while(str[k]!='
'&&str[k]!='0') ------while循环
frequency[h++]=str[k++]; --------使用str[k++]给
frequency[h++]赋值
frequency[h]='0';
-------------给frequency[h]赋值'0'
if(!strcmp(tmp,frequency)) ---
if条件判断,判断条件是!strcmp(tmp,frequency)
count++;
---------count自增相当于count=count+1
}
---------for循环,结束
printf(输出每个单词以及他们的个数
}
---------for循环,结束
}
★
第三步:查找并替换某个单词。流程图设计如下:
计算机科学与工程系《高级语言课程设计》
7
------------- 函数tj结束
河南城建学院 《高级语言程序设计》数字媒体技术专业
计算机科学与工程系《高级语言课程设计》
8
河南城建学院 《高级语言程序设计》数字媒体技术专业
程序设计③
#include
#include
在该C语言语句里,这个编程运行时,要把这两个文件打开
char str[200];
------- 定义字符串str (最大的存储量为200个字符)。
char
tmp[200]; -------- 定义字符串tmp (最大的存储量为200个字符)。
char frequency[200]; ------定义字符串frequency
(最大的存储量为200个字符)。
void find()
-------函数find
{ --------------
函数find开始
char key[200],left[200],right[200];
---------定义字符数组key,left,right
int len,i,k,h;
k=0;
-----------定义整形字符 len ,i,k, h
-------------给整形变量k赋值
printf(输出一个字符串
scanf(给字符串key赋值
len=strlen(str);
----------- 把strlen(str)值赋值给len
for(k=0;k
h=0;
--------------给h赋值0
while(str[k]!='
'&&str[k]!='0') ----str[k]!='
'而且str[k]!='0'两个
条件同时成立,为执行该 while循环的判定条件。
{ ----------while循环开始
tmp[h++]=str[k++];
----------使用str[k++]给tmp[h++]赋值
}
---------------while循环结束
tmp[h]='0';
--------------给tmp[h]赋值'0'
if(!strcmp(tmp,key))
-----------if条件判断,!strcmp(tmp,key)成立
{
--------if条件判断开始
printf(输出要修改字符所在的下标
printf(输出字符串
word to replace what you find:
scanf(给字符串tmp赋值
len=strlen(key);
---------- 把strlen(key)值赋值给len
for(h=0;h
left[h]='0';
---------给left[h]赋值'0'
i=0;
------------给i赋值0
for(h=k;h
计算机科学与工程系《高级语言课程设计》
9
河南城建学院 《高级语言程序设计》数字媒体技术专业
right[i]='0';
-----------给right[i]赋值'0'
str[0]='0';
--------给str[0]赋值'0'
strcat(str,left);
------------将left字符串连接到str字符串的后面
strcat(str,tmp);
-------------将tmp字符串连接到str字符串的后面
strcat(str,right);
--------------将right字符串连接到str字符串的后面
printf(输出被替换后的字符串str
}
-------------if条件判断结束
}
-------------for循环结束
}
----------------- 函数find结束
★第四步:完善程序,设计输入输出程序,如下:
#include
#include
在该C语言语句里,这个编程运行时,要把这两个文件打开
char str[200];
------------ 定义字符串str (最大的存储量为200个字符)。
char
tmp[200]; ------------ 定义字符串tmp (最大的存储量为200个字符)。
char frequency[200]; --------定义字符串frequency
(最大的存储量为200个字符)。
int main()
-----------这里是这个编程语言的开始,主函数。
{
---------------主函数开始。
printf(输出这个字符串
str[0]='0'; ----------给str[0]赋值'0'
gets(str); -------------进入函数 gets
tz(); --------------进入函数 tz
tj(); -------------进入函数 tj
find(); ---------------进入函数 find
return 0; ------------返回一个0
}
-------------主函数结束。
六.设计结果与分析:
运行过程中出现了很多次错误导致运行结果错误,在老师的指导下以及我们查阅资料,我们
计算
机科学与工程系《高级语言课程设计》
10
河南城建学院 《高级语言程序设计》数字媒体技术专业
查找出程序中的错误,经过改正,最终运行结果如下:
计算机科学与工程系《高级语言课程设计》
11
河南城建学院 《高级语言程序设计》数字媒体技术专业
七.心得体会
【 】通过本次课程设计我第一次通过自己的实践对书本上的知识进
行了运用。在这个
程序中,主要应用了上学期所学习的循环,条件语句,数组以及调用函数。这些知识的
应用
使我对课本内容的认识得到了加深。
在编写程序的过程中,也出现了很多错误
。比如程序语句错误导致检测时连续报错;
函数语句编写错误导致输出结果与实际不符等。出现这些情况
后,我们小组成员一起讨论,
思考,通过对一些新知识的学习和对网上相关资料的阅览,我们发现了程序
的问题所在并进
行了改正。最后得到了正确的结果。
从这次课程设计真的学到了很多,不
仅可以巩固了以前所学过的知识,而且学到了很多
在书本上所没有学到过的知识。通过这次课程设计使我
懂得了理论与实际相结合是很重要
的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合
起来,从理论中得出
结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设
计的过
程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时也感觉到自己专业知
识掌握的不够,在设计中走了很多弯路,刚开始是根本无从下手,不知道要干嘛,如果平时
课余时间多
加强对这些专业知识的学习,那么在这次课程设计中将会少走很多的弯路。
整个程序完成了,还有很多
不完善的地方,希望自己以后办事的时候要认真,仔细,
考虑周全。这段时间里,我又学到了更多C
知识,同时我也被提醒以后办事的时候要认真,
仔细,考虑周全。 也看到了团队精神和互帮互助的重要
性,这一点会让我终生受益。如果
没有同学们的互相帮助,这次课程设计就不会这么顺利,这种同舟共济
的团队精神深深震撼
了我,《礼记学记》上也有讲过:“独学而无友,则孤漏而寡闻”。当然这次程序设
计也让我
看到了自己基础的薄弱。古人有诗云:“路漫漫其修远兮,吾将上下而求索”。从今天起我将<
br>不断继续求索,学习之路也好,人生之路也罢。
【 】这是
第一次进行课程设计,可能完成的不是很好,不过通过这一次的磨练,我也
确实发现了自己的一些问题。
首先,就是发现了自己的C语言课程学的真是不理想,缺少了同组人员的帮忙,我就无法
完成这
一次的课程设计。而且一直无法正确的把握思路,所以浪费了不少时间。
其次,我现在才发现C语言远
比我想象中的要有更大的用处,从中我是真的体会到了作为
计算机科学与工程系《高级语言课程设计》
12
河南城建学院 《高级语言程序设计》数字媒体技术专业
一个程序编辑员的辛苦,每一行的程序都要进行的多次的检查,才能编出一个完美的程序。
最
后,觉得这个课程设计真是花费了同组人员的相当的精力,不过完成之后还是有一点
点满足的,这也算是
自己的一次跨越吧。
【 】一个星期的折腾,总算把课程
设计给完成了,这是一个坚苦而又漫长的过程。是啊,
读了那么多年的书,课程设计可是第一次。看着劳
动成果,很欣慰!虽然这不是我一个人做
的,是大家的共同努力得来的。
另外平时扎实的基础
也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个
比较有难度的程序,你可能会望而却步
,看他人的程序都是个难点,更别说让你自己去设计。
为了解决此。类问题,最好就是多向同学,老师请
教,不要怕难为情。尤其是老师,评他们
多年的编写程序的经验 。
整个课程设计终于完成了
,完成的好辛苦,好艰难,但还是顺利的完成了。我们付出
了很多心血和汗水,但我认为我们得到的更多
。同时有些同学积极的态度让我感到一丝惭愧,
他们所体现出的坚持不懈的品质更令我折服。总之我受益
匪浅。
【 】程序有点复杂,对于初学习程序的我们有很大难度,通
个星期的折腾,总算把课程
设计给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,课
程设计可是第
一次。看着劳动成果,很欣慰!虽然这不是我一个人做的,是大家的共同努力得来的。 <
br>“也许完成不了!”一个星期前我们这样说,“完成他没问题!”一个星期前我们这样说,
现在我
们可以说:“哈哈,完成啦”!
刚开始,可以说是没有头绪,于是就去图书馆找资料,找到了一些关于
画图方面的,可
是这点小进展远远不够,这只是一个小小的开始。下一步是上网查,找到了些与我们题目
相
似的,那时我们每个人都很高兴,可是那还不是我们要的,于是又上网查到了些有关的函数
等
等,终于在我们大家的努力下,完成了这个程序
计算机科学与工程系《高级语言课程设计》
13
河南城建学院 《高级语言程序设计》数字媒体技术专业
附录一:程序源代码
#include
#include
char str[200];
char tmp[200];
char frequency[200];
void tz()
{
int i,j,flag,len;
j=0;
flag=1;
len=strlen(str);
for(i=0;i
if(str[i]=='
'&&flag==1)
{
tmp[j++]=str[i];
flag=0;
}
else
if(str[i]!=' ')
{
tmp[j++]=str[i];
flag=1;
}
}
len=strlen(tmp);
j=0;
if(tmp[0]!=' ')
str[j++]=tmp[0];
for(i=1;i
if(tmp[len-1]!=' ')
str[j++]=tmp[len-1];
str[j]='0';
printf(
}
void tj()
{
int i,
j, len, k, h, count;
k=0;
len=strlen(str);
printf(
计算机科学与工程系《高级语言课程设计》
14
河南城建学院 《高级语言程序设计》数字媒体技术专业
for(i=0;i
j=0;
count=0;
while(str[i]!=' '&&str[i]!='0')
tmp[j++]=str[i++];
tmp[j]='0';
for(k=0;k
h=0;
while(str[k]!=' '&&str[k]!='0')
frequency[h++]=str[k++];
frequency[h]='0';
if(!strcmp(tmp,frequency))
count++;
}
printf(
}
}
void find()
{
char
key[200],left[200],right[200];
int
len,i,k,h;
k=0;
printf(
scanf(
len=strlen(str);
for(k=0;k
h=0;
while(str[k]!=' '&&str[k]!='0')
{
tmp[h++]=str[k++];
}
tmp[h]='0';
if(!strcmp(tmp,key))
{
printf(
printf(
scanf(
len=strlen(key);
for(h=0;h
left[h]='0';
计算机科学与工程系《高级语言课程设计》
15
河南城建学院 《高级语言程序设计》数字媒体技术专业
i=0;
for(h=k;h
right[i]='0';
str[0]='0';
strcat(str,left);
strcat(str,tmp);
strcat(str,right);
printf(
}
}
}
int main()
{
printf(
str[0]='0';
gets(str);
tz();
tj();
find();
return 0;
}
附录二:参考文献
[1] 杨文君,杨柳.C语言程序设计教程[M].清华大学出版社. 2010.03
[2] 谭浩强. C语言程序设计教程[M]. 清华大学出版社. 2005.07
[3] 谭浩强.C程序设计教程.北京:清华大学出版社.2007.07
[4]王岳斌等编著.C程序设计案例教程.北京:清华大学出版社.2006.10
[5]徐连信编著,C语言程序设计,清华大学出版社,2005.06
计算机科学与工程系《高级语言课程设计》
16