c语言单项选择题标准化考试系统设计.docx
《c语言单项选择题标准化考试系统设计.docx》由会员分享,可在线阅读,更多相关《c语言单项选择题标准化考试系统设计.docx(11页珍藏版)》请在冰点文库上搜索。
c语言单项选择题标准化考试系统设计
c语言单项选择题标准化考试系统设计
课程设计任务书
学院、系:
专业:
学生姓名:
学号:
设计题目:
单项选择题标准化考试系统设计
起迄日期:
指导教师:
1.设计目的
设计单项选择题标准化考试系统。
2任务概述
(1)用文件保存试题库(每个试题包括题干、4个备选答案、标准答案).
(2)试题录入:
可随时在试题库中增加试题.
(3)试题抽取:
每次从试题库中可以随机抽出N道题(N由键盘输入).(4)答题:
用户可以输入自己的答案.
(5)自动判卷:
系统可根据用户答案与标准答案的对比实现判卷并给出成绩.3模块划分
单项选择体标准化考试系统
判退添显答卷出加示题系试试统题题
到库
试题库
4主要函数说明及N-S图
(1)菜单Menu():
用来给用户提供选项;
输出菜单界面
输入选项
输入1NY
添加Add输入2NY()函数
添加Put输入3NY()函数
添加输入4NYAsk()函数
exit(0)
breakbreakbreak
(2)Read()函数:
用于打开文件;FILE*fp,inti=0break
fp=fopen("单项选择题标准化考试系统设计.txt","r+")
Yif(fp==NULL)N
printf("文件打开失败");
return0;
for(i=0;!
feof(fp);i++)
fprintf(fp,"%s%s%s%s%s%c\n",que[i].topic,que[i].a1,que[i]
.a2,que[i].a3,que[i].a4,que[i].real);
fclose(fp)
returni
(3)Save()函数:
用于添加试题后保存试题;
FILE*fp
inti=0
if((fp=fopen(“单项选择题标准化考试系统设计.txt”))==Null)
YN
printf(“文件打开失败~”)
i=0;ifprintf(fp,”%s%s%s%s%s
%c\n,que[i].topic,que[i].a1,que
[i].a2,que[i].a3,que[i].a4,que[i].real”)(4)Put()函数:
用于显示试题;
inti,n
n=Read(que)
打印表头
i=0;ifprintf(fp,”%s%s%s%s%s\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a
4”)
getch()
(5)Add()函数:
用于添加试题
(5)AdiFILE*fpinti,a,n.sructquestionque
n=Read(que)
printf(“请输入增加试题的数目”)
scanf(“%d“,&a);
i=0;iscanf
(”%s%s%s%s%s%c\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que[i].real”
)
fprintf(fp,”%s%s%s%s%s%c\n,que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4,que
[i].real”)
fclose(fp)
(5)Ask()函数:
用于答题并判卷。
sructquestionque[N]
intm,score=0;charr;
fp=fopen("单项选择题标准化考试系统设计.txt","r+");
printf(“请输入要答得题目数:
”)
Scanf(”%d”,&m);
for(i=0;iif(strcmp(number,stu[i].num)==0);break;
printf("%s\n%s\n%s\n%s\n%s\n",que[i].topic,que[i].a1,que[i].a2,que[i].a3,que[i].a4);
printf("\n请输入您的答案:
");
scanf("%c",&r);
getchar();
if(que[i].real==r)YN
图4-6
printf("\n答案正确!
\n");printf("\n答案错误!
\n");修改函数(cor)score++;score=score;
printf("\n你的总成绩为:
%d\n",score);
getchar();getchar();
5.程序运行数据及其结果
6课程设计心得
通过这次实训,感觉到自己还是差很多的,自己学到的还是远远不够的,练习的太少了,好多知识点都记得不牢,还需要大量的练习。
又因为一个学期没看了,好多东西都忘了,所以好多知识点都是在看得时候重新拾起来的。
这次实训给我的教训就是平时要多多练习一些题型,时不时的复习以前的知识点,让自己更加熟练的掌握更多编程技巧,更多的思路。
还有一点就是没有思路的时候千万不要放弃,要学会思考,学会独立有耐心的完成一些事情,等到做完成功之后,便会收获很多的信心和欣慰。
总之就是要有耐心,坚持多做练习,不会的多请教别人,一切困难都会迎刃而解。
附录:
#include
#include//串操作及内存操作函数
#include//调用系统函数
#include//动态内存
#include
#defineN100
voidMenu1();
intRead();
voidsave();
voidPut();
voidAdd();
voidAsk();
structquestion
{chartopic[100];
chara1[100];
chara2[100];
chara3[100];
chara4[100];
charreal;
};
voidMenu1()//主菜单
{system("cls");
puts("\t\t-----欢迎进入单项选择题标准化考试系统设计-----");
puts("\t\t1----添加试题到试题库中");
puts("\t\t2----显示试题库");
puts("\t\t3----答题并判卷");
puts("\t\t4----退出");
puts("\t\t请选择……");
intchoice1,choice2;
while(12)
{
scanf("%d",&choice1);
switch(choice1)
{//调用子函数。
case1:
system("cls");Add();Menu1();break;
case2:
system("cls");Put();Menu1();break;
case3:
system("cls");Ask();Menu1();break;
case4:
puts("欢迎下次使用");exit(0);
}
}
}
intRead(structquestionque[N])//打开文件
{
FILE*fp;
inti=0;
fp=fopen("单项选择题标准化考试系统设计.txt","r+");//以读的形式打开文件information.txt
if(fp==NULL)
{
printf("文件打开失败");
return0;
}
for(i=0;!
feof(fp);i++)
{
fscanf(fp,"%s%s%s%s%s%c\n",que[i].topic,que[i].a1
que[i].a2,que[i].a3,que[i].a4,que[i].real);
}
fclose(fp);
returni;
}
voidsave(structquestionque[N],intn)//考试系统改变后更新并保存文件
{
FILE*fp;
inti=0;
if((fp=fopen("单项选择题标准化考试系统设
计.txt","w+"))==NULL)
{
printf("文件打开失败~\n");
return;
}
else
{
for(i=0;ifprintf(fp,"%s%s%s%s%s%c\n",que[i].topic,que[i].a1
que[i].a2,que[i].a3,que[i].a4,que[i].real);
}
fclose(fp);
}
voidPut()//显示试题信息
{
structquestionque[N];
inti,n;
n=Read(que);
printf("*********************所有的试题信息如下
**********************\n\n");
for(i=0;iprintf("%s\n%s\n%s\n%s\n%s\n\n",que[i].topic,que[i].a1,que[i
].a2,que[i].a3,que[i].a4);
getch();
}
voidAdd()//添加试题
{
FILE*fp;
inta,i;
structquestionque[N];
fp=fopen("单项选择题标准化考试系统设计.txt","a+");//以添
加的形式打开文件
if(fp==NULL)
{
printf("文件打开失败");
return;
}
printf("请输入增加试题的数目\n");
scanf("%d",&a);
for(i=1;i<=a;i++)
{
printf("\n请输入第%d个试题的题目,第一个选项,
第二个选项,第三个选项,第四个选项,正确答案,并按回车键确认:
\n",i);
scanf("%s\n%s\n%s\n%s\n%s\n%c",&que[i].topic,&que[i].a1,&que
[i].a2,&que[i].a3,&que[i].a4,&que[i].real);
fprintf(fp,"\n%s\n%s\n%s\n%s\n%s\n%c\n",que[i].topic,que[i].
a1,que[i].a2,que[i].a3,que[i].a4,que[i].real);
}
printf("添加信息成功~");
fclose(fp);
getchar();
getchar();
}
voidAsk()//答题并判卷
{FILE*fp;
structquestionque[N];
intm,score=0;
charr;
fp=fopen("单项选择题标准化考试系统设计.txt","r+");
printf("请输入要答得题目数:
");
scanf("%d",&m);
for(inti=1;i<=m;i++){
fread(&que[i],sizeof(structquestion)-1,1,fp);
printf("%s\n%s\n%s\n%s\n%s\n",que[i].topic,que[i].a1,que[i]
.a2,que[i].a3,que[i].a4);
printf("\n请输入您的答案:
");
scanf("%c",&r);
getchar();
if(que[i].real==r)
{printf("\n答案正确!
\n");
score++;
}
else{
printf("\n答案错误!
\n");
score=score;
}
printf("\n你的总成绩为:
%d\n",score);
getchar();
getchar();
}
}
intmain()
{Menu1();}