




已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京联合大学课程设计报告课程名称: C语言程序设计课设 项目名称: 电子生词库系统 学院: 管理学院 专业: 信息管理与信息系统 姓名: 学号: 指导教师: 成 绩: 2010年6月 8 日目 录第1部分 课程设计题目与要求31.问题描述32.功能要求33.任务分工4第2部分 的设计与功能实现51.总体设计52.数据结构243.算法设计与程序代码设计254.测试与调试27第3部分 课程设计总结281.个人总结512.结束语54附录 程序清单55附录 用户使用说明书71参考文献72第1部分 课程设计题目与要求1.问题描述根据需要,建立属于自己的生词库,使用起来方便。生词选自本人常需要的单词中,对于英语单词,给出中文含义,对于中文单词给出英文含义。2.功能要求循环显示如图(a)所示的主菜单。在主菜单中选择1:创建生词库。用文件建立一个单词库,中英文单词均有,对于英文单词,给出中文解释,对于中文单词给出英文解释。请输入选项编号(05)1 创建生词库2 显示词库3 编辑词库4 查找生词5 单词测试6 程序帮助(a)电子生词库主菜单0退出系统请输入选项编号(04)1显示所有单词2显示中文单词3显示英文单词4返回(b)显示词库子菜单0退出系统请输入选项编号(04)1添加新词2删除旧词3修改旧词4返回(c)编辑词库子菜单0退出系统在主菜单中选择2:进入如图(b)所示的子菜单,并显示词库。显示所有单词和单词数、所有中文单词和单词数、所有英文单词和单词数,显示英文单词时按字母从小到大的顺序排列。在子菜单选择4,返回主菜单;选择0,退出整个系统。在主菜单中选择3:首先确认密码,然后进入如图(c)所示的子菜单,并编辑词库,如添加新词、删除旧词、修改旧词。在子菜单选择4,返回主菜单;选择0,退出整个系统。在主菜单中选择4:查找生词。显示所要查找的单词和其含义。在主菜单中选择5:单词测试(此项为本组创新功能)。随即从单词库中选出10个要考试的单词进行测试,正确6个即可以通过。在主菜单中选择6:程序帮助(此项为本组额外添加功能)。如图(d)所示的子菜单。选择1,查询使用说明;选择2,查询设计人员和联系方式;选择3,返回主菜单;选择4,退出整个系统。请输入选项编号(04)1使用说明2设计人员3返回主菜单0退出系统(d)程序帮助子菜单在主菜单中选择0:显示结束信息:“感谢使用本软件!”,按任意键后,退出本系统。在本章中需要实现的功能要求:(1) 设计如图(a)所示的主菜单。(2) 选择2时,显示如图(b)所示的子菜单。(3) 选择3时,首先确认密码,然后显示如图(c)所示的子菜单。主菜单和子菜单能够循环出现,每一项菜单执行之后,询问用户是否继续进行。从子菜单可以返回主菜单。3.任务分工本组组员3名:项雨婷,赵帅阳,刘向(组长)。其中,项雨婷主要负责(3)编辑词库和(4)查找生词,赵帅阳主要负责(1)创建生词库(2)显示词库,刘向主要负责(5)创新功能(即是单词测试)和(6)程序帮助。调试与测试为本组全部成员共同完成。流程图为刘向完成。实训报告为本组成员共同完成。第2部分 的设计与功能实现1. 总体设计细化后的电子生词库模块图:头文件名:#include#include#include#include#include被调用的函数:void myprint1();/*主菜单显示函数*/void myprint2();/*显示词库子菜单显示函数*/ void myprint3();/*编辑词库子菜单显示函数*/void mycreate();/*创建生词库函数*/void mydisplay();/*显示词库函数*/void display_all_words();/*被mydisplay调用,显示所有单词,并计数*/void display_chinese();/*被mydisplay调用,显示所有中文单词,并计数*/void display_english();/*被mydisplay调用,显示所有英文单词,并计数*/void myedit();/*编辑词库函数*/void myadd();/*被myedit调用,添加新词*/void mydelete();/*被myedit调用,删除旧词*/void mydel_Ch(); /*被myedit调用,被delete调用,按中文删除*/void mydel_En(); /*被myedit调用,被delete调用,按英文删除*/void mymodify();/*被myedit调用,修改旧词*/void mysearch();/*查找单词函数*/void sch_Ch(); /*被search调用,按中文查找*/void sch_En(); /*被search调用,按英文查找*/void myexam();/*单词测试函数*/void myhelp();/*程序帮助函数*/void myusehelp();/*被myhelp调用,使用说明*/void mypeoplehelp();/*被myhelp调用,设计人员*/void myprintf0();/*被myhelp调用,程序帮助子菜单显示函数*/(主模块的流程图)(创建电子生词库模块的流程图)(显示电子生词库模块的流程图)(显示所有单词模块的流程图)(显示所有中文单词模块的流程图)(显示所有英文单词模块的流程图)(编辑电子生词库模块的流程图)(添加新词模块的流程图)(删除单词模块的流程图)(按中文删除单词模块的流程图)(按英文删除单词模块的流程图)(修改旧词模块的流程图)(查找单词模块的流程图)按中文查找模块的流程图按英文查找模块的流程图(单词测试模块的流程图)(程序帮助模块的流程图)2.数据结构struct wordchar Ch100;char En100;其中,Ch100是拿来放置中文单词,En100是拿来放置英文单词。struct word temp=0struct word temp=0,record100=0struct word words1000=0struct word *find=NULLstruct word ctoe100其中,temp是结构体变量,用于暂时存放输入的中英文单词。其它的类似temp,均是存放单词的作用。3算法设计与程序代码设计主函数:main()char choose=0,yes_no=0;dosystem(cls);myprint1(); /*显示菜单*/printf(n);printf(tt);choose=getch();switch(choose)case1:mycreate();break;/*创建生词库*/case2:mydisplay();break;/*显示*/case3:myedit();break;/*编辑*/ case4:mysearch();break;/*查找生词*/case5:myexam();break;/*单词测试*/case6:myhelp();break;/*程序帮助*/case0:printf(感谢您使用本软件!n);exit(0);default:printf(ntt%c为非法选项!n,choose);printf(ntt要返回主菜单吗(Y/N)?n);doyes_no=getch();while(yes_no!=y&yes_no!=Y&yes_no!=n&yes_no!=N);while(yes_no=Y|yes_no=y);void mycreate()int i=1;struct word temp=0;FILE *fp=NULL;fp=fopen(sck.dat,w);if(fp=NULL)printf(n打开文件失败!n);return;system(cls);printf(n输入第一个单词:n);printf(中文输入(用#结束):);dogets(temp.Ch);while(strcmp(temp.Ch,)=0);printf(英文(用#结束):);gets(temp.En);while(temp.Ch0!=#&temp.En0!=#)fprintf(fp,%15s%15sn,temp.Ch,temp.En);i+;printf(n输入第%d个单词:n,i);printf(中文输入(用#结束):);dogets(temp.Ch);while(strcmp(temp.Ch,)=0);printf(英文(用#结束):);gets(temp.En);fclose(fp);注:完整程序请详见附录A,这里省略。测试与调试,均为本组成员合力完成。现在展示调试的过程(主模块的测试与调试)4.测试与调试 (创建生词库模块的测试与调试1:开始)(创建生词库模块的测试与调试2:结束)(显示词库模块的测试与调试1:显示子菜单)(显示词库模块的测试与调试2:显示所有单词)(显示词库模块的测试与调试3:显示所有中文单词)(显示词库模块的测试与调试4:显示所有英文单词)(编辑词库模块的测试与调试1:输入密码)(编辑词库模块的测试与调试2:密码错误)(编辑词库模块的测试与调试3:显示编辑词库子菜单)(编辑词库模块的测试与调试4:添加新词)(编辑词库模块的测试与调试5:删除旧词之没有这个词)(编辑词库模块的测试与调试6:删除旧词之按中文删除)(编辑词库模块的测试与调试7:删除旧词之按英文删除之没有这个词)(编辑词库模块的测试与调试8:删除旧词之按照英文删除)(编辑词库模块的测试与调试9:修改旧词之无这个单词)(编辑词库模块的测试与调试10:修改旧词之有这个单词)(查找生词模块之按照中文查询)(查询生词模块之按照英文查询)(单词测试之调试前的错误)(单词测试调试后解决错误)(程序帮助模块之显示子菜单)(程序帮助模块之使用说明)(退出系统)第3部分 课程设计总结1.个人总结C语言程序设计实训总结0911030202班 赵帅阳C语言程序设计实训课程已经过了一个星期,我们团队所设计的电子生词库系统也已经完成,我负责的是创建生词库和显示词库的部分。在编写显示词库程序时,刚开始没有什么头绪不知道该怎么编写,看着其他同学已经在编写他们的程序了,我有些慌张怕编写不完拖累了我们团队。但之后我慢慢冷静下来,开始整理编写程序的线索,通过查看书籍和相关资料终于编写出我想要的程序。在创建生词库的时候,起初由于程序编程有些混乱,运行错误但也检查不出错误在哪些地方,在和团队伙伴们一起讨论之后重新编写了程序,调试之后也可以运行,我们都很高兴,在这之后,我们团队的伙伴们又陆续的把其他程序也编写好,并合并在一起,终于提前完成了大体的程序。在之后的调试过程中,我们的程序出现了两百多个错误和许多警告,我们逐步的去检查修改程序,但也碰到了许多我们无法解决的问题,幸好有老师的帮助才让我们继续下一个问题的解决。从这次实训中我体会到了团队的力量。刚开始的时候我本想以我自己的能力去把整个程序都编写出来,但目前这是不可能的。在我编写好显示词库部分的时候,伙伴们也完后了他们的程序,而且,他们真的很棒!我们一起完成了基本的程序编写,一起调试,一起解决问题,这让我看到了我们团队的团结与活力,有幸能和伙伴们一起完成这个系统程序的编写,我真的很开心。而且,这也让我更好的掌握了C语言的运用,体会到“学以致用”的道理。我相信,我们的团队是最好的,也是最棒的!C语言程序设计实训总结 0911030202班 项雨婷经过一个多星期的实训,我们组认真完成了电子生词库的程序设计,而我自己负责的主函数部分以及编辑词库和查找生词部分也成功的完成了。其实主函数是整个程序里面最简单的部分,没有复杂的do_while语句,没有特别难写的句子,所以整个程序下来我觉得编主函数最轻松。到了编辑生词库时就遇到了很多麻烦了,比如最初我们的修改旧词程序就出错了,即使你改正了会录入但原来的词却还在,怎么也删不掉。所以,我花了整整一下午在宿舍改编这部分,谁知道最后竟是因为我把指针弄错了。不过心情还是很好,因为毕竟是我自己找到的。其实还有一些问题,比如创建部分,系统一直在重复输入中,怎么也退不出来,然后,我请求了我们队员赵帅阳的帮助,终于成功的运行出来。我觉得,共同合作是我们编程过程中获得的最大收获,一个庞大的程序是由我们三个编写的无数小程序小函数组成的,哪怕其中一个细微的地方出错都可能影响我们总程序的运行。所以,三个人共同努力是必不可少的。我想,我的队友们都和我有一样的看法,所以我们很有默契,实训过程中,我们都会为一点小小的成功而欢呼雀跃,这也带动了我们的气氛,从而使我们组显得很活跃。现在,一个那么大的程序摆在我面前,我感到巨大的荣誉敢和自豪感正在上升,我也相信经过这么久的奋斗我们组是最棒的! C语言程序设计实训总结 0911030202班 刘向回忆我和我的组员们经历过的两个礼拜,我想我可以很自信的对自己乃至对所有人说,这两个星期,我没有浪费。关于我学到了什么,这点是我个人总结里面详细要说的东西。我认为我在两方面得到了提高:第一是C语言程序设计上面,第二则是在社会生活乃至精神生活上面。我认为这两个方面,也是我们这次实训要达到的目的。我想成绩不是最重要的,重要的是我们能够有所提高,也就是我认为在我说的那两个方面上要有所提高。我有所体悟,所以我说时间没有白费。C语言程序设计,得项雨婷和赵帅阳的信任和支持,让我负责了创新功能单词测试。一开始在单词测试上面遇到了很多困难,到后面逐渐解决,也是在两个人的热心帮助下,逐渐克服乃至完善的。对此,我想我说我很感动。怎么说呢,我们组,C程序设计上面,肯定是一流的水平,虽然不说是第一。但是有个东西肯定我们拿第一,那就是我们组的成员。这点从他们让我当了组长,就可以看出。事实上,在我们组,我的技术水平不是最高的,甚至还是垫底的,然而他们却让我当了组长,这我一直是认为他们的帮助。因为最后我们毕竟是要看成绩的。这些,种种的,让我看到了团队的力量和团队的信念。这又让我感动不已。所以,和他们一样,我对他们充满了热爱,我也坚信,甚至比他们还坚信的坚信,我们组员是最好的!2. 结束语感谢孙力红老师的指导,和同学们热心的帮助,我们组将会再接再厉,更上一层楼!73附录A 程序清单#include#include#include#include#includestruct wordchar Ch100;char En100;void myprint1();void myprint2(); void myprint3();void mycreate();void mydisplay();void display_all_words();/*被mydisplay调用*/void display_chinese();/*被mydisplay调用*/void display_english();/*被mydisplay调用*/void myedit();void myadd();/*被myedit调用*/void mydelete();/*被myedit调用*/void mydel_Ch(); /*被myedit调用,被delete调用*/void mydel_En(); /*被myedit调用,被delete调用*/void mymodify();/*被myedit调用*/void mysearch();void sch_Ch(); /*被search调用*/void sch_En(); /*被search调用*/void myexam();void myhelp();void myusehelp();/*被myhelp调用*/void mypeoplehelp();/*被myhelp调用*/void myprintf0();/*被myhelp调用*/main()char choose=0,yes_no=0;dosystem(cls);myprint1(); /*显示菜单*/printf(n);printf(tt);choose=getch();switch(choose)case1:mycreate();break;/*创建生词库*/case2:mydisplay();break;/*显示*/case3:myedit();break;/*编辑*/ case4:mysearch();break;/*查找生词*/case5:myexam();break;/*单词测试*/case6:myhelp();break;/*程序帮助*/case0:printf(感谢您使用本软件!n);exit(0);default:printf(ntt%c为非法选项!n,choose);printf(ntt要返回主菜单吗(Y/N)?n);doyes_no=getch();while(yes_no!=y&yes_no!=Y&yes_no!=n&yes_no!=N);while(yes_no=Y|yes_no=y);void myprint1() printf( |-|n); printf( | 请输入选项编号(05): |n);printf( |-|n);printf( | 1创建生词库 |n);printf( | 2显示词库 |n);printf( | 3编辑词库 |n);printf( | 4查找生词 |n);printf( | 5单词测试 |n);printf( | 6程序帮助 |n);printf( | 0退出系统 |n);printf( |-|n);void mycreate()int i=1;struct word temp=0;FILE *fp=NULL;fp=fopen(sck.dat,w);if(fp=NULL)printf(n打开文件失败!n);return;system(cls);printf(n输入第一个单词:n);printf(中文输入(用#结束):);dogets(temp.Ch);while(strcmp(temp.Ch,)=0);printf(英文(用#结束):);gets(temp.En);while(temp.Ch0!=#&temp.En0!=#)fprintf(fp,%15s%15sn,temp.Ch,temp.En);i+;printf(n输入第%d个单词:n,i);printf(中文输入(用#结束):);dogets(temp.Ch);while(strcmp(temp.Ch,)=0);printf(英文(用#结束):);gets(temp.En);fclose(fp);void mydisplay()/*显示词库*/char choose2=0,yes_no2=0;dosystem(cls);myprint2(); printf();choose2=getch();switch(choose2)case1:display_all_words();break;case2:display_chinese();break;case3:display_english();break;case4:return;case0:printf(感谢您使用本软件!n);exit(0);default:printf(n%c为非法选项!n,choose2);break;printf(n要返回显示词库吗(Y/N)?n);doyes_no2=getche();if(yes_no2!=Y&yes_no2!=y&yes_no2!=N&yes_no2!=n)printf(ntt%c为非法选项n,yes_no2);while(yes_no2!=Y&yes_no2!=y&yes_no2!=N&yes_no2!=n);while(yes_no2=Y|yes_no2=y);void myprint2()/*显示次菜单界面*/ printf( n);printf( |*|n); printf( | 请输入选项编号(04): |n); printf( |*|n); printf( | 1显示所有单词 |n); printf( | 2显示中文单词 |n); printf( | 3显示英文单词 |n); printf( | 4返回 |n); printf( | 0退出系统 |n); printf( |*|n);void display_all_words()/*显示所有单词*/int n=0;struct word temp=0;FILE *fp=NULL;fp=fopen(sck.dat,r);/*文件*/if(fp=NULL)printf(n打开文件失败!n);return;system(cls);while(feof(fp)=0)fscanf(fp,%15s%15sn,temp.Ch,temp.En);printf(%15s%15sn,temp.Ch,temp.En);n+;if(n=0)printf(n文件中无记录!n);elseprintf(单词数:%dn,n);fclose(fp);void display_chinese()/*显示中文单词*/int n=0;struct word temp=0;FILE *fp=NULL;fp=fopen(sck.dat,r);/*文件*/if(fp=NULL)printf(n打开文件失败!n);return;system(cls);while(feof(fp)=0)fscanf(fp,%15s%15sn,temp.Ch,temp.En);printf(%15sn,temp.Ch);n+;if(n=0)printf(n文件中无记录!n);elseprintf(单词数:%dn,n);fclose(fp);void display_english()/*显示英文单词*/int n=0,i=0,j=0;struct word words1000=0,temp=0;FILE *fp=NULL;fp=fopen(sck.dat,r);/*文件*/if(fp=NULL)printf(n打开文件失败!n);return;system(cls);while(feof(fp)=0)fscanf(fp,%15s%15sn,wordsi.Ch,wordsi.En);i+;n+;if(n=0)printf(n文件中无记录!n);elsefor(i=0;in-1;i+)for(j=i+1;j0)temp=wordsi;wordsi=wordsj;wordsj=temp;for(i=0;iCh,p-En);p+;n+;fclose(fp);doprintf(ntt请输入新纪录的单词中文:);dogets(temp.Ch);while(strcmp(temp.Ch,)=0);printf(tt请输入新纪录的单词英文:);gets(temp.En);for(p=record;pCh)=0) printf(ntt中文重复,要重新输入吗(Y/N)?);doc=getche();while(c!=y&c!=Y&c!=n&c!=N);putchar(n);break;if(p=record+n)*p=temp;break;while(c=y|c=Y);fp=fopen(sck.dat,w);if(fp=NULL)printf(ntt打开文件失败!n);return;for(p=record;pCh,p-En);fclose(fp);void mydelete()/*定义删除旧词的函数*/ char c=0;printf(tt按中文删除(C),还是按英文删除(E)?);c=getche();if(c=c|c=C) mydel_Ch(); /*按中文删除*/else if(c=E|c=e) mydel_En();/*按英文删除*/else printf(tt非法字符!n);void mydel_Ch() /*定义按中文删除函数*/char tempCh100=;int n=0;struct word record100=0,*p=NULL,*k=NULL;FILE*fp=NULL;fp=fopen(sck.dat,r);if(fp=NULL)printf(tt打开文件失败!n);return;p=record;while(feof(fp)=0)fscanf(fp,%23s%23sn,p-Ch,p-En);p+;n+;fclose(fp);printf(ntt请输入要删除单词的中文:);gets(tempCh);for(k=record;kCh)=0) break;if(krecord+n)for(p=k;pk+n-1;p+)*p=*(p+1);else printf(ntt没有这个词!n);fp=fopen(sck.dat,w);if(fp=NULL)printf(ntt打开文件失败!);return;for(p=record;pCh,p-En);fclose(fp);void mydel_En() /*定义按英文删除函数*/char tempEn100=;int n=0;struct word record100=0,*p=NULL,*k=NULL;FILE*fp=NULL;fp=fopen(sck.dat,r);if(fp=NULL)printf(tt打开文件失败!n);return;p=record;while(feof(fp)=0)fscanf(fp,%23s%23sn,p-Ch,p-En);p+;n+;fclose(fp);printf(ntt请输入要删除单词的英文:);gets(tempEn);for(k=record;kEn)=0) break;if(krecord+n)for(p=k;pk+n-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开关插座招商活动策划方案
- 2025年龙江银行股份有限公司校园招聘100人备考考试题库附答案解析
- 鹤壁诉讼律师方案咨询
- 手持执法终端培训课件
- 数值流体力学-洞察及研究
- 公共卫生资本整合路径-洞察及研究
- 高效割草机构优化-洞察及研究
- 人力资源管理师真题
- 工厂安全员证考证培训课件
- 快递疫情安全培训会议课件
- DL∕T 2568-2022 电力行业数字化审计平台功能构件与技术要求
- 足太阳膀胱经(经络腧穴课件)
- 部编人教版《道德与法治》六年级上册第9课《知法守法 依法维权》精美课件(第1课时)
- 消防喷淋系统设计合同范本
- DB32-T 4757-2024 连栋塑料薄膜温室建造技术规范
- 2024年四川省广安市中考数学试题(含答案逐题解析)
- 山西省太原三十七中2023-2024学年九年级上学期月考物理试卷(10月份)
- (幻灯片)世界各国国旗大全中文
- 物流地产发展前景分析
- 三年个人成长路线图:高中数学名师工作室
- 子宫动脉栓塞护理查房
评论
0/150
提交评论