C++单项选择题标准化考试系统 -课程设计报告.doc
《C++单项选择题标准化考试系统 -课程设计报告.doc》由会员分享,可在线阅读,更多相关《C++单项选择题标准化考试系统 -课程设计报告.doc(18页珍藏版)》请在沃文网上搜索。
1、课程设计名称: 数据结构课程设计 设计题目: 单项选择题标准化考试系统 完成期限:自 2013 年 12 月 23日至 2013年 12 月 27 日共 1 周设计依据、要求及主要内容(可另加附页):一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。二、设计要求 在本课程设计过程中要求学生:(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩。(3)学生在接受
2、设计任务后,首先要按设计任务书的要求编写设计进程表。(4)认真编写课程设计报告。三、设计内容1)问题描述设计一单项选择题标准化考试系统,实现考试的标准化管理。2) 基本要求功能要求:(1) 用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)(2) 试题录入:可随时增加试题到试题库中(3) 试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4) 答题:用户可实现输入自己的答案(5) 自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。四、参考文献1、王红梅,数据结构,清华大学出版社2、王红梅,数据结构学习辅导与实验指导,清华大学出版社3、严蔚敏、吴伟民,数据结构
3、C语言版,清华大学出版社 目录1、设计目的12、总体设计13、详细设计13.1、程序具体功能13.2、调试分析24、源程序和运行结果24.1、源程序24.2、运行结果125、心得体会156、参考文献15单项选择题标准化考试系统1、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。2、总体设计单项选择题标准化考试系统试题录入试题抽取答题自动判卷文件保存试题库3、详细设计 3.1、程序具体功能:1试题录入可以随时增加试题到题库中。从键盘输入试题的题干、四个选项以及正确答案。2.试题抽取 用户从键盘输入想要抽取的试题个数k,如果输入的个数大于试题的数量,会提示“题库试题不足”
4、,否则系统将随机产生k道不同的试题。3.答题用户从键盘输入想要回答的试题个数k,如果输入的个数大于试题的数量,会提示“题库试题不足”,否则系统将随机产生k道不同的试题,用户将输入自己的答案。4.自动判卷系统可根据用户答案与标准答案的对比实现判卷并给出成绩。5保存试题到文件将每个试题的题干、四个选项以及正确答案保存到文件。3.2、调试分析:1.查看题库试题调试初始化一个单链表,链表有5个节点,每个节点包含题干、四个选项以及正确选项,运行程序,查看是否正确输出链表的内容。2.试题录入调试运行程序,输入题干、四个选项以及正确选项,录入完成提示“录入成功!”,然后查看题库试题,查看是否将试题添加进去。
5、3.试题抽取调试运行程序,从键盘输入要抽取试题的个数k,查看系统是否随机产生不同k道试题,如果抽取试题个数大于题库试题总量,则应该显示“题库试题不足!”。4.答题调试运行程序,从键盘输入要回答试题的个数k,然后输入自己选择的答案,查看系统能否正确的判断正误。5.保存文件调试运行程序,查看能否将试题保存到文件,并正确读出。6.输入调试运行程序,从键盘任意输入数据,查看系统能否正确运行,并显示异常处理的提示信息。4、源程序和运行结果4.1、源程序a.h:#includeusing namespace std;template struct NodeDataType data;Node *next;
6、class Titlepublic:char title100;/题干char a20;/ a选项char b20;/ b选项char c20;/c选项char d20;/d选项char answer;/正确选项 Title() Title(char *titl,char *aa,char *bb,char *cc,char *dd,char answer)strcpy(title,titl);strcpy(a,aa);strcpy(b,bb);strcpy(c,cc);strcpy(d,dd);this-answer=answer;template class LinkListpublic:
7、LinkList();/无参构造函数LinkList(DataType a,int n);/有参构造函数 LinkList(); /析构函数void main_menu(); /主菜单界面void menu1();/取消菜单界面int lenth();/题目的个数void add();/增加题目void test();/答题void extract();/试题抽取void printdata();/遍历记录void save();/保存记录private:Node *first; ; b.cpp:#include#include#include#include#includea.husing
8、namespace std;template LinkList:LinkList()/无参构造函数first=new Node;first-next=NULL;template LinkList:LinkList(DataType a,int n)/有参构造函数Node *r, *s;first = new Node; r = first; for (int i = 0; i n; i+) s = new Node; s-data = ai; r-next = s; r = s; r-next = NULL; template void LinkList : main_menu()cout*e
9、ndl;cout*欢迎使用单项选择题标准化考试系统*endl;cout*endl;cout*1.显示主菜单*endl;cout*2.试题录入*endl; cout*3.浏览试题*endl;cout*4.试题抽取*endl;cout*5.答题*endl;cout*6.试题数量*endl;cout*0.退出*endl;cout*endl;template void LinkList : menu1()cout*endl;cout* 您确定要选择该答案吗? *endl;cout* 1.确定 *endl;cout* 2.取消 *endl;cout*endl;template void LinkList
10、 :add()/增加题目 Node *s = new Node;Node *p = first; DataType t; coutt.title;coutt.a;coutt.b;coutt.c;coutt.d;coutt.answer;while(p-next!=NULL)p=p-next;s-data=t;p-next=s;s-next=NULL;cout添加成功!endl;template void LinkList : printdata()/浏览题目Node *p=first;first-next=NULL;ifstream infile(123.txt,ios:in);if(!inf
11、ile)cout题目浏览失败!titaabbccddans;DataType h(tit,aa,bb,cc,dd,ans); Node *s=new Node ;s-data=h;p-next=s;s-next=NULL;p=s; infile.close();Node *t=first-next;int i=1;while(t!=NULL)couti+.data).titleendl;coutA.data).a B.data).b C.data).c D.data).d data).answerendl;coutnext;template int LinkList :lenth()/查看个数
12、Node *p = first;int count=0;while(p-next!=NULL)count+;p=p-next;return count;template void LinkList : save()/保存到文件Node *p =first-next;ofstream outfile(123.txt,ios:out);if(!outfile)cout题目保存失败!next=NULL)outfiledata).title data).a data).b data).c data).d data).answer;/最后一个不应该换行,/否则读记录时将多一行break;elseoutf
13、iledata).title data).a data).b data).c data).d data).answernext;outfile.close();template void LinkList : extract()/试题抽取const int MAX=100;int xMAX;Node *p=first-next;if(p=NULL)cout题库为空!endl;return;int n=1,j=1,number;/题目数量coutnumber;if(numberlenth()cout题库试题不足!endl;return;for(int k=1;k=lenth();k+)xk=k;
14、srand(unsigned(time(NULL);while(jnext;/p再次指向第一个结点for(int m=1;mnext;coutj. data.titleendl;coutA. data.a B.data.b C.data.c D.data.dendl; coutendl;j+;n+;template void LinkList : test()/答题const int MAX=100;int xMAX;Node *p=first-next;if(p=NULL)cout题库为空!endl;return;char ch;int j=1,n=1,t,sum=0,number;/总分c
15、outnumber;if(numberlenth()cout题库试题不足!endl;return;for(int k=1;k=lenth();k+)xk=k;/随机产生number道不重复的试题srand(unsigned(time(NULL);while(jnext;/p再次指向第一个结点for(int m=1;mnext;couti. data.titleendl;coutA. data.a B.data.b C.data.c D.data.dendl; coutendl;while(flag)coutch;menu1();coutt)/检验异常elsecout输入错误!data.answ
16、er|ch=p-data.answer+32)cout回答正确!endl;sum+=10;else cout回答错误!endl;flag=false;break;case 2:break;default:cout输入错误!endl;break;j+;n+;cout*endl;cout*每题分,满分为:10*number分 *endl;if(sum=10*number)cout* 太棒了!您满分! *endl;cout*endl;else if(sum=0)cout*很遗憾,您全错了,继续努力! *endl;cout*endl;else cout* 您的得分为:sum,再接再厉! *endl;c
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+单项选择题标准化考试系统 -课程设计报告 C+ 单项 选择题 标准化 考试 系统 课程设计 报告