单项选择题标准化考试系统课程设计论文.doc_第1页
单项选择题标准化考试系统课程设计论文.doc_第2页
单项选择题标准化考试系统课程设计论文.doc_第3页
单项选择题标准化考试系统课程设计论文.doc_第4页
单项选择题标准化考试系统课程设计论文.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

数据结构课程设计设计说明书单项选择题标准化考试系统起止日期: 2013年 12月 23 日 至 2013 年 12月27日学生姓名班级成绩指导教师(签字)课程设计任务书20132014学年第1学期 计算机与信息工程 学院 专业 班级课程设计名称: 数据结构课程设计 设计题目: 单项选择题标准化考试系统 完成期限:自 2013 年 12 月 23日至 2013年 12 月 27 日共 1 周设计依据、要求及主要内容(可另加附页):一、设计目的熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。二、设计要求 在本课程设计过程中要求学生:(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩。(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表。(4)认真编写课程设计报告。三、设计内容1)问题描述设计一单项选择题标准化考试系统,实现考试的标准化管理。2) 基本要求功能要求:(1) 用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)(2) 试题录入:可随时增加试题到试题库中(3) 试题抽取:每次从试题库中可以随机抽出n道题(n由键盘输入)(4) 答题:用户可实现输入自己的答案(5) 自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。四、参考文献1、王红梅,数据结构,清华大学出版社2、王红梅,数据结构学习辅导与实验指导,清华大学出版社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,如果输入的个数大于试题的数量,会提示“题库试题不足”,否则系统将随机产生k道不同的试题。3.答题用户从键盘输入想要回答的试题个数k,如果输入的个数大于试题的数量,会提示“题库试题不足”,否则系统将随机产生k道不同的试题,用户将输入自己的答案。4.自动判卷系统可根据用户答案与标准答案的对比实现判卷并给出成绩。5保存试题到文件将每个试题的题干、四个选项以及正确答案保存到文件。3.2、调试分析:1.查看题库试题调试初始化一个单链表,链表有5个节点,每个节点包含题干、四个选项以及正确选项,运行程序,查看是否正确输出链表的内容。2.试题录入调试运行程序,输入题干、四个选项以及正确选项,录入完成提示“录入成功!”,然后查看题库试题,查看是否将试题添加进去。3.试题抽取调试运行程序,从键盘输入要抽取试题的个数k,查看系统是否随机产生不同k道试题,如果抽取试题个数大于题库试题总量,则应该显示“题库试题不足!”。4.答题调试运行程序,从键盘输入要回答试题的个数k,然后输入自己选择的答案,查看系统能否正确的判断正误。5.保存文件调试运行程序,查看能否将试题保存到文件,并正确读出。6.输入调试运行程序,从键盘任意输入数据,查看系统能否正确运行,并显示异常处理的提示信息。4、源程序和运行结果4.1、源程序a.h:#includeusing namespace std;template struct nodedatatype data;node *next;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: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 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*endl;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 :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(!infile)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()/查看个数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;elseoutfiledata).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;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;/总分coutnumber;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.answer|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;cout*endl; main.cpp:#include#includeb.cppusing namespace std;void main()bool flag=true;linklist linklist; linklist.main_menu(); while(flag)int t;coutt)/检验异常elsecout输入错误!endl;cin.sync(); /清空流cin.clear(); /清除流错误标记continue; switch(t) case 1:linklist.main_menu();break; case 2:linklist.add();linklist.save();break; case 3:linklist.printdata();break; case 4:linklist.extract();break; case 5:linklist.test();break; case 6: if(linklist.lenth()=0)cout题库为空!endl; elsecout一共有linklist.lenth()个题目!endl;break; case 0: flag=false;cout*endl;cout* 谢谢使用! *endl;cout*endl;break; default: cout输入的选项不存在!endl; 4.2、运行结果试题浏览:试题抽取:试题抽取:试题录入:答题:退出:5、心得体会编程是一件很枯燥的事情,但也是一件很有意义的事情,经过一个星期的设计学习,使我对c+语言和数据结构有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的

温馨提示

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

评论

0/150

提交评论