c程序课程设计.doc

上传人:飞****2 文档编号:66799541 上传时间:2022-12-21 格式:DOC 页数:21 大小:310.50KB
返回 下载 相关 举报
c程序课程设计.doc_第1页
第1页 / 共21页
c程序课程设计.doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《c程序课程设计.doc》由会员分享,可在线阅读,更多相关《c程序课程设计.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、通信工程C语言强化训练实验报告学 号:姓 名:李玥萌提交日期:2011年7月9日成 绩:评 语:教师签字:东北大学秦皇岛分校计算机工程系C语言背单词系统 1、 强化训练目的a) C语言基本知识的巩固和综合运用。基本数据类型、基本控制结构、数组、指针、函数、结构体和共用体。b) C语言高级编程。链表基本操作、文件的基本操作、图形和声音制作。c) 程序的结构化设计。d) 编辑、设置、编译、调试、执行。e) C语言结合实际问题的综合设计。2、 设计题目功能主要功能包括词库的维护、词库预览,使用者对词库的添加和删除,同时具备英汉互译的查询和测试功能,并有成绩的记录。3、 设计题目要求该系统是帮助学生背

2、诵单词的软件,要求用户可以选择背诵的词库,并可以编辑自己的词库,系统可以给出中文,让学生输入其英文意思,也可输出英文让学生输入中文意思。并判定词义是否正确。如不正确给出提示并要求用户重新输入。如正确给以鼓励。还应有词语预览功能。基本功能:1.词库的维护;2.课程预览;3.显示中文用户输入英文的背诵方法;4.显示英文用户输入中文的背诵方法;5.背诵成绩的记录。4、 程序流程图mainPuts(“欢迎使用背单词系统”);While(m!=5)puts(“请选择您需要的服务”);puts(“1.单词预览”);puts(“2.英汉互译”);puts(“3.单词添加”);puts(“4.单词删除”)pu

3、ts(“5.退出系统”);scanf(“%d”,&m);Switch(m)Case2Case3Case4Case5Default;Case1Puts(“您的输入有误!”);Flowchart endCase1 foresee();是否执行测试功能? Y Ntestchinesetestenglish返回主菜单testchineseInt i=0,j=0,a;char word30;i10?ra=intest(); printf banka.chinese scanf word;Strcmp(banka.eword,word)=0? j+Printf 答案错误,请重新输入。Scanf word退

4、出Printf正确答案 banka.ewordi+Test2(j);TestenglishInt h=0,k=0,b;char schinese30,char scixing10;h10?b=intest(); printf bankb.eword scanf schiness;Strcmp(bankb.chinese,schinese)=0? Printf 答案错误,请重新输入。Scanf schinesePrintf正确答案 bankb.chinesePrintf 请输入对应单词的词性; scanf scixing;Strcmp(bankb.cixing,scixing)=0? k+Pri

5、ntf 答案错误,请重新输入。Scanf scixing;Printf正确答案 bankb.cixing;h+退出Tese2(k);Case2 translationputs请选择 返回上一级菜单EtocCtoEChar word20;int i=0;Char Chinese20,int i=0Puts请输入您要查询的单词 scanf word;Puts 输入您要查询的中文 scanf chineseStrcmp(banki.eword,word)!=0&iSIZE ?Strcmp(banki.chinese,Chinese)!=0&iSIZE?Printf banki.chinesePrin

6、tf banki.eword抱歉,没有查到您要找的单词i+抱歉,没有查到您要找的单词i+Case3 word_add();Char ch(ch=Y|ch=y)?Puts 请输入您要添加的单词 scanf bankx.ewordPuts请输入该词 的词性 scanf bankx.cixingputs您是否要继续?Y/NCh=getchar();x+Case4 word_delete();Char word20;int i=0;printf 请输入您要删除的单词scanf wordStrcmp(banki.eword,word)!=0&iSIZE? i+iSIZE?Puts 没有找到对应单词Ban

7、ki=banki+1 Puts删除成功i+退出 Test2Switch(n)Printf 系统故障Case0 case1Case2Case3Case4Case5Case6Case7Case8Case9case10Printf n 还需努力Printf n 还不错哈!Printf n great! 好样的!5、 主要代码#include /*引用库函数*/ #include#include#include#include#define SIZE 50/*宏定义最大数组长度为50*/void word_delete();/*删除单词函数声明*/int intest();void test2(int

