C语言课程设计-背单词系统_第1页
C语言课程设计-背单词系统_第2页
C语言课程设计-背单词系统_第3页
C语言课程设计-背单词系统_第4页
C语言课程设计-背单词系统_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、综合性程序设计报告设计题目: 背单词系统指导教师: XXX班 级: 学 号: 设 计 者: XXX成 绩: _设计时间: 年 月 日一、 题目描述使用C语言设计一个背单词系统,该系统是帮助学生背诵单词的软件,要求用户可以选择背诵的词库,并可以编辑自己的词库。系统可以给出中文,让学生输入其英文意思,也可输出英文让学生输入中文意思。并判定词义是否正确。如不正确给出提示并要求用户重新输入。如正确给以鼓励。还应有词语预览功能。基本功能: 词库的维护(单词的添加、修改、删除) 课程预览(单词的展示) 显示中文用户输入英文的背诵方法 显示英文用户输入中文的背诵方法 背诵成绩的记录(本程序设计运行一次程序所

2、背诵的所有单词,答对一个得10分,打错一个扣5分)二、 功能模块分解及说明1、 树形结构模块图2、 模块功能概述程序概述:设计录入词库的结构体,结构体中分别存放英文和中文,整个程序基本上就是关于结构体的操作,其中包括了顺序结构、循环结构、选择结构。单词添加:用户自己输入单词以及翻译,存入结构体中。单词修改:首先在词库中找到这个单词(如果没有则提示用户没有该单词),然后用户输入修改后的单词及翻译。单词删除:先在词库中找到单词,然后将这个单词之后的所有单词顺次前移,实现删除功能。输出词库:输出结构体存放的单词。单词测试:用户首先选择测试模式,然后词库中输出现有单词,用户希望结束时输出“jieshu

3、”,并且在这两个函数中计分。显示成绩:输出测试的成绩。三、 设计测试说明1、 有关头文件、变量、结构体的说明1、头文件#include<stdio.h>#include<stdlib.h>#include<string.h>2、宏定义#define N 100#define S 203、全局结构体struct words/定义一个words结构体char eS;/存放英语单词char cS;/相应的汉语翻译strN;/定义结构体变量4、全局变量int fenshu=0; /全局变量,用于统计分数 int count1=0;/全局变量,用于统计测试单词个数in

