高级程序语言设计报告背单词软件设计.docx
《高级程序语言设计报告背单词软件设计.docx》由会员分享,可在线阅读,更多相关《高级程序语言设计报告背单词软件设计.docx(15页珍藏版)》请在冰豆网上搜索。
高级程序语言设计报告背单词软件设计
«高级程序语言设计课程设计»课程设计
说明书
设计题目:
背单词软件设计
1.题目描述
该系统是帮助学生背诵单词的软件,要求用户可以选择背诵的词库,并可以编辑自己的词库,系统可以给出中文,让学生输入其英文意,也可以输出英文让学生输入中文意思。
并判断词义是否正确。
如不正确给出提示并要求用户重新输入。
如正确给以鼓励。
还应有词语预览功能。
本功能:
词库的增加或删除;
单词预览;
显示中文用户输入英文进行测试;
显示英文用户输入中文进行测试;
用户输入中文或英文进行单词的查询。
2变量、函数和结构体说明
(1)关键变量说明
intx结构体数组中元素的数目
intn测试时单词的正确个数
inta进行菜单选择
intm进行菜单选择
(2)函数定义说明
voidforesee();单词预览及进行测试
intsuiji();产生随机单词以进行测试
voidtest2(intn);测试单词的成绩
voidtestchinese();测试时系统给出中文单词
voidtestenglish测试时系统给出英文单词
voidtranslation();单词查询
voidinputword();输入单词,查询意思
voidinputenglish();输入中文,查询单词
voidjiaword();单词添加
voidjianword();单词删除
(3)结构体说明
structwords单词结构体定义
{
chareword[20];单词
charchinese[50];意思
}
structwordsbank[SIZE]定义数组结构体,存储单词
3树形结构图
4用户操作说明
运行程序后进行选择
选择1.单词预览
选择2.系统产生中文供用户测试
选择3.系统产生英文供用户测试
选择4.英汉互译
1.英译汉
2.汉译英
3.返回上级菜单
选择5.单词添加
选择6.单词删除
选择7.退出系统
#include
#include//调用动态分配函数和随机函数
#include//调用字符串函数
#include//通过控制台进行数据输入和数据输出的函数>
#defineSIZE35//定义词库单词数量
structwords
{
charmyword[10];
charchinese[10];
};//单词结构体定义
intx;
structwordsbank[SIZE]={
{"a","字母a"},
{"b","字母b"},
{"c","字母c"},
{"1","数字1"},
{"2","数字2"},
{"f","字母f"},
{"g","字母g"},
{"h","字母h"},
{"i","字母i"},
{"j","字母j"},
{"k","字母k"},
{"l","字母l"},
{"w","字母w"},
{"q","字母q"},
{"e","字母e"},
{"r","字母r"},
{"t","字母t"},
{"y","字母y"},
{"u","字母u"},
{"i","字母i"},
{"o","字母o"},
{"p","字母p"},
{"z","字母z"},
{"x","字母x"},
{"c","字母c"},
{"v","字母v"},
{"b","字母b"},
{"n","字母n"},
{"m","字母m"},
};//词库
voidtest2(intn)//测试单词的成绩
{
switch(n)
{case0:
case1:
case2:
case3:
printf("正确个数:
%d\n加油吧少年!
",n);getch();break;//会等待你按下任意键,再继续执行下面的语句
case4:
case5:
case6:
printf("正确个数:
%d\n孩子还不行哦!
",n);getch();break;
case7:
case8:
case9:
case10:
printf("正确个数:
%d\n酷毙了老大!
",n);getch();break;
}
}
intsuiji()//产生随机单词以进行测试
{
return(rand()%28);//产生0~28范围内的数字
}
voidtestchinese()//系统产生中文
{
inti,j=0,a=0;charword[40];charch;
ch=getchar();
for(i=0;i<10;i++)
{
a=suiji();
printf("%s\n请输入对应的英文:
",bank[a].chinese);
scanf("%s",word);
if(strcmp(bank[a].myword,word)==0)j++;//比较输入单词是否与词库内单词一致
}test2(j);
}
voidtestenglish()//系统产生英文
{
inti,j=0,a;charword[40];charch;
ch=getchar();
for(i=0;i<10;i++)
{a=suiji();
printf("%s\n请输入对应的中文:
",bank[a].myword);
scanf("%s",word);
if(strcmp(bank[a].chinese,word)==0)j++;//比较输入单词是否与词库内单词一致
}test2(j);
}
voidforesee()//单词预览及进行测试
{
inta;charch;
puts("单词意思");
for(a=0;aprintf("%s%s\n",bank[a].myword,bank[a].chinese);
}
voidinputword()//输入单词,查询意思
{
charword[20];inti=0;
puts("请输入您要查询的单词:
");
scanf("%s",word);
while(strcmp(bank[i].myword,word)!
=0&&iif(i%s\n",bank[i].chinese);//在词库中寻找匹配的单词
elseputs("sorry,没有查到您要找的单词。
");
}
voidinputchinese()//输入中文,查询单词
{
charchinese[10];inti=0;
puts("请输入您要查询的中文:
");
scanf("%s",chinese);
while(strcmp(bank[i].chinese,chinese)!
=0&&iif(i%s\n",bank[i].myword);
elseputs("sorry,没有查到您要找的单词。
");
}
voidtranslation()//进行单词查询
{
inta;
while(a!
=3)
{
puts("请选择:
");
puts("1.英译汉");
puts("2.汉译英");
puts("3.返回上级菜单");
scanf("%d",&a);
switch(a)
{
case1:
inputword();break;
case2:
inputchinese();break;
case3:
break;
}
}
}
voidjiaword()//单词添加
{
charch;
do
{
puts("请输入您要添加的单词:
");
scanf("%s",bank[x].myword);
puts("请输入该词的中文意思:
");
scanf("%s",bank[x].chinese);
puts("您是否还要继续?
Y/N");
ch=getchar();
x++;
}while(ch=='Y'||ch=='y');getch();
}
voidjianword()//单词删除
{
charword[10];inti=0;
printf("请输入您要删除的单词:
");
scanf("%s",word);
while(strcmp(bank[i].myword,word)!
=0&&iif(i{
for(;ibank[i]=bank[i+1];
puts("搞定删除啦!
");
}
elseputs("sorry没找到对应的单词!
");
}
intmain()//主函数
{
intm;
puts("欢迎使用背单词系统");
while(m!
=7)
{
puts("**********************************************");
puts("*请选择您需要的服务:
*");
puts("*1.单词预览*");
puts("*2.系统产生中文测试*");
puts("*3.系统产生英文测试*");
puts("*4.英汉互译*");
puts("*5.单词添加*");
puts("*6.单词删除*");
puts("*7.退出系统*");
puts("**********************************************");
scanf("%d",&m);
switch(m)
{
case1:
foresee();break;
case2:
testchinese();break;
case3:
testenglish();break;
case4:
translation();break;
case5:
jiaword();break;
case6:
jianword();break;
case7:
return0;
default:
puts("哥哥别乱输数字哦!
");
}
}
}
总结
当我打字到这里的时候,我总算松一口气了,为期2周的课程设计后终于交出课一份完整的作品。
这次课题是背诵单词的软件,初看这道题时,感觉无从下手,脑子里没有思绪,当在网上查阅资料以后,才开始有了头绪,在有了大概的思路后就开始编程了,当初本来想一口气便下来,结果发现难度很大而且很不可取,于是从主函数开始,先看程序需要哪些程序,再从各个需要的程序下手。
在编程的过程中,虽然很累,但是看着程序就像一个小孩慢慢张大,挺有成就感的,所以最终还是高兴的!
当然,世界上没有完美的作品,程序还是有不足!
本来想将字典里的词语写入文件中,但是尝试后总是出现未知的问题,所以最终放弃了。
其次,在添加单词的时候只能用英文添加,这是一个缺陷。
比较大的缺点就是这些吧,希望老师可以批评指正!