单项选择题标准化考试系统设计(C语言实训)

时间:2026-01-14

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#include<string.h>

#include<time.h>

struct test

{

char ask[500];//选择题题目

char answer1[100];

char answer2[100];

char answer3[100];

char answer4[100];

char da[100];

int title[100];//随机抽题

char right[10];

} m[1000];

void menu()

{

printf(" ***********单项选择题标准化考试系统³*********\n");

printf(" *********************************************\n");

printf(" 1.试题录入 ***\n");

printf(" 2.查看所有试题 ***\n");

printf(" 3.试题抽取并答题 ***\n");

printf(" 4.判卷并打分 ***\n");

printf(" 5.退出系统 ***\n");

printf(" ********************************************\n");

}

int input(int cnt)

{

int i,count,choice=0;

printf("开始输入记录...\n");

count=cnt;

for(i=cnt;i<1000;i++)

{

printf("Continue?(1 Yes 0 No):");

scanf("%d",&choice);

getchar();

if(choice==0)

break;

else

if(choice==1)

{

printf("请输入第%d道题题目,题干和选项:\n",i+1); printf("请输入题目:");

gets(m[i].ask);

printf("请输入选项A:");

gets(m[i].answer1);

printf("请输入选项B:");

gets(m[i].answer2);

printf("请输入选项C:");

gets(m[i].answer3);

printf("请输入选项D:");

gets(m[i].answer4);

printf("请输入答案:");

scanf("%c",&m[i].right);

cnt++;

}

}

if(count!=cnt)

printf("\n题目输入成功:");

else

printf("\n未输入记录!");

return cnt;

}

void list(int cnt)

{

int i;

printf("开始显示所有题目...");

printf("\n当前文件夹中所有记录显示如下:\n\n");

for(i=0;i<cnt;i++)

{

printf("第(%d)题目:%s\n",i+1,m[i].ask);

printf("A:%s\n",m[i].answer1);

printf("B:%s\n",m[i].answer2);

printf("C:%s\n",m[i].answer3);

printf("D:%s\n",m[i].answer4);

getchar();

}

printf("所有题目显示完成...");

}

void rande(int cnt)

{

int i,j,x=1,n,t;

int title[100];

printf("请输入你想抽取的题数:");

scanf("%d",&n);

if(n>cnt)

printf("您抽取的题目超过了题目总数");

else

{

for(i=1;i<=n;i++)

{

here:x=rand()%n;

title[i]=x;

for(j=0;j<i;j++)

if(title[i]==title[j])

{

goto here;

}

printf(" =============================================\n"); printf("输出抽取到的第%d题目",i);

printf("ÌâÄ¿:%s\n",m[x].ask);

printf("A:%s\n",m[x].answer1);

printf("B:%s\n",m[x].answer2);

printf("C:%s\n",m[x].answer3);

printf("D:%s\n",m[x].answer4);

printf("请输入你的答案:");

scanf("%s",m[x].da);

printf(" =============================================\n"); }

}

printf("´答题成功,按任意键返回主菜单...");

}

void ask(int cnt)

{

int i,n;

int count=0;

printf("请输入已经答题的数目:");

scanf("%d",&n);

for(i=0;i<cnt;i++)

{

if(!strcmp(m[i].da,m[i].right))

{

count++;

}

}

printf("你答对的总题数是%d\n",count);

printf("你最后的得分为%d",(100/n)*count);

system("pause");

}

int main()

FILE * fp;

int i=0,count=0,select;

fp=fopen("tiku.txt","a+");

if(fp==NULL)

{

printf("File open error!\n");

exit(0);

}

while(!feof(fp))

{

if(fread(&m[i],sizeof(struct test),1,fp)==1) {

i++;

count++;

}

}

fclose(fp);

while(1)

{

printf("当前文件夹总共有%d条记录.\n",count); menu();

printf("请输入你的选择:");

scanf("%d",&select);

switch(select)

{

case 1:

count=input(count);break;

case 2:

list(count);break;

case 3:

rande(count);break;

case 4:

ask(count);break;

case 5:

fp=fopen("tiku.txt","w");

printf("开始保存文件,按任意键继续........"); getchar();

getchar();

for(i=0;i<count;i++)

{

fwrite(&m[i],sizeof(struct test),1,fp);

} } fclose(fp); printf("\n文件保存成功,按任意键退出系统....."); getchar(); exit(0); default:printf("输入错误,请重新输入....."); }

…… 此处隐藏:863字,全部文档内容请下载后查看。喜欢就下载吧 ……
单项选择题标准化考试系统设计(C语言实训).doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219