4、t p=0;/全局变量,用于统计单词个数 二、程序源代码(函数部分以及系统使用截图) 1、主函数 int main() int n; char ch,chioch; printf("n"); printf("t*n"); printf("t* 欢迎使用背单词系统! *n"); printf("t* 设计者:郭鑫钢 *n"); printf("t* 班级:31342 学号:3134205 *n"); printf("t*n"); printf("t* 1、单词添加 2

5、、单词删除 *n"); printf("t* 3、单词修改 4、单词展示 *n"); printf("t* 5、英译汉 6、汉译英 *n"); printf("t* 7、成绩查询 8、退出系统 *n");printf("t*n"); printf(" 请选择您需要的操作序号<1-6>,按回车结束:"); while(1) scanf("%d",&n); switch(n) /执行相应的函数,实现相应的功能 case 1:tianjia();bre

6、ak; case 2:shanchu();break; case 5:fanyi1();break; case 3:xiugai();break; case 4:shuchu();break; case 6:fanyi2();break; case 7:chengji();break; case 8: printf("你确认要退出吗?y/n!n"); scanf("%c%c",&ch,&chioch); if(ch='y'|ch='Y') exit(0); /退出系统的操作 default :printf(

7、"你输入了错误的操作,无法执行!"); exit(0); return 0;2、往词库中添加词汇void tianjia() char ch;do printf("录入词库!n"); printf("请输入英语单词:n"); scanf("%s",strp.e); printf("n请输入相应的中文翻译:n"); scanf("%s",strp.c); p+; printf("%s已保存,是否继续录入?y/n!n",strp.e); scanf("

8、;%s",&ch);while(ch='y'); printf("您一共录入%d个单词n",p);3、删除词库中的单词void shanchu() int i=0,j;char s20;printf("输入您想删除的单词:");scanf("%s",s);if(p<=0) printf("没有任何单词,无法删除!n");return;else for(i=0;i<p;i+)if(strcmp(s,stri.e)=0) printf("已经成功删除!n"

9、;);for(j=i;j<p;j+)strj=strj+1;p-;/循环实现单词的覆盖else if(i=p)printf("没有找到您要删除的单词!n");4、修改词库中的单词void xiugai()int i=0;char sS,yS,zS;printf("输入您想修改的单词:");scanf("%s",s);if(p<=0) printf("没有任何单词,无法删除!n");return;else for(i=0;i<p;i+)if(strcmp(s,stri.e)=0)printf(&qu

10、ot;请输入您修改后的英文单词:");scanf("%s",y);strcpy(stri.e,y);printf("请输入您修改后的中文翻译:");scanf("%s",z);strcpy(stri.c,z); printf("已经成功修改!n");elseprintf("没有找到您要修改的单词!n");5、输出词库中所有的单词void shuchu() int i=0;printf("输出词库中所有的单词!n");if(p<=0) printf("

11、没有任何单词,无法输出!n");return;else for(i=0;i<p;i+)printf("英文单词是: %s",stri.e);printf("n相应的中文意思是: %s n",stri.c);printf("词库所有单词输出完毕!n");6、显示英文用户输入中文的背诵方法void fanyi1() int i=0;char fS;char overN="jieshu" printf("请输入下面英文单词的翻译,希望结束输入时请输入 jieshu n"); /顺序输出

12、单词,并且可以随时结束 while(i<p&&strcmp(f,over)!=0)/用户不输入jieshu并且词库中单词没有全部输出时执行循环 printf("%s ",stri.e); scanf("%s",&f); if(strcmp(stri.c,f)=0) printf("正确!n");fenshu+=10; /用于计算分数 else printf("很遗憾,正确的翻译为:"); printf("%sn",stri.c); fenshu-=5;/用于计算分数

13、 count1+; i+; 7、显示中文用户输入英文的背诵方法void fanyi2() int i=0;char fS;char overN="jieshu" printf("请输入下面英文单词的翻译,希望结束输入时请输入 jieshu n"); while(i<p&&strcmp(f,over)!=0) printf("%s",stri.c); scanf("%s",&f); if(strcmp(stri.e,f)=0) printf("正确!n");fensh

14、u+=10; else printf("很遗憾,正确的翻译为:"); printf("%sn",stri.e); fenshu-=5; count1+; i+; 8、显示测试结果和成绩void chengji()printf("本次测试的成绩是:n");printf("总共:%d个n",count1);printf("正确:%d个n",fenshu);printf("最后得分为(答对一个得10分,答错一个扣5分):%d n",fenshu);四、 设计体会在看到我的选题后,刚

15、开始有点蒙。然后看到要求说必须用到文件,可是文件还没有学,所以我决定先看看文件那部分的内容。大概烦了一遍书以后,我去图书馆找了基本C语言项目实例的书籍,里面好多的实例都给了我很大的启发。之后我就开始着手写我的程序。刚开始我仿照一本书里有的关于商品信息的管理的程序来写。里面涉及的大量的文件操作,使得我有时候看不懂甚至摸不着头脑。迫于时间上的要求,我不得不放弃已经写了200多行的程序,开始换个思路来考虑程序。考虑到我自己对结构体还是比较熟悉的,所以我想到不使用文件而是直接将单词存放进结构体中。然后整个程序就是对结构体的一系列操作。在写删除单词这个函数中,我遇到了困难,刚开始没有想到数据覆盖这么一个

16、办法,用了好多很笨的方法但是还没有出效果。最后偶然间在网上看到了关于一片指针覆盖的博客,然后我就想到了这种解决办法,果然奏效了!通过这次C语言的课程设计,我深深体会到了一门语言的深奥,是值得我去好好学习和深入研究的。就拿这个程序中几个小小细节,比如:while(i<p&&strcmp(f,over)!=0)。这个是我在写测试两个函数的时候遇到的一个小问题。我不知道应该怎么去写这个循环的条件,最后我让一位同学看过我的程序后,帮我解决了这个问题。虽然只是几个简单语句的结合,但是真的是非常的巧妙。所以,通过这次的课程设计让我发现了许多不足,包括对循环、结构体的应用以及字符串处理函数等的认识都存在一定的盲区。课程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论