




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
综合性程序设计报告设计题目: 选择题上机考试系统指导教师: xxx班 级: xxx 学 号: xxx 设 计 者: xxx 成 绩: 设计时间: 2011 年 6 月 21日一、 题目:客观题上机考试二、 题目描述:用于客观题上机考试,可以从题库中根据范围,难度,分值,数量等条件从题库中随机抽出相应的试题,并存储。还可以把试题一道一道的显示在屏幕上由用户答题,并可以记录用户的答案,最终给出用户的成绩。基本要求: 试题的输入试题的删除 试题的抽出 试题的显示 整套试题的保存 对用户答案的处理 成绩的评定等开始对题目的解读:我将该题的程序分成了两个部分,用两个文件夹存放,一部分程序的功能是题库的生成即要求中的试题的输入,试题的删除,为了减少老师的工作量,我已经写五套试题,每道试题5个选择题生成的每套试题都存入TXT文档中,如果需要删除试题,删除TXT文档即可;另一部分的功能是试题的抽出,用户答题,答完后对用户的答案进行处理,最后给出用户成绩,以及对成绩进行点评,在实现第二部功能前需要将第一部分所产生的所有的TXT文件,复制黏贴到第二部分文件夹当中。三、 流程图:开始struct questionchar ask100;char answer200;char right5;quesSIZE;struct questionchar ask100;char answer200;char right5;quesSIZE;选择菜单menuchoise选择相应的题型switch(a)case 1:txt1();break;case 2:txt2 ();break;case 3:txt3();break;case 4:txt4();break;case 5:txt5();breakscanf(%s%s%s,&quesi.ask,&quesi.answer,&quesi.right)printf(请输入%d题答案:,i+1);scanf(%s,&d)生成相应的TXT文件,作为题库保存起来,如果想删除试题,删除TXT文件即可打开文件fread(&quesi,sizeof(struct question),1,fp);fread(&quesi,sizeof(struct question),1,fp);生成TXT文件if(fwrite(&quesi,sizeof(struct question),1,fp)!=1)printf(file write errorn);printf(你输入的第%d题的答案是:,i+1);printf(%c,bi)printf(第%d题的正确答案是:,i+1); printf(%s,quesi.right);for(i=0;iSIZE;i+)if(bi=ai)num=num+20;printf(你的成绩是%d分nnnn,num);结束四、 主要界面说明:(1)、题库生成界面:(2)选择题型界面:(3)显示题目界面:(4)开始答题界面:(5)答案处理以及成绩评定界面:五、 主要算法说明:题库生成程序:struct question /定义question的结构体变量,结构体 结构体中包含问题,选项,以及正确答案char ask100;char answer200;char right5;quesSIZE;for(i=0;iSIZE;i+) /利用for语句和scanf语 句实现题库的输入。printf(第%d题问题以及答案:,i+1);scanf(%s%s%s,&quesi.ask,&quesi.answer,&quesi.right);printf(n); /利用for语句和文件处理fwrite的语句实现 for(i=0;iSIZE;i+) 对输入的题库进行保存 if(fwrite(&quesi,sizeof(struct question),1,fp)!=1) 选择题型程序:switch(a) /利用switch和case语句实 现对不同题型的选择case 1:txt1();break;case 2:txt2();break;case 3:txt3();break;case 4:txt4();break;case 5:txt5();break;default : printf(输入错误,请重新输入!);读取文件程序:for(i=0;iSIZE;i+) /利用for循环和fread读取文件并 用printf输出结构体中的问题和选项fread(&quesi,sizeof(struct question),1,fp);printf(第%d题:,i+1);printf(%s,quesi.ask);printf(%s,quesi.answer);输入答案程序:for(i=0;iSIZE;i+) /利用for循环和scanf语句实现答案的输 入并将答案放入数组bi中printf(请输入%d题答案:,i+1);scanf(%s,&d);bi=d;答案处理程序:printf(第%d题的正确答案是:,i+1); /输出结构体中的正确答案 printf(%s,quesi.right);printf(n)for(i=0;iSIZE;i+) /将输入的答案与放入数组ai中的标准if(bi=ai) 答案进行比较,如果正确,num+=20num=num+20;printf(你的成绩是%d分nnnn,num); /输出成绩六、 代码清单及注释第一部分:#include#define SIZE 5struct questionchar ask100; /定义question的结构体变量,结构体结构体中包含问题,选项,以及正确答案char answer200; char right5;quesSIZE;void main() FILE *fp;int i;printf(|-|n); printf(|此程序用于生成题库,书体格式如下: |n);printf(|输入完每道题的题目之后输入空格,然后再输入选项, |n);printf(|再输入空格,最后输入答案 |n);printf(| |n);printf(|-|nnn);for(i=0;iSIZE;i+)printf(第%d题问题以及答案:,i+1); /利用for语句和scanf语句实现题库的输入。 scanf(%s%s%s,&quesi.ask,&quesi.answer,&quesi.right); printf(n);if(fp=fopen(tiku.txt,wb)=NULL) printf(cant open filen);return;for(i=0;iSIZE;i+)if(fwrite(&quesi,sizeof(struct question),1,fp)!=1) /利用for语句和文件处理fwrite的语句实现对输入的题库进行保存printf(file write errorn);fclose(fp);第二部分:#include#define SIZE 5struct questionchar ask100;char answer200;char right5;quesSIZE;void main()void menuchoise();void txt1();void txt2();void txt3();void txt4();void txt5();int a;printf(第一步:选题:nnn);printf(请根据范围,难度,分值,数量选择你所需要的题目,并输入相应类型的编号nn);menuchoise();printf(类型:);scanf(%d,&a); /选择题型printf(nnn);switch(a)case 1:txt1();break; /利用switch和case语句实现对不同题型的选择case 2:txt2();break;case 3:txt3();break;case 4:txt4();break;case 5:txt5();break;default : printf(输入错误,请重新输入!);void menuchoise()printf(-n);printf(| 范围 难度 数量 分值 类型|n);printf(| |n);printf(| 计算机基础知识 难 5题 100 1 |n);printf(| C语言概况 易 5题 100 2 |n);printf(| 数据类型 易 5题 100 3 |n);printf(| 结构体 中 5题 100 4 |n);printf(| 文件 中 5题 100 5 |n);printf(| |n);printf(-n);printf(nnn);void txt1()char a5=C,B,D,A,B,b5,d; /将正确的答案输入数组a5中int i,num=0;printf(第二步:开始答题:nnn);printf(请从A B C D四个选项中选出正确的选项填到答题区上,确定后按回车结束,确定不允许更改请慎重考虑n);FILE *fp;fp=fopen(tiku1.txt,rb);printf(-n);for(i=0;iSIZE;i+)fread(&quesi,sizeof(struct question),1,fp); /利用for循环和fread读取文件并用printf输出结构体中的问题和选项 printf(第%d题:,i+1);printf(%s,quesi.ask);printf(n);printf(%s,quesi.answer);printf(nn);printf(-n);for(i=0;iSIZE;i+)printf(请输入%d题答案:,i+1); /利用for循环和scanf语句实现答案的输入并将答案放入数组bi中 scanf(%s,&d);bi=d;printf(n);printf(-n);printf(nnn);printf(第三步:开始评卷);printf(nnn);for(i=0;iSIZE;i+)printf(你输入的第%d题的答案是:,i+1);printf(%c,bi);printf(n);printf(-n);for(i=0;iSIZE;i+)printf(第%d题的正确答案是:,i+1); /输出结构体中的正确答案 printf(%s,quesi.right);printf(n);printf(-n);for(i=0;i_%n); /对不同的分数进行点评else if(num=80)printf(考得不错,但仍需努力!()n);else if(num=60)printf(勉强过关,抓紧复习啦!()n);else printf(很遗憾,你挂啦!()n);fclose(fp);void txt2()char a5=C,D,C,D,C,b5,d; /将正确的答案输入数组a5中 int i,num=0;printf(第二步:开始答题:nnn);printf(请从A B C D四个选项中选出正确的选项填到答题区上,确定后按回车结束,确定不允许更改请慎重考虑n);FILE *fp;fp=fopen(tiku2.txt,rb);printf(-n);for(i=0;iSIZE;i+)fread(&quesi,sizeof(struct question),1,fp); /利用for循环和fread读取文件并用printf输出结构体中的问题和选项printf(第%d题:,i+1);printf(%s,quesi.ask);printf(n);printf(%s,quesi.answer);printf(nn);printf(-n);for(i=0;iSIZE;i+)printf(请输入%d题答案:,i+1); /利用for循环和scanf语句实现答案的输入并将答案放入数组bi中 scanf(%s,&d);bi=d;printf(n);printf(-n);printf(nnn);printf(第三步:开始评卷);printf(nnn);for(i=0;iSIZE;i+)printf(你输入的第%d题的答案是:,i+1);printf(%c,bi);printf(n);printf(-n);for(i=0;iSIZE;i+)printf(第%d题的正确答案是:,i+1); /输出结构体中的正确答案 printf(%s,quesi.right);printf(n);printf(-n);for(i=0;i_%n); else if(num=80)printf(考得不错,但仍需努力!()n); /对不同的分数进行点评 else if(num=60)printf(勉强过关,抓紧复习啦!()n);else printf(很遗憾,你挂啦!()n);fclose(fp);void txt3()char a5=A,C,A,A,C,b5,d; /将正确的答案输入数组a5中int i,num=0;printf(第二步:开始答题:nnn);printf(请从A B C D四个选项中选出正确的选项填到答题区上,确定后按回车结束,确定不允许更改请慎重考虑n);FILE *fp;fp=fopen(tiku3.txt,rb);printf(-n);for(i=0;iSIZE;i+)fread(&quesi,sizeof(struct question),1,fp); /利用for循环和fread读取文件并用printf输出结构体中的问题和选项printf(第%d题:,i+1);printf(%s,quesi.ask);printf(n);printf(%s,quesi.answer);printf(nn);printf(-n);for(i=0;iSIZE;i+)printf(请输入%d题答案:,i+1); /利用for循环和scanf语句实现答案的输入并将答案放入数组bi中 scanf(%s,&d);bi=d;printf(n);printf(-n);printf(nnn);printf(第三步:开始评卷);printf(nnn);for(i=0;iSIZE;i+)printf(你输入的第%d题的答案是:,i+1);printf(%c,bi);printf(n);printf(-n);for(i=0;iSIZE;i+)printf(第%d题的正确答案是:,i+1); printf(%s,quesi.right);printf(n);printf(-n);for(i=0;i_%n);else if(num=80)printf(考得不错,但仍需努力!()n);else if(num=60)printf(勉强过关,抓紧复习啦!()n);else printf(很遗憾,你挂啦!()n);fclose(fp);void txt4()char a5=D,C,A,A,B,b5,d; /将正确的答案输入数组a5中 int i,num=0;printf(第二步:开始答题:nnn);printf(请从A B C D四个选项中选出正确的选项填到答题区上,确定后按回车结束,确定不允许更改请慎重考虑n);FILE *fp;fp=fopen(tiku4.txt,rb);printf(-n);for(i=0;iSIZE;i+)fread(&quesi,sizeof(struct question),1,fp); /利用for循环和fread读取文件并用printf输出结构体中的问题和选项printf(第%d题:,i+1);printf(%s,quesi.ask);printf(n);printf(%s,quesi.answer);printf(nn);printf(-n);for(i=0;iSIZE;i+)printf(请输入%d题答案:,i+1); /利用for循环和scanf语句实现答案的输入并将答案放入数组bi中 scanf(%s,&d);bi=d;printf(n);printf(-n);printf(nnn);printf(第三步:开始评卷);printf(nnn);for(i=0;iSIZE;i+)printf(你输入的第%d题的答案是:,i+1); printf(%c,bi);printf(n);printf(-n);for(i=0;iSIZE;i+)printf(第%d题的正确答案是:,i+1); /输出结构体中的正确答案 printf(%s,quesi.right);printf(n);printf(-n);for(i=0;i_%n); /对不同的分数进行点评else if(num=80)printf(考得不错,但仍需努力!()n);else if(num=60)printf(勉强过关,抓紧复习啦!()n);else printf(很遗憾,你挂啦!()n);fclose(fp);void txt5()char a5=D,A,D,D,B,b5,d; /将正确的答案输入数组a5中int i,num=0;printf(第二步:开始答题:nnn);printf(请从A B C D四个选项中选出正确的选项填到答题区上,确定后按回车结束,确定不允许更改请慎重考虑n);FILE *fp;fp=fopen(tiku5.txt,rb);printf(-n);for(i=0;iSIZE;i+)fread(&quesi,sizeof(struct question),1,fp); /利用for循环和fread读取文件并用printf输出结构体中的问题和选项 printf(第%d题:,i+1);printf(%s,quesi.ask);printf(n);printf(%s,quesi.answer);printf(nn);printf(-n);for(i=0;iSIZE;i+)printf(请输入%d题答案:,i+1); /利用for循环和scanf语句实现答案的输入并将答案放入数组bi中 scanf(%s,&d);bi=d;printf(n);printf(-n);pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司激励士气活动方案
- 公司纪律教育月活动方案
- 公司新人活动方案
- 公司看板策划方案
- 公司文化墙活动策划方案
- 公司母亲节趣味活动方案
- 公司早茶活动策划方案
- 公司教师节感恩活动方案
- 公司环保走秀活动方案
- 公司摄影收集活动方案
- 中学体育七年级《篮球基本技巧》说课课件
- 实战-数字化转型工作手册 两份资料
- 2024年青海省中考生物地理合卷试题(含答案解析)
- 福建省旋挖成孔灌注桩技术规程
- 2023-2024学年译林版八年级英语下册期末易错120题(江苏专用)(含答案解析)
- G -B- 17378.7-2007 海洋监测规范 第7部分 近海污染生态调查和生物监测(正式版)
- (高清版)JTST 325-2024 水下深层水泥搅拌桩法施工质量控制与检验标准
- 茂名高州市村(社区)后备干部招聘笔试真题2023
- 西南科技大学-2019级-下-工学类-电路分析A2-毕业生补考-试卷
- 沪教版数学五年级下册小数简便运算练习100题及答案
- 肺结核防治知识课件
评论
0/150
提交评论