数据结构课程设计报告书 单项选择题标准化考试系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构与算法I》课程设计报告
课设题目:单项选择题标准化考试系统
学生姓名:
学号:
同组同学:
完成日期:
成绩:
目录
一、设计流程 (1)
二、需求分析 (1)
三、总体设计 (2)
四、详细设计 (3)
五、系统测试 (14)
六、总结 (19)
七、参考文献 (19)
一本次课程设计的流程
(1)需求分析
(2)试题的录入
(3)试题的抽取
(4)试题的删除
(5)答题
(6)自动判卷
(7)系统测试
(8)退出系统
二需求分析
1. 课程设计名称及内容
设计一单项选择题标准化考试系统,实现考试的标准化管理。
2.设计方案提示
(1) 用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案);
(2) 试题录入:可随时增加试题到试题库中;
(3) 试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入);
(4) 答题:用户可实现输入自己的答案;
(5) 自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。
1.总的叙述
1、用来保存试题库,可以用到”Struct TestNode Testquestions”结构体数组,将试题一一对应
的保留下来,放在相应的文件里;
2、试题的录入,可以定义一个” Status InsertNode(int &N)”函数将试题录入;
3、试题的抽取,可以定义一个” void printNode(TestNode p,int n)”的函数,用到”Rand”
函数进行随机抽取;
4、答题方面,,则定义一个” void answer(int sum)”函数用于答题者的输入答案;
5、自动判卷,则可以定义一个” Status Match(TestNode p,char m)”函数,用来对比答题
者答案
和正确答案,给出判断正确与否;
6、存储方面每次插入和删除操作都能自动存储试题至文档。
7、用一个main函数将上述各个函数功能块连接起来,实现”单项选择题标准化考试系统”的各个方面的功能,完成设计
1.模块流程
(1)答题功能模块
(2)显示功能结构
(4)结构体
程序中主要用到了结构体数组,定义类型,如typedef int Status等,用结构体数组可以使得程序比较简便,易于读懂,免去频繁的赋值,而用定义类型,可以使得程
序具有移植性。
2.功能模块
(1)试题的录入模块
Status InsertNode(int &n){
// printf("%d",n);
int i=0,j;
FILE *fp;
if((fp=fopen("exam.txt","wb+"))==NULL){
printf("Cannot open file.");
getchar();
exit(1);
}
// printf("%d",n);
while(!feof(fp)){
fread(&Testquestions[i],sizeof(TestNode),1,fp);
i++;
}
// printf("%d",n);
// printf("%d",n);
printf("请输入题目:");
gets(Testquestions[n].subject);
gets(Testquestions[n].subject);
printf("请输入选项A:");
gets(Testquestions[n].option1);
printf("请输入选项B:");
gets(Testquestions[n].option2);
printf("请输入选项C:");
gets(Testquestions[n].option3);
printf("请输入选项D:");
gets(Testquestions[n].option4);
printf("请输入答案:");
scanf("%c",&Testquestions[n].result);
getchar();
// printf("%d",n);
n++;
// printf("%d",n);
for(j=0;j fwrite(&Testquestions[j],sizeof(TestNode),1,fp); } fclose(fp); system("cls"); return TRUE; } (2)试题的输出模块 void printNode(TestNode p,int n){ //int i=0; printf("(%d) ",n); printf("%s\n",p.subject); printf(" A %s ",p.option1); printf(" B %s ",p.option2); printf(" C %s ",p.option3); printf(" D %s ",p.option4);