C语言课程设计背单词系统Word格式文档下载.docx
- 文档编号:7360622
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:14
- 大小:79.02KB
C语言课程设计背单词系统Word格式文档下载.docx
《C语言课程设计背单词系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计背单词系统Word格式文档下载.docx(14页珍藏版)》请在冰点文库上搜索。
1、树形结构模块图
2、模块功能概述
程序概述:
设计录入词库的结构体,结构体中分别存放英文和中文,整个程序基本上就是关于结构体的操作,其中包括了顺序结构、循环结构、选择结构。
单词添加:
用户自己输入单词以及翻译,存入结构体中。
单词修改:
首先在词库中找到这个单词(如果没有则提示用户没有该单词),然后用户输入修改后的单词及翻译。
单词删除:
先在词库中找到单词,然后将这个单词之后的所有单词顺次前移,实现删除功能。
输出词库:
输出结构体存放的单词。
单词测试:
用户首先选择测试模式,然后词库中输出现有单词,用户希望结束时输出“jieshu”,并且在这两个函数中计分。
显示成绩:
输出测试的成绩。
三、[设计测试说明]
一、有关头文件、变量、结构体的说明
1、头文件
#include<
stdio.h>
stdlib.h>
string.h>
2、宏定义
#defineN100
#defineS20
3、全局结构体
structwords//定义一个words结构体
{
chare[S];
//存放英语单词
charc[S];
//相应的汉语翻译
}str[N];
//定义结构体变量
4、全局变量
intfenshu=0;
//全局变量,用于统计分数
intcount1=0;
//全局变量,用于统计测试单词个数
intp=0;
//全局变量,用于统计单词个数
二、程序源代码(函数部分以及系统使用截图)
1、主函数
intmain()
intn;
charch,chioch;
printf("
\n"
);
printf("
\t***********************************************\n"
\t**欢迎使用背单词系统!
**\n"
\t**设计者:
郭鑫钢**\n"
\t**班级:
31342学号:
3134205**\n"
\t**1、单词添加2、单词删除**\n"
\t**3、单词修改4、单词展示**\n"
\t**5、英译汉6、汉译英**\n"
\t**7、成绩查询8、退出系统**\n"
请选择您需要的操作序号<
1-6>
按回车结束:
"
while
(1)
{
scanf("
%d"
&
n);
switch(n)
{//执行相应的函数,实现相应的功能
case1:
tianjia();
break;
case2:
shanchu();
case5:
fanyi1();
case3:
xiugai();
case4:
shuchu();
case6:
fanyi2();
case7:
chengji();
case8:
你确认要退出吗?
y/n!
!
scanf("
%c%c"
ch,&
chioch);
if(ch=='
y'
||ch=='
Y'
)
exit(0);
}//退出系统的操作
default:
printf("
你输入了错误的操作,无法执行!
exit(0);
}
return0;
}
2、往词库中添加词汇
voidtianjia()
charch;
do{
录入词库!
请输入英语单词:
%s"
str[p].e);
\n请输入相应的中文翻译:
str[p].c);
p++;
%s已保存,是否继续录入?
ch);
}while(ch=='
您一共录入%d个单词\n"
p);
3、删除词库中的单词
voidshanchu()
inti=0,j;
chars[20];
输入您想删除的单词:
scanf("
s);
if(p<
=0)
没有任何单词,无法删除!
return;
else
for(i=0;
i<
p;
i++)
{
if(strcmp(s,str[i].e)==0)
{
已经成功删除!
for(j=i;
j<
j++)
{
str[j]=str[j+1];
p--;
}
}//循环实现单词的覆盖
elseif(i==p)
printf("
没有找到您要删除的单词!
}
4、修改词库中的单词
voidxiugai()
inti=0;
chars[S],y[S],z[S];
输入您想修改的单词:
请输入您修改后的英文单词:
scanf("
y);
strcpy(str[i].e,y);
请输入您修改后的中文翻译:
z);
strcpy(str[i].c,z);
已经成功修改!
}
else
没有找到您要修改的单词!
5、输出词库中所有的单词
voidshuchu()
输出词库中所有的单词!
没有任何单词,无法输出!
printf("
英文单词是:
%s"
str[i].e);
\n相应的中文意思是:
%s\n"
str[i].c);
词库所有单词输出完毕!
6、显示英文用户输入中文的背诵方法
voidfanyi1()
charf[S];
charover[N]="
jieshu"
;
请输入下面英文单词的翻译,希望结束输入时请输入jieshu\n"
//顺序输出单词,并且可以随时结束
while(i<
p&
&
strcmp(f,over)!
=0)//用户不输入jieshu并且词库中单词没有全部输出时执行循环
%s"
scanf("
f);
if(strcmp(str[i].c,f)==0)
正确!
fenshu+=10;
//用于计算分数
else
很遗憾,正确的翻译为:
%s\n"
fenshu-=5;
//用于计算分数
count1++;
i++;
}
7、显示中文用户输入英文的背诵方法
voidfanyi2()
=0)
if(strcmp(str[i].e,f)==0)
fenshu-=5;
count1++;
8、显示测试结果和成绩
voidchengji()
本次测试的成绩是:
总共:
%d个\n"
count1);
正确:
fenshu);
最后得分为(答对一个得10分,答错一个扣5分):
%d\n"
四、[设计体会]
在看到我的选题后,刚开始有点蒙。
然后看到要求说必须用到文件,可是文件还没有学,所以我决定先看看文件那部分的内容。
大概烦了一遍书以后,我去图书馆找了基本C语言项目实例的书籍,里面好多的实例都给了我很大的启发。
之后我就开始着手写我的程序。
刚开始我仿照一本书里有的关于商品信息的管理的程序来写。
里面涉及的大量的文件操作,使得我有时候看不懂甚至摸不着头脑。
迫于时间上的要求,我不得不放弃已经写了200多行的程序,开始换个思路来考虑程序。
考虑到我自己对结构体还是比较熟悉的,所以我想到不使用文件而是直接将单词存放进结构体中。
然后整个程序就是对结构体的一系列操作。
在写删除单词这个函数中,我遇到了困难,刚开始没有想到数据覆盖这么一个办法,用了好多很笨的方法但是还没有出效果。
最后偶然间在网上看到了关于一片指针覆盖的博客,然后我就想到了这种解决办法,果然奏效了!
通过这次C语言的课程设计,我深深体会到了一门语言的深奥,是值得我去好好学习和深入研究的。
就拿这个程序中几个小小细节,比如:
while(i<
=0)。
这个是我在写测试两个函数的时候遇到的一个小问题。
我不知道应该怎么去写这个循环的条件,最后我让一位同学看过我的程序后,帮我解决了这个问题。
虽然只是几个简单语句的结合,但是真的是非常的巧妙。
所以,通过这次的课程设计让我发现了许多不足,包括对循环、结构体的应用以及字符串处理函数等的认识都存在一定的盲区。
课程设计我算是基本完成,但是其中还是有问题的,我的发现如下:
1、程序中缺少一些警告语句,比如:
“你确定要删除吗?
(y/n)”;
2、很多输出方面的问题,导致我的程序在运行的时候不是很好看,例如单词输出时的格式不是很好;
3、没有使用清屏函数,使得运行时显得太拥挤;
4、功能还有很多值得提高的地方:
测试的时候只能顺序输出单词,没有设置相应的随机数;
通过两周的努力,我最终还是成功地完成了本次课程设计的要求,虽然有很多问题,但是我觉得这两周我的收获很大,学会了很多。
这次课程设计帮我提高了很多。
我将收益终生!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 单词 系统