ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:347.10KB ,
资源ID:10593393      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10593393.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单项选择课设.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单项选择课设.docx

1、单项选择课设学 号 11710201数据结构A课程设计设计说明书单选选择题标准化考试系统起止日期: 2013年 12月30 日 至 2014 年 1月3日学生姓名班级计算机2班成绩指导教师(签字)计算机系2014年1 月 3 日课程设计任务书20132014学年第1学期 计算机 系 计算机科学与技术 专业 11计算机2 班级课程设计名称: 数据结构课程设计 设计题目: 单项选择题标准化考试系统 完成期限:自 2013 年 12 月 30 日至 2014 年 1 月 3 日共 1 周设计依据、要求及主要内容(可另加附页):1、单项选择题标准化考试系统1)问题描述设计一单项选择题标准化考试系统,实

2、现考试的标准化管理。2) 基本要求功能要求:(1) 用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)(2) 试题录入:可随时增加试题到试题库中(3) 试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4) 答题:用户可实现输入自己的答案(5) 自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。指导教师(签字):教研室主任(签字):郝琨批准日期:2013年12月30日 目录一、设计目的 1二、设计要求 1三、设计内容 13.1需求分析 13.2问题求解 13.3总体设计 23.4 详细设计 3四、核心源程序清单和执行结果 44.1 源程序 44.2 运行结果

