c语言课程设计报告.docx
《c语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
c语言课程设计报告
xxxxxx
课程设计报告
院(系):
__xxxxxxxxxxxxx_专业班级:
xxxxxxxxxx
学生姓名:
xxxxxxx学号:
xxxxxxxxxx
设计地点(单位)_____xxxxxxxxxxxxxxxxxxxxxxxxx_________
设计题目:
_____背单词_______________
完成日期:
年月日
指导教师评语:
_______________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
课程设计任务书
设计题目:
背单词
学生姓名
课程名称
C语言程序设计课程设计
专业班级
地点
起止时间
第19~20周
设计内容及要求
该系统是帮助学生背诵单词的软件,要求用户可以选择背诵的词库,并可以编辑自己的词库,系统可以给出中文,让学生输入其英文意思,也可输出英文让学生输入中文意思。
并判定词义是否正确。
如不正确给出提示并要求用户重新输入。
如正确给以鼓励。
还应有词语预览功能。
基本功能:
(1)词库的维护。
(2)单词预览。
(3)显示英文用户输入中文的背诵方法。
(4)背诵成绩的记录。
设计
参数
进度
要求
第19周周一、周二:
讲解各任务相关基础知识、熟悉任务要求、软件框架设计
第19周周三~第20周周二:
程序编码
第20周周三、四:
撰写课程设计报告
第20周周五:
答辩及上交作品
参考资料
[1]《C程序设计》(第三版).北京:
清华大学出版社,2009
[2]《C语言课程设计指导书》(内部资料)
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
摘要
在信息飞速发展的今天,掌握一门计算机语言刻不容缓,C语言是在国内外使用广泛的一种计算机语言,既有高级语言的优点,又有低级语言的许多特点,所以特别适合于编写系统软件,被大众所喜爱。
这个迷你背单词系统有三个主要功能,分别是单词录入、单词预览和单词测试,单词录入可任意录入原来系统没有的单词,预览系统可以在学习时候遇到不懂的单词进行查询,通过单词预览还可以学习背诵单词,对学习英语有很大的好处,测试系统则是检验自身英语水平最好的方法。
关键词:
背单词录入系统预览系统测试系统
目录
1设计题目的内容、任务及具体要求1
1.1内容1
1.2我的任务1
1.3要求1
2总体设计思路2
2.3总程序图3
3功能模块的具体设计4
3.1各个模块的操作方法4
3.2代码的分析说明4
3.3单词录入系统流程图5
4功能模块的调试及测试6
4.1功能模块的测试6
4.2程序的调试11
5总结13
致谢14
参考文献15
程序清单16
1设计题目的内容、任务及具体要求
1.1内容
该系统是帮助学生背诵单词的软件,要求用户可以选择背诵的词库,并可以编辑自己的词库,系统可以给出中文,让学生输入其英文意思,也可输出英文让学生输入中文意思。
并判定词义是否正确。
如不正确给出提示并要求用户重新输入。
如正确给以鼓励。
还应有词语预览功能。
基本功能:
a)词库的维护(单词录入)。
b)单词预览。
c)显示英文用户输入中文的背诵方法。
d)背诵成绩的记录。
1.2我的任务
用C语言编写一个关于对词库的维护,也就是如何把新单词录入系统中去。
能把单词录入到预先建立的文本文档中,紧密联系预览与测试系统。
1.3要求
(1)在录入的新单词时,提示要输入中文与英文。
(2)能自动把新单词保存在预先建立的txt文档中去。
(3)新单词可以应用到各个系统中,比如预览和测试系统,与各个系统紧密联系。
2总体设计思路
2.1系统功能
我们这个小组做的是被单词系统。
背单词系统有三个主要功能,分别是单词录入、单词预览和单词测试。
单词录入系统可任意录入新的单词,方便快捷;预览系统可以在学习时候遇到不懂的单词进行查询,对学习英语有很多大的好处;测试系统则是可以检查并提高自身英语水平的一个好系统。
2.2模块之间的主要关系
各个系统之间联系紧密,比如我设计的程序部分是单词录入,录入的单词可以再预览系统中应用,也可以应用再测试系统中,还有在测试中不懂单词意思的,也可以通过预览单词学习查询单词意思。
每个程序是息息相关的。
2.3总程序图
图2.1总程序图
3功能模块的具体设计
3.1各个模块的操作方法
操作方法
1录入单词
在主菜单中,选择对应系统的编号;进入该程序的子菜单,然后再选择录入单词的个数,先输英文再输中文;选择预览系统检查是否把单词录入到词库中去了。
2单词预览
在主菜单中,选择对应系统的编号,进入预览系统预览词库单词。
3单词测试
在主菜单中,选择对应系统的编号,进入单词测试系统,系统会给出一个英文让你输入中文意思,正确就会再给出其他单词进行测试,错误还可以重新输入,该程序对答对题目有记录,最后得到最终成绩。
4退出
在主菜单中,选择对应系统的编号,退出系统。
表1
3.2代码的分析说明
voidwtest();//单词测试函数
voidEnglish();//英译汉函数
voidyulan();//单词预览函数
voidluru();//录入单词函数
voidprint()//界面函数
FILE*fp;
fp=fopen("c:
\\ciku.txt","a+")作用是为了读写打开了一个文本文件《ciku》。
fclose(fp);关闭文件。
fprintf()的作用是整型变量和实型变量的值按某种格式输出到fp指向的文
件上。
for语句实现循环。
break语句可以使流程跳出switch结构,继续执行switch语句的下面的一个语句。
3.3单词录入系统流程图
图3.1单词录入系统流程图
4功能模块的调试及测试
4.1功能模块的测试
(1)我们这个小组做的是背单词系统,我做的是单词录入系统。
下面来介绍一下我的程序。
首先我们看到程序的主菜单如图4.1所示,输入2进入单词预览系统,预览词库的单词,这样做的目的是为了检查等下做的录入单词系统是否运行成功了。
图4.1
(2)如图4.2所示,进入到预览系统的界面,我们可以预览单词且看到最后的一个单词是“Saturday星期六”。
图4.2
(3)如图4.3所示,现在选择1进入单词录入系统。
图4.3
(4)如图4.4所示,进入了单词录入的子菜单,然后根据提示选择要录入的单词个数。
图4.4
(5)如图4.5所示,选择录入一个单词,先输入英文,然后再输入中文。
图4.5
(6)如图4.6所示,自动返回到主菜单,然后选择2单词预览系统,检查是否把单词录入到词库中去。
图4.6
(7)如图4.7所示,显然,刚才把录入的新单词“studious勤奋的”成功的添加到了词库中去,说明该程序运行成功了。
图4.7
(8)现在还可以任意选择进入哪个系统或是退出,简便又快捷。
4.2程序的调试
编写最重要的一个部分是对程序的调试,以下是一些对主要步骤:
voidluru()//单词录入系统
{
system("cls");
printf("****************************************\n");
printf("**********欢迎进入单词录入系统**********\n");
printf("****************************************\n");
inti,n;
printf("请输入你要输入的单词个数:
\n");
scanf("%d",&n);
FILE*fp;
for(i=0;i{
printf("请输入单词:
\n");printf("英文:
");
scanf("%s",ciku[i].english);
printf("中文:
");
scanf("%s",ciku[i].chinese);
}
fp=fopen("c:
\\ciku.txt","a+");//单词写入文件
for(i=0;i{
fprintf(fp,"%s%s\n",ciku[i].english,ciku[i].chinese);
}
fclose(fp);
print();
}
运行上述程序的时候,当进入该画面以后按回车键就直接退了出来,有明显的错误,后来经过认真研究才知道,在程序的后面少加了getchar(),getchar()的作用是把回车符去除,经过调试以后添加了函数getchar(),当加上该函数后
{
fprintf(fp,"%s%s\n",ciku[i].english,ciku[i].chinese);
}
fclose(fp);
getchar();
print();
}
再进行调试以后程序没有了错误,程序运行通畅无比,那是柳暗花明又一村的感觉啊!
5总结
在大学以前我从来就没见过C语言,这东西对我来说是十分陌生的。
刚开始学C语言,感到每天都在云里雾里飘着,感觉对这个东西真的好难入手。
但学了一段时间后逐渐对C语言有了认识,并能进行简单操作。
现在我们又要开始进行课程设计,顿时有点蒙了,不过我不会放弃,万事开头难,只要我找到方法,我一定可以的。
刚开始编程时,那个“error”啊,错得那是一大堆啊,于是我开始了漫长而繁琐的地毯式搜查,等到做出来那一刻的感觉,那真是无法用言语形容。
最后在我们整个团队的团结合作下,终于一个程序浮出了水面!
!
!
我们终于完成了,真高兴啊!
其实程序本身并没有其他人说的那么麻烦,但真正做起来需费些工夫。
就我这个平常上课认真听老师讲课。
我们得有不懈追求的精神,精益求精的追求,不断完善的理念,对理想崇高的追求,有一种不完成誓不罢休的精神。
终于,在一次又一次的被退回的过程中,我终于明白了一个人生的至理——没有最好,只有更好,没有最复杂,只有更复杂,没有最后的难题,只有下一个难题,没有一文不值,只有一钱不值。
此次课程设计重在检测对C程序的应用,通过此次课程设计找出了自身许多的不足,明白了学习基础的重要性,平时一般是看书本内容,缺少了自身的实践,要把理论与实践相结合,那么才能达到最好的效果,既能学得更多,又能加深巩固知识,一举两得。
要完成一个优秀的程序,必须熟练掌握各种语句的特点及用法,要学会举一反三,充分实现C程序的灵活性。
在平时的学习实践中,要不断开动脑筋,活学活用。
要发扬团体合作的精神,互帮互助,共同进步。
善于发问,善于思考。
遇到不明白的先自己看书,一边学习一边琢磨,然后再多加调试,如果做正确了成就感顿时油然而生,使自身充满自信,实在做不出来问老师或是同学,可以很快地解决问题,让你豁然开朗,但是得自己消化这些内容,消化以后就又学到了新方法新知识。
此次设计是在学习中实践,实践中去学习,不断实践不断学习,我们学习之路还很长很长,我们得脚踏实地,一步一个脚印,
最终定能成功。
致谢
感谢学校提供的优良的学习环境,感谢xxxxxxx老师的指导,老师的耐心讲解帮助我解决了许多的难点,也学到了更多的知识,也很感谢我们团队xxxx同学的帮助。
参考文献
[1]谭浩强著.C程序设计(第三版).北京:
清华大学出版社,2005
[2]谭浩强编著.C++程序设计.北京:
清华大学出版社,2004
程序清单
#include
#include
#include
#include
voidwtest();//单词测试函数
voidEnglish();//英译汉函数
voidyulan();//单词预览函数
voidluru();//录入单词函数
voidexit();//退出系统
structciku
{
charenglish[10];
charchinese[10];
}
ciku[100];
voidprint()//界面函数
{
charc;
printf("############欢迎您进入背单词系统#########\n");
printf("#############1、录入单词############\n");
printf("#############2、单词预览############\n");
printf("#############3、单词测试############\n");
printf("#############0、退出系统############\n");
printf("选择1.进入录入单词系统\n");
printf("选择2.进入单词预览系统\n");
printf("选择3.进入单词测试系统\n");
printf("选择0.退出系统\n");
printf("请输入您要进入的系统:
\n");
c=getchar();
switch(c)
{
case'1':
luru();break;
case'2':
yulan();break;
case'3':
getchar();wtest();break;
case'0':
exit();break;
}
}
voidexit()
{system("cls");
printf("*********您已成功退出系统**********\n");
printf("***********欢迎再次使用************\n");
printf("***************再见****************\n");
exit(0);
}
voidluru()//单词录入系统
{system("cls");
printf("****************************************\n");
printf("**********欢迎进入单词录入系统**********\n");
printf("****************************************\n");
inti,n;
printf("请输入你要输入的单词个数:
\n");
scanf("%d",&n);
FILE*fp;
for(i=0;i{
printf("请输入单词:
\n");//输入单词
printf("英文:
");
scanf("%s",ciku[i].english);
printf("中文:
");
scanf("%s",ciku[i].chinese);
}
fp=fopen("c:
\\ciku.txt","a+");//单词写入文件
for(i=0;i{
fprintf(fp,"%s%s\n",ciku[i].english,ciku[i].chinese);
}
fclose(fp);
getchar();
print();
}
voidyulan()//单词预览系统
{
system("cls");
inti;
FILE*fp;
fp=fopen("c:
\\ciku.txt","r");
for(i=0;i<100;i++)
{
fscanf(fp,"%s%s",ciku[i].english,ciku[i].chinese);
printf("%s%s\n",ciku[i].english,ciku[i].chinese);
}
fclose(fp);
getchar();
print();
}
voidwtest()
{
system("cls");//单词测试系统
charch;
printf("****************************************\n");
printf("**********欢迎进入单词测试系统**********\n");
printf("****************************************\n");
printf("请选择单词测试模式:
\n");
printf("\t1英译汉\n");
printf("\t2退出\n");
ch=getchar();
switch(ch)
{
case'1':
English();break;
case'2':
exit();break;
}
}
voidEnglish()//英译汉函数
{
system("cls");
printf("###########欢迎进入单词测试--英译汉系统###########\n");
printf("如果要退出请直接输入#!
\n");
FILE*fp;
fp=fopen("c:
\\ciku.txt","r");
charChin[10];
intt=0,n=0,f=0,w=0,x;
{
srand(time(0));//随机产生一个整数
x=rand()%5;
for(n=0;n<10;n++)
{
fscanf(fp,"%s",ciku[x].english);
fscanf(fp,"%s",ciku[x].chinese);
printf("%s\n",ciku[x].english);
printf("请您输入其汉语意思:
\n");
scanf("%s",Chin);
if(strcmp(Chin,"#")==0)break;
if(strcmp(ciku[x].chinese,Chin)==0)
{
printf("恭喜您,答对了!
请继续测试!
\n");
t++;//答对的题的个数
x=++x%5;//随机产生一个单词
else
{
printf("答案有误,请重新输入:
\n");
scanf("%s",Chin);
if(strcmp(ciku[x].chinese,Chin)==0)
{
printf("恭喜您,答对了!
请继续测试.\n");
t++;
x=++x%5;
}
else
{
printf("答案有误,请继续努力!
\n");
printf("正确答案是:
%s\n",ciku[x].chinese);
f++;
x=++x%5;
}
}
}
}
printf("您答对了%d道题\n",t);
getchar();
print();
}
voidmain()
{
system("color29");
print();
}