单项选择题标准化考试系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、源程序代码
各个算法实现的源程序(可以是一组源程序,每个功能模块采用不同的函数实现),源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。,程序清单可用 字体,大小为5号,单倍行距。
(1)();
主菜单的函数声明,打印主功能的选项
(2)();
子菜单的函数声明,打印子功能的选项
( *1, *2)
{
0;
0;
}
(1);
}
(4)随机抽取试题模块让两个主要函数实现:
( **, *j)
/*此函数用二级指针来接收结构体指针的地址,为该指针申请动态存储空间,把试题库现有的试题都*存入链表,并且由申请动态存储空间的次数得出试题库现有的试题总数,并用存于j所指变量*/
{
*;
*;
0;
0;
*0;
()把试题库文本文件指针重置于开头
(3) 学生可自动增加新功能模块(视情况可另外加分)
(4)写出课程设计报告,具体要求见相关说明文档
二、需求分析
(1)用文件保存试题库模块:应该预备一个试题库文本,试题库中可以事先存有试题,每一个试题用一个结构体变量存储;
(2)试题录入模块:临时创建一个结构体变量存储从键盘输入的一个试题的数据;再用函数将该结构体的数据写入文本;
(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)
(4)答题:用户可实现输入自己的答案
(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。
(二)其它要求:
(1) 只能使用语言,源程序要有适当的注释,使程序容易阅读
(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)
内容详实程度
文字表达熟练程度
回答问题准确度
简短评语
教师签名:
年月日
评分等级
备注
评分等级有五种:优秀、良好、中等、及格、不及格
课程设计报告具体内容要求:
程序设计题目名称
单项选择题标准化考试系统
一、课题内容和要求
(一)功能要求:
(1)用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)
(2)试题录入:可随时增加试题到试题库中
(())
{
( *)(( ));
>;
(*j);
(>,200)将试题题干读出,下面的读出选项及答案类似该过程
(0<4)
(>[k],100);
(,"\n">);
(*)
*;
>;
;
}
}
/*产生N个随机数的函数的主要语句及算法分析,并且保证N个随机数不相同,由此间接达到随机抽*取试题的效果*/
(0; i<N1; )
(7)退出系统模块:释放内存并且返回0;
三、概要设计
(1)结构体的存储结构: {
[200];
[4][100];

*;
}
(2)用一个语句来确定用户在主菜单选择的功能选项,进入能实现不同的函数调用以实现用户需要的功能,二级菜单选项也是如此;
(3)其他各个模块的函数需要的功能见上述的“需求分析”;
(4)各个函数的算法详述及源代码见下文“源程序代码”;
{
0;
[i]=1();
(; l<i;)
{
([i][l])
/*将每个产生的随机数与前面的所有随机数比较,相同时则重新产生随机数并为之赋值,接着重新比
*较,如此循环直到产生的随机数都与前面的所有随机数不同*/
{
[i]=1();
0;
}
;
}
}
(5)答题模块:
答题模块比较简单,该函数打印抽取到的每道试题,接着用一个数组存储用户回答的答案
(3) 试题录入模块功能实现的主要函数定义及算法分析:
( *t)
{
{
1;
(*)[100];
0;
("*****是否要往试题库添加一道试题 N*****\n");
/*让用户确定是否要往试题库添加试题,用户输入Y则进入添加试题,N则退出添加试题并
*回到主菜单,输入其他的则系统会报错并提示用户重新输入*/
>;
("*****请输入要添加的问题的四个选项,逐个输入:*****\n");
(; [i]<>[4]; )
{
([i]);
(,"\n"[i]);
}
("*****请输入要添加的问题的答案:*****\n");
>();
();
(,"\n">);
}
("*****请按要求输入 N*****\n");
系统报错并提示用户重新输入,系统容错性得到提高
(3)试题抽取模块:将试题库中所有试题依次读到一个结构体链表中,由键盘输入的N产生N个随机数可以将随机数用一个数组存储,按照每一个随机数的值确定所抽取到的试题,并将试题存储到另一个链表,达到间接的随机抽取试题的效果,同时释放第一个链表的内存;
(4)答题模块:建立一个数组存储用户所输入的答案,将答案同链表的对应的结点的答案域部分比较,相同则正确,并且设置的累加器自增加1,同时设置的标志数组(初始化为0)在对应位置置为1,表示该题正确;答案对比不同时则累加器与标志数组都在对应位置不操作;
(5)自动判卷模块:输出累加器的值表示总共答对的试题总数,同时输出标志数组每一道题的标志表示答对与答错的试题;
(6)自动增加的新功能模块:该模块会弹出二级菜单,具体有“重新答题”、“显示答案”
及“返回主菜单”三个功能;“重新答题”将调用答题模块,将刚刚答过的题重新让用户回答,“显示答案”将打印每一个试题结点的答案域,“返回主菜单”则跳出并打印主菜单;
( *1 *2 j)
{
0;
(<)
{
0;
("*****第题:*****\n"1);
(1->);
(<4)
(1->[k]);
("*****请输入答案:*****\n");
*2();
();
11->;
}
}
(6)自动判卷模块:
/*该模块也比较简单,只需要将用于存储用户的回答的数组的每一个答案与对应试题每一个答案比较*即可,函数如下*/
1();
();
('N'1)
;
('Y'1)
{
(,0,2)将试题库文本的文件指针置于末尾以追加试题
("*****请输入要添加的问题的题干:*****\n");
(>);
将用户输入的试题的题干存入已定义的结构体的题干域,下面的操作也类似
(,"\n">);
将该结构体的题干域写入试题库文本文件,下面的操作也类似
程序设计报告
(2012/2013学年 第二学பைடு நூலகம்)
题 目:单项选择题标准化考试系统
专 业
学 生 姓 名
班 级 学 号
指 导 教 师
指 导 单 位
日 期_
评分细则
评分项
优秀
良好
中等

遵守机房规章制度
上机时的表现
学习态度
程序准备情况
程序设计能力
团队合作精神
课题功能实现情况
算法设计合理性
用户界面设计
报告书写认真程度
相关文档
最新文档