8、 n); /*测试函数声明*/void testchinese();/*预览函数中的汉译英测试函数声明*/void testenglish();/*预览函数中的英译汉测试函数声明*/void foresee();/*预览函数声明*/void EtoC();/*英译汉函数声明*/void CtoE();/*汉译英函数声明*/void translation();/*翻译函数声明*/void word_add();/*添加函数声明*/void word_delete();/*删除函数声明*/struct words/*题库结构体*/ char eword20; char cixing10;char

9、 chinese50;int x=39;struct words bankSIZE=aspect,n.,方面,朝向,样子,according,ad.,依照,accustomed,a.,惯常的,习惯的,basis,n.,基础,根据,原则,confidence,n.,信心,信任,dismiss,vt.,不再考虑,解散,economy,n.,经济,节约,节省,fatal,a.,致命的,命运的,global,a.,全球的,总的,helpful,a.,给予帮助的,有用的,impose,vt.,把加强,征,largely,ad.,大部分,大量的,mystery,n.,神秘,神秘的人或事,nuclear,a

10、.,核子的,核能的,obtain,v.,获得,通用,occasion,n.,场合,时刻,particularly,ad.,尤其,特别,patient,a.,忍耐的,有耐心的,railway,n.,铁路,reaction,n.,反应,反作用,remote,a.,遥远的,偏僻的,selection,n.,选择,挑选,setting,n.,环境,背景,shrink,v.,起皱,收缩,translation,n.,翻译,译文,troublesome,a.,令人烦恼的,麻烦的,undergo,vt.,经历,经受,unlike,prep.,不像,volunteer,n.,志愿者,virtue,n.,善,美

11、德,widespread,a.,分布广泛的,普通的,withdraw,v.,收回,撤回,absence,n.,缺席,不在,abstract,a.,抽象的,抽象派的,bacteria,n.,细菌,biology,n.,生物学,生态学,characterize,vt.,成为的特征,debate,n.,vi.,争论,辩论,display,vt.,陈列,展览;void test2(int n)/*测试函数定义*/switch(n)/*多分枝选择语句switch与结束本层循环语句break结合实现测试函数功能*/case 0:case 1:case 2:case 3:printf(正确个数:%d n还需

12、努力!nn,n);getch();break;case 4:case 5:case 6:printf(正确个数:%d n还不错哈!nn,n);getch();break;case 7:case 8:case 9:case 10:printf(正确个数:%d nGreat!好样的!nn,n);getch();break;default:printf(系统故障!);getch();int intest()srand( (unsigned)time( NULL ) ); return (rand() %39+1);void testchinese()/*英译汉测试函数定义*/int i,j=0,a;

13、char word30;for(i=0;i10;i+) a=intest();printf(%sn请输入对应的单词:,banka.chinese);scanf(%s,word);if(strcmp(banka.eword,word)=0)j+;else if(strcmp(banka.eword,word)!=0)printf(答案错误,请重新输入n);scanf(%s,word);printf(正确答案:%s.nn,banka.eword);test2(j);void testenglish()/*汉译英测试函数定义*/ int h,k=0,b;char schinese50;char sc

