交规考试系统实训报告.doc_第1页
交规考试系统实训报告.doc_第2页
交规考试系统实训报告.doc_第3页
交规考试系统实训报告.doc_第4页
交规考试系统实训报告.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

北京联合大学实 训 报 告课程名称: C语言程序设计课设 项目名称: 交规考试系统 学 院: 自动化学院 专 业: 自动化 姓 名: 孙士杰 张宝林 曾明磊 学 号: 09100302210 0910302202 09100302203 指导教师: 李红豫 成 绩: 2010年6月 16 日目录:第1部分 课程设计题目与要求31问题描述32功能要求33任务分工4第部分 交规考试系统的设计与功能实现51.总体设计52数据结构53.算法设计64.程序代码设计265.测试与调试30第部分 课程设计总结311.个人总结312.结束语31附录一 程序清单32附录二 用户使用说明书48参考文献49第1部分 课程设计题目与要求1问题描述 题目名称:交规考试系统主要用途: 为了随时间相同标准检查考生交规达标情况,并减轻考官出题和判卷的负担,用计算机出题和判卷。假设以用记事本建立了文件file1.dat,该文件中存放了若干选择题(四选一)及相关记录,每个记录包括题号、题目、A、B、C、D选项内容、正确答案。2功能要求 考试系统分管理人员子系统和考生考试子系统,菜单如图所示。printf(|-|n); printf(| 请输入选项编号(03) |n); printf(|-|n);printf(| 1-开始答题 |n);printf(| 2-显示答题情况 |n);printf(| 3-修改答案 |n); printf(| 0-交卷 |n);printf(| 4-返回主菜单 |n); printf(|-|n);主菜单中选择1:确认管理者身份,当密码(假设为222222)正确时,进入如图所示的管理人员子系统,并进行管理员的工作。在其中选择1,报名参加考试。从键盘输入考生身份证号、姓名、年龄、性别,系统根据年龄确定该考生是否报名成功,如果年龄在1870岁之间,则显示“报名成功!”,并将考生信息存入文件file2.dat中。选择2,显示所有考生信息。选择3,打印考试合格通知单,当成绩大于等于90分时,才可以打印。选择0,退出系统。本子菜单循环显示。主菜单中选择2:确认考生身份,当考生身份证号在file2.dat文件中存在时,进入如图所示的考生考试子系统并开始考试。在其中选择1,系统随机产生题号并从题库中将题目调出,显示在屏幕上。考生开始答题,选择2,显示做题结果。显示该考生所做的题号、题目、考生答案和、A、B、C、D选项内容。选择3,修改答案。修改用户选择的题目答案。选择0,询问“确认是否交卷?”若选择“Y”,则将该考生信息和成绩存放在文件file3.dat中,并显示本人分数后退出系统。选择“N”,等待继续答题。主菜单中选择3:创新功能,考生查询成绩。主菜单中选择0:显示结束信息,按任意键后,退出系统。|-|请输入选项编号(03)|-|1-开始答题 |2-显示答题情况 |3-修改答案 | 4-返回主菜单 |0-退出系统 |考生考试子系统|-|请输入选项编号(03) |-|1-报名考试 |2-显示全部考生信息 |3-打印考试合格通知单|4-返回主菜单 |0-退出系统 |管理人员子系统|-|请输入选项编号(03)|-|1-管理人员子系统 |2-考生考试子系统 |3-创新功能 |0-退出系统 |考试系统主菜单3任务分工孙士杰:制作:主函数创新功能程序及流程图和报告。张宝林:制作:考生考试子系统的流程图和程序。曾明磊:制作:管理人员子系统流程图和程序。实训报告全部内容。第部分 交规考试系统的设计与功能实现1. 总体设计主函数(main)1) 考试系统主菜单1、 管理人员(manager)2、 考生考试(mystu)3、 创新(mycreate)2) 管理人员子系统1、 报名考试(mysign)2、 考生信息(myinformation)3、 合格通知单(mytongzhi)4、 返回主菜单(myprint)3) 考生子系统 0、交卷(myfinish) 1、答题(myanswer) 2、答题情况(mysituation) 3、修改答案(mycorrect) 4、返回主菜单(myprint)2数据结构truct stu int age,score; char name20,sex20,num20; int t5; char stuanw 6; b100;struct sel int num; char seltitle100 ,sela50 ,selb50,selc50 ,seld50 ; char selanw;s100 int n,xp=0;3.算法设计采用模块化的思想,按照“自顶向下,逐步细化”的原则设计算法。模块图: 流程图:mysort_sell 函数模块的流程图mysort_profit函数模块的流程图出口m=m+1输出商品的品名、进价、售价、销售量、进货量、销售额剩余数、毛利T 管理人员 报名 显示考生信息打印合格通知单 入口打开文件打开成功?结束开始答题是否修改?答后的结果交卷关闭程序结束假真是否考生子系统4.程序代码设计() 编写主函数。一般情况下,都是在主函数中调用其他功能函数。为了能够测试主函数,可在调用函数的位置处先用空函数占位。每编写好一个相应的调用语句取代对应的空函数,此次处略。主函数代码如下:main() char choose=0,yes_no=0;int i;FILE *fp; n=0;fp=fopen(e:file2.dat.txt,r);i=0;while(feof(fp)=0)fscanf(fp,%s%s%d,bi.num,,&bi.age);i+;n=i; do myprint(); printf( ); scanf( %c,&choose); switch(choose) case1:manager(); break; case2:mystu(); /* myprint2()*/ break; /case3:mycreate(); break; case0:exit(0); default:printf(n %c为非法选项!n,choose); printf(n 要继续选择吗(Y/N)?n); do yes_no=getche(); while(yes_no!=Y&yes_no!=y&yes_no!=N&yes_no!=n);while(yes_no=Y|yes_no=y);printf(n);() 编写显示菜单的myprint()函数编写显示菜单的mprint函数,并编译、连接、运行程序。此函数不需要传递参数,也不需要再定义任何变量。函数代码如下:void myprint() system(cls); printf(|-|n); printf(|请输入选项编号(03)|n); printf(|-|n); printf(|1-管理人员子系统 |n); printf(|2-考生考试子系统 |n); printf(|3-创新功能 |n); printf(|0-退出系统 |n);printf(|-|n);printf(n);printf(输入选项编号:);完整程序请详见附录一5.测试与调试测试数据类型测试数据预期结果测试结果合法数据管理人员子系统选1报名成功报名成功选2身份证、姓名、性别、年龄身份证、姓名、性别、年龄选3打印合格通知单打印合格通知单选0退出系统退出系统考生考试子系统选1答题答题选2显示答题情况显示答题情况选3修改答案修改答案选0交卷交卷主菜单选3进入创新功能进入创新能主菜单选0退出系统退出系统第部分 课程设计总结1.个人总结孙士杰:经过这两周的学习,我收获了很多,也有很多感想。这次实训巩固了这学期学过的C语言的相关知识,改正了学习中常常出现的一些错误,使我对C语言的学习更加深入、透彻。我也发现了自身在学习中的一些不足,例如:多细节知识不够重视,掌握不牢,以致在编程中常常出现一些不应犯的错误。在这里我首先要感谢的是我们的指导老师,在她的指导下我才认识到自己的错误所在,并及时更正。同时她也给我讲到了许多常见的编程问题和常出现的错误,对我接下来的编程帮助很大,也使我在以后编程的时候,更加小心谨慎。同时也要感谢我们对的队友,在他们的帮助下我们顺利的完胜了任务。虽然我们在编程的时候遇到了很多问题,但是我们还是解决了,真的很高兴和他们一起合作。这次实训增强了我的团队合作能力,给我很大帮助,我会在以后的学习和工作中,把这次学到到知识运用到其中,这次实训也增强了我对C语言的兴趣,我会倍加努力学好C语言。张宝林:我在本次程序设计中认识到团队合作的重要性,以及对细节问题的关注。但在完成的过程中,因为马虎,在编写代码时有错,出现运行结果不符合要求,但不能马上发现错误,我负责编辑部分,因为考虑不周到,还需要在此进行添加。在以后的学习中,我会更加认真、谨慎。曾明磊:我经过这两周的学习实践,对C语言的认识更加深入,也对C语言这门课程越来越有兴趣了,虽然在编程过程中仍有着许多的问题,但我基本上都逐一的解决了。我以后还会尽量多多学习有关C语言的相关知识,使自己能更加娴熟的掌握这门课程。2.结束语经过两周小组成员的不懈努力,我们顺利地完成了这项工作。在此,我们应由衷感谢C语言李红豫老师对我们的大力帮助,使我们的工作能顺利地完成,我们会牢记老师的教导,更加努力学习。附录一 程序清单#include#include#include#include#include #include struct stu int age,score; char name20,sex20,num20; int t5; char stuanw6; b100;struct sel int num; char seltitle100 ,sela50 ,selb50,selc50 ,seld50 ; char selanw;s100;int n;int xp=0; void myprint(); void myprint1(); void myprint2(int k); void manager(); void mysign(); void myinformation(); void mytongzhi(); void mystu(); void myage(); void myanswer(int k); void mysituation(int k); void mycorrect(int k); void myfinish(int k); main() char choose=0,yes_no=0;int i;FILE *fp; n=0;fp=fopen(e:file2.dat.txt,r);i=0;while(feof(fp)=0)fscanf(fp,%s%s%d,bi.num,,&bi.age);i+;n=i; do myprint(); printf( ); scanf( %c,&choose); switch(choose) case1:manager(); break; case2:mystu(); /* myprint2()*/ break; /case3:mycreate(); break; case0:exit(0); default:printf(n %c为非法选项!n,choose); printf(n 要继续选择吗(Y/N)?n); do yes_no=getche(); while(yes_no!=Y&yes_no!=y&yes_no!=N&yes_no!=n);while(yes_no=Y|yes_no=y);printf(n);void myprint() system(cls); printf(|-|n); printf(|请输入选项编号(03)|n); printf(|-|n); printf(|1-管理人员子系统 |n); printf(|2-考生考试子系统 |n); printf(|3-创新功能 |n); printf(|0-退出系统 |n);printf(|-|n);printf(n);printf(输入选项编号:);void manager()int i=0; char psword10; printf(input password:); for(i=0;i=18&bn.age=70)printf(报名成功);fprintf(fp,%20s %20s %5d,bn.num,,bn.age);n+;elseprintf(报名失败); printf(n);fclose(fp);void myinformation() int i; FILE * fp=NULL; fp=fopen(e:file2.dat.txt,r); system(cls); printf(身份证号 姓名 年龄 n); /*while(feof(fp)=0) fscanf(fp,%20s%20s%d%c,bi.num,,&bi.age,&bi.sex); printf(%20s%20s%5s%5s,bi.num,,bi.age,bi.sex); i+; if(i=0) printf(n 文件中无记录); else printf(n 文件中共有%d个记录!n,n); fclose(fp); */ for(i=0;in;i+) printf(%s %s %dn,bi.num,,bi.age);void mytongzhi() /int n=0;int i; FILE * fp=NULL; fp=fopen(e:file2.dat.txt,r); system(cls); printf(身份证号 姓名 年龄 成绩 n);for(i=0;i=90) printf(%s %s %d %dn,bi.num,,bi.age,bi.score);/* while(feof(fp)=0) fscanf(fp,%20s%20s%5s%5s,bi.num,,bi.age,bi.sex); if(bi.score=90)printf(%20s%20s%5s%5s,bi.num,,bi.age,bi.sex); i+; fclose(fp);*/ void mystu()int i;char id20;printf(输入你的身份证号: );scanf(%s,id);for(i=0;in;i+)if(strcmp(id,bi.num)=0) myprint2(i);void myprint2(int k) /int k;char yes_no,choose;dosystem(cls); printf(nn); printf(|-|n); printf(| 请输入选项编号(03) |n); printf(|-|n);printf(| 1-开始答题 |n);printf(| 2-显示答题情况 |n);printf(| 3-修改答案 |n); printf(| 0-交卷 |n);printf(| 4-返回主菜单 |n); printf(|-|n); printf(n);printf(输入选项编号:);scanf( %c,&choose);switch(choose)case1:if(xp=0) myanswer(k); xp+; break; else printf(您已答过,请自觉!);break;case2:mysituation(k); break;case3:mycorrect(k); break;case4:myprint(); break;case0:myfinish(k); break;default:printf(n %c为非法选项!n,choose);printf(n 要继续选择吗(Y/N)?n); do yes_no=getche(); while(yes_no!=Y&yes_no!=y&yes_no!=N&yes_no!=n);while(yes_no=Y|yes_no=y);void myanswer(int k)int i=0,j=0,u=0;int a;FILE *fp;srand(time(0);for(i=0;i5;i+) a=rand()%9+1;bk.ti=a; fp=fopen(e:题目.txt,r);while(feof(fp)=0)/for(i=0;i5;i+)fscanf(fp,%d%s%s%s%s%s %c,&sj.num,sj.seltitle,sj.sela,sj.selb,sj.selc,sj.seld,&sj.selanw);j+;fclose(fp);for(i=0;i5;i+) for(j=0;j10;j+)if(bk.ti=sj.num )printf(%dn%sn%sn%sn%sn%snn,sj.num,sj.seltitle,sj.sela,sj.selb,sj.selc,sj.seld); printf(输入答案:);printf(n);scanf( %c,&bk.stuanwu);u+;void mysituation(int k)int i; system(cls); printf(ntstudent ID:%s,bk.num); for(i=0;i5;i+) /s bk.ti-1.num) printf(nnnNO %d %s sellect:,i+1,sbk.ti-1.seltitle); printf(tn%s,sbk.ti-1.sela); printf(tn%s,sbk.ti-1.selb); printf(tn%s,sbk.ti-1.selc); printf(tn%s,sbk.ti-1.seld); printf(ntStudent answer:%c,bk.stuanwi); /printf(ntRight answer:%c,sj.selanw); if(i+1)%2=0) printf(nnnttPress any key.); getch(); system(cls); void mycorrect(int k)int i=0;int j=0; system(cls);for(i=0;i5;i+) /s bk.ti-1.num) printf(nnnNO %d %s sellect:,i+1,sbk.ti-1.seltitle); printf(tn%s,sbk.ti-1.sela); printf(tn%s,sbk.ti-1.selb); printf(tn%s,sbk.ti-1.selc); printf(tn%s,sbk.ti-1.seld); printf(ntCorrect answer:); scanf( %c,&bk.stuanwi); /printf(ntRight answer:%c,sj.selanw); if(i+1)%2=0) printf(nnnttPress any key.); getch(); system(cls); /*for(i=0;i5;i+)if(toupper(bk.stuanwi)=sbk.ti-1.selanw ) bk.sc

温馨提示

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

评论

0/150

提交评论