3、 11五、实验总结 14六、实验心得 15七、参考文献 15一、设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼,全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。二、设计要求 在本课程设计过程中要求学生:(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者被抄袭者皆以零分计入本课程设计成绩。凡发现实验

4、报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩。(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表。(4)认真编写课程设计报告。三、设计内容3.1需求分析 设计一个单项选择题标准化考试系统,该系统能够实现保存试题、录入试题、答题、系统判卷的功能。3.2问题求解(1)用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)(2)试题录入:可随时增加试题到试题库中(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4)答题:用户可实现输入自己的答案(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩(6)退出,返回源程序。3.3总体设

5、计1、用来保存试题库,可以用到”Struct TestNode Testquestions”结构体数组,将试题一一对应的保留下来,放在相应的文件里;2、试题的录入,可以定义一个void write函数将试题录入;3、试题的抽取,可以定义一个void rade的函数,用到”Rand”函数进行随机抽取;4、答题方面,则定义一个 void answer函数用于答题者的输入答案;5、自动判卷,则可以定义一个 Status mark函数,用来对比答题者答案和正确答案,给出判断正确与否;6、用一个main函数将上述各个函数功能块连接起来,实现”单项选择题标准化考试系统”的各个方面的功能,完成设计。3.4

6、详细设计 N Y Y N 四、核心源程序清单和执行结果4.1 源程序#include using namespace std;#include#includestring.h#define LEN sizeof(struct test)struct test /*定义结构体*/ char ask100; /存题干 char a100; /存选项a char b100; /选项b char c100; /选项c char d100; /选项d char rightanswer; /正确答案 int k; /存题号 struct test *next;struct test *head,*h; /

7、*全局变量:头指针*/int n;int m;int no;char s;/*全局变量*/int number;int rec1000;char fuc1000; /*全局变量:结点数目*/struct test * creat(void) /*返回值为head*/ struct test *p1,*p2; n=0; head=NULL;int a=1; p1=p2=(struct test *)malloc(LEN); /*强制转换*/ while(a) cout请输入题号:p1-k; /题号 cout 请输入题目:p1-ask; /题干 cout 请输入选项a:p1-a; /选项a cou

8、t 请输入选项b:p1-b; /选项b cout 请输入选项c:p1-c; /选项c cout 请输入选项d:p1-d; /选项d cout 请输入正确的答案:p1-rightanswer; /正确的答案 n+; if(n=1) h=head=p1; else p2-next=p1; p2=p1; (*p2).next=NULL; p1=(struct test *)malloc(LEN); /给p1一个空的内存 coutplease input 1 or 0a; p2-next=NULL; return(head); void write() /录入文件 FILE *fp=fopen(tes

9、t.txt,ab+); struct test *p1=head; while(p1!=NULL) fwrite(p1,sizeof(struct test),1,fp); p1=p1-next; fclose(fp);void read() /从文件读取数据 FILE *fp=fopen(test.txt,rb); /从文件读取数据 struct test *p1=(struct test*)malloc(LEN); int flag=fread(p1,sizeof(struct test),1,fp); while(flag!=0) coutk. ask a.a b.b c.c d.dne

10、xt=p2; tail=p2; tail-next=NULL; fclose(fp); return(head);void get() /随机抽取试题 test *p,*head=load(); /调用load()函数来载入head的值 FILE *fp=fopen(test.txt,rb); /从文件读出数据 cout请输入抽取的数目:m; p=head; number = 0; while( p != NULL & +number) p = p-next; p = head; int vis500; memset(vis,0,sizeof(vis); /标记函数,使数组的值都为0 for(

11、int i=0;ik=no) couti+1. askendl; cout a.a b.b c.c d.dnext; p=head; system(pause);void answer() /答题 test *p,*head=load(); /载入head的值 FILE *fp=fopen(test.txt,rb);p=head; /从文件读取数据到内存中 for(int i=0;ik=no) /判断题号是否和no相符 couti+1. askendl; couta.a b.b c.c d.dnext; p=head; couts; fuci=s; /将你所输入的答案s送到全局数组中 void

12、 mark() /评分 int x=0;int y=0; test *p,*head=load(); FILE *fp=fopen(test.txt,rb);p=head; for(int i=0;ik=no) couti+1. askendla.a b.b c.c d.drightanswer) /判断输入的答案和试题库中的正确答案是否一致 cout答案正确endl; x+; /正确的题目数 else cout 答案错误next; p=head; cout答对的题目数:xendl; cout答错的题目数:yendl; cout总得分:100*x/mendl; /总得分 system(paus

13、e);int main() char x; while(1) system(cls); /清屏 cout +-+endl; cout | 1.查看试题 2.录入新的试题 |endl; cout +-+endl; cout | 3.随机抽取试题 |endl; cout +-+endl; cout | 4.请输入你的答案 5.自动判卷 |endl; cout +-+endl; cout | 0.退出系统 |endl; cout +-+endl; coutendl; coutx; switch(x) case 1:read();system(pause);break; case 2:creat();

14、write();break; case 3:get();break; case 4:answer();break; case 5:mark();break; case 0:exit(0); default :cout代码错误,请重输:endl;system(pause);break; return 0;4.2 运行结果1.初始界面2.录入试题3.随机抽取试题4.开始答题5.自动判卷五、实验总结本次课设运行过程存在着或多或少的问题,在此简单说明一下所存在的问题: 1.在开始录入试题时, 结构体类型写入文件,那么保存的必然是二进制数据,直接看文件肯定是乱码的。所以我们在查看test.txt文件时所

15、看到的是乱码,如果想文件内容是直接可看的,那么不要直接存储结构体,应该自己设计这个文件的文本格式,按文本方式存储数据。2.在录取试题成功后,我们需要再录入新试题我们是用please input 1 or 0来表示是否再继续下去,1表示继续,0表示结束。3.在试题的抽取中,定义一个void rade的函数,用到”Rand”函数进行随机抽取,C+里的随机数是由一个种子按照固定的算法生成的随机数的序列,如果种子不变,那么随机数序列不变,你每次运行都是取到同一个随机数序列的第一个随机数,所以结果一样。在所写的程序中没有时间种子,每次产生的随机数都是一样的。设了时间种子以后,可以根据当前系统的时间来产生

16、随机数,这样随机数每次执行都会不同。4.在选取试题的时候,没有去判断所输入的题目数目是否再已建立的题库中找到相应的数目,为解决这个问题我们可以在获取试题前加入IF ELSE 条件语句进行提前判断。六、实验心得C+本身就学的不好,数据结构更没有学好,做起这个课设来说表示压力好大,什么都不会,抽到的一元一次的乘法运算自己运行了三天,错误改了一个又一个还是不得其法,很是心烦,一个一个错误的改,这个错误解决了,另一个错误又出来了,总之,做这个课设太辛苦了,都怪当初没学好,现在只能慢慢的去找方法去解决这些问题,在解决的 日子中,不说有多大进步吧,还是有所收获的,以后有机会的话,希望能重新再做做这些题目。七、参考文献1、王红梅,数据结构,清华大学出版社2、王红梅,数据结构学习辅导与实验指导,清华大学出版社3、严蔚敏、吴伟民,数据结构C语言版,清华大学出版社(配题集)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1