14、ixing10; for(h=0;h10;h+) b=intest(); printf(%sn请输入对应单词的中文意思:,bankb.eword); scanf(%s,schinese);if(strcmp(bankb.chinese,schinese) =0)k+; else if(strcmp(bankb.chinese,schinese)!=0) printf(答案错误,请重新输入n); scanf(%s,schinese); printf(正确答案:%s.nn,bankb.chinese); printf(%sn请输入对应单词的词性:); scanf(%s,scixing);if(st

15、rcmp(bankb.cixing,scixing) =0)k+;elseif(strcmp(bankb.cixing,scixing)!=0)printf(答案错误,请重新输入n);scanf(%s,scixing);printf(正确答案:%s.nn,bankb.cixing); test2(k);void foresee()/*预览函数定义*/int a;char ch;puts(单词 词性 意思);for(a=0;aSIZE;a+)printf(%-16s %-8s %-20sn,banka.eword,banka.cixing,banka.chinese);printf(是否要运行测

16、试功能?N/Yn);fflush(stdin);ch=getchar();if(ch=y|ch=Y)system(cls);puts(英译汉:n);testchinese();puts(汉译英:n);testenglish();void EtoC()/*英译汉函数定义*/char word20;int i=0;puts(请输入您要查询的单词:);scanf(%s,word);while(strcmp(banki.eword,word)!=0&iSIZE)i+;if(iSIZE)printf(n该单词的中文意思为:%sn,banki.chinese);else puts(抱歉,没有查到您要找的单

17、词。);void CtoE()/*汉译英函数声明*/char chinese20;int i=0;puts(请输入您要查询的中文:);scanf(%s,chinese);while(strcmp(banki.chinese,chinese)!=0&iSIZE)i+;if(iSIZE)printf(n该单词的英文为:%sn,banki.eword);else puts(抱歉,没有查到您要找的单词。);void translation()/*英汉互译函数声明*/int a;while(a!=3)puts(请选择:);puts(1.英译汉);puts(2.汉译英);puts(3.返回上级菜单);sc

18、anf(%d,&a);switch(a)case 1:EtoC();break;case 2:CtoE();break;case 3:break;void word_add()/*单词添加函数定义*/char ch;doputs(请输入您要添加的单词:);scanf(%s,bankx.eword);puts(请输入该词的词性:);scanf(%s,bankx.cixing);puts(请输入该词的中文意思:);scanf(%s,bankx.chinese);puts(您是否还要继续?Y/N);fflush(stdin);ch=getchar();x+;while(ch=Y|ch=y);getc

19、h();void word_delete()/*单词删除函数声明*/char word20;int i=0;printf(请输入您要删除的单词:);scanf(%s,word);while(strcmp(banki.eword,word)!=0&iSIZE)i+;if(iSIZE)for(;iSIZE;i+)banki=banki+1;puts(删除成功!);else puts(没有找到对应的单词!);int main()/*主函数,实现函数功能*/int m;puts(欢迎使用背单词系统);while(m!=5)puts(请选择您需要的服务:);puts(1.单词预览);/包含单词的预览 单

20、词的测试puts(2.英汉互译);/包含英译汉 汉译英puts(3.单词添加);puts(4.单词删除);puts(5.退出系统);scanf(%d,&m);switch(m)/*多分枝选择语句switch和结束本层循环语句break实现主函数功能*/case 1:foresee();break;case 2:translation();break;case 3:word_add();break;/添加单词case 4:word_delete();break;/删除单词case 5:return 0;default:puts(您的输入有误!);6、强化训练心得体会 课程设计是一次难得的经历,这

21、期间的学习受益匪浅。首先,选择课题之后的设计过程,遇到很多之前不了解的函数和结构体的问题,通过查询课本和上网查资料,逐渐弄懂这些的过程 ,让我对C语言有了进一步更深的了解体会。其次,程序编写完成之后,对照要求检查程序,需要细心和耐心,调试程序达到预期结果。第三,团队的协作精神对于我们来说很重要。组员之间分配好任务,遇到问题时能够一起讨论解决,才能使团队的工作事半功倍。最后,设计过程中还有很重要的一点就是需要掌握一些必要的工具,例如流程图绘制过程中,为了使图像简洁明了,就需要一定的技巧。7、编写过程遇到的问题及解决 首先编写的时候,脑中有大概的方向,可是就是不知道怎么实现。后来问了学长,又看了会书,学会用switch进行编程。然后就是各个具体部分的实现问题。大部分的问题自己都可以边学边做,不停地进行运行改错,然后就是在实现那个输入错误给出提示并重新输入的功能和正确后给出最后成绩和适当鼓励的功能出现了一些问题。要么输入错误就直接给出了正确答案,要么给不出提示,还有记录成绩和鼓励的实现也有问题。后来就一直看书,不会的不懂的就百度一下,把它弄明白。这里我发现自己对链表和结构体不是很了解,所以接下来我就要好好努力学好它。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的及书本上所学不到的。8、附页:程序运行结果部分截图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