C++ 单项选择题标准化考试系统_第1页
C++ 单项选择题标准化考试系统_第2页
C++ 单项选择题标准化考试系统_第3页
C++ 单项选择题标准化考试系统_第4页
C++ 单项选择题标准化考试系统_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录1.课程设计目的12.课程设计题目描述和要求12.1课程题目12.2课程要求13.课程设计报告内容13.1算法描述13.2 源程序24.课程设计总结:65.参考书目71 课程设计目的 练习自己的动手能力,在学习理论的同时增强自己的编程能力,使理论与实践相结合,在学习书本的同时扩展自己的课外知识.2 课程设计题目描述和要求2.1课程题目 单项选择题标准化考试系统2.2课程要求(一)功能要求:(1)用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)(2)试题录入:可随时增加试题到试题库中(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4)答题:用户可实现输入自己

2、的答案(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。(二)其它要求:(1) 只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档.3 课程设计报告内容3.1算法描述 定义题目数组,选向数组,输入题目的及选向并给定正确答案。输入所要答的题目数,然后进行答题。输入的答案与标准答案进行比较,如果一致,则正确,否则错误。最后根据题目数及答对题目数进行输出得分。 3.2 源程序#include <iostream&

3、gt;#include <fstream>#include "dos.h"using namespace std;struct question char ask200;/*选择题题目*/ char answer480;/*选择题选项*/ int right;/*正确答案*/ struct question *next; ; /函数声明int MenuChoice(void); /选择菜单struct question *charu_timu(struct question *fst, const struct question *ad); /向列表中插入试题函

4、数struct question *da_an_weizhi(struct question *seek, long len, long max); /确定一个读取答案的位置的函数void GetQuestion(struct question *src); /获取问题,选项,以及正确答案函数void bao_cun(const struct question *ed, FILE *saf); /将列表中的试题保存在文件中的函数struct question *LoadFile(struct question *td, FILE *laf); /从文件中读取题目,将题目添加到列表中的函数int

5、 GetAnswer(void); /输入选择题的答案void huida_Question(const struct question *que, int n); /回答问题函数main() struct question *start = NULL, temp; long choice, line = 0, c; FILE *fp = fopen("wangkun.dat", "a+"); while (choice = MenuChoice() != 3) if (choice = 1) GetQuestion(&temp); start

6、= charu_timu(start, &temp); +line;/*统计列表的长度*/ system("cls"); else if (choice = 2) c =8; while (c > 6 | c > line) cout<<"请输入要回答的问题数量: " cin>>c; huida_Question(start, line); return 0; /*da_an_weizhi函数确定一个读取答案的位置,len代表要读取的答案数,max代表列表的长度*/ struct question *da_an

7、_weizhi(struct question *seek, long len, long max) int i; while (i-) seek = seek->next;/找到指定的位置 return seek; /向列表中插入试题 struct question *charu_timu(struct question *fst, const struct question *ad) struct question *newPtr = (struct question *)malloc(sizeof(struct question); if (newPtr = NULL) exit(

8、0); *newPtr = *ad; newPtr->next = fst; return newPtr; /*获取问题,选项,以及正确答案*/ void GetQuestion(struct question *src) int i = 0; cout<<"请输入选择题题目:"<<endl; cin>>src->ask;while (i < 4) cout<<"请输入选项"<<char(i + 'A')<<"的答案:"<&

9、lt;endl; cin>>src->answeri+; src->right = GetAnswer(); /*从文件中读取题目,将题目添加到列表中*/struct question *LoadFile(struct question *td, FILE *laf) struct question temp; while (fread(&temp, 1, sizeof(struct question), laf) td = charu_timu(td, &temp); return td; /*将列表中的试题保存在文件中*/ void bao_cun(

10、const struct question *ed, FILE *saf) fclose(saf); if (saf = fopen("wankun.dat", "w") = NULL)/以写的方式重新打开文件 return ; while (ed) fwrite(ed, 1, sizeof(struct question), saf); ed = ed->next; /得到选择题的答案(不保证是正确的答案) int GetAnswer(void) char c=0 ;/必须进行初始化,避免出现偶然性的错误 fflush(stdin); while

11、 (c < 'A' | c > 'D') /确保输入的答案是A, B, C, D中的一个 cout<<"请输入正确的答案: "<<endl;cin>> c; return c; /回答问题,并统计答对题目数,显示得分void huida_Question(const struct question *que, int n) int i = 0, t = n; char result1001, *p = result; for (i = 0; n-; que = que->next) cou

12、t<<que->ask<<endl; cout<<que->answer0<<endl;cout<<que->answer1<<endl;cout<<que->answer2<<endl; cout<<que->answer3<<endl; if (*p = que->right) = (*(p + 1) = GetAnswer() +i; *p = '0' cout<<"标准答案"<&

13、lt;" 您的答案 "<<endl;for (p = result; *p != '0' ) cout<<*p<<" "<<*(p+1)<<endl;cout<<"您回答了"<<t<<"道题, 答对"<<i<<"道题目, 得分:"<< (float)i / t * 100.00<<endl; /选择菜单int MenuChoice(voi

14、d) int value; cout<<" *"<<endl;cout<<" * *"<<endl;cout<<" * 1 :添加选择题 *"<<endl;cout<<" * 2 :回答选择题 *"<<endl;cout<<" * 3 :退出 *"<<endl;cout<<" * *"<<endl;cout<<" *"<<endl;cin>>value;return value; 4 课程设计总

温馨提示

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

评论

0/150

提交评论