• 大小: 4KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: C/C++
  • 标签:

资源简介

1.用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案) 2.试题录入:可随时增加试题到试题库中 3.试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入) 4.答题:用户可实现输入自己的答案 5.自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。

资源截图

代码片段和文件信息

#include
#include//应用动态存储分配函数//
#include
# define LEN sizeof(struct question)
struct question
{
char ask[200];//选择题题目//
char answer[4][80];//选择题选项每个答案的长度//
int right;//正确答案//
struct question *next;//next是指针类型的成员,
//它指向struct question类型数据(即next所在的结构体类型)
//使用指针类型成员存放下一个结点的地址
//此步骤实现了问题的连续输入输入
};
int menu(void);//声明菜单选择函数
struct question *seek(struct question *seeklong lenlong max);//寻找读取答案的位置
struct question *insert(struct question *fstconst struct question *ad);//插入试题
void getquestion(struct question *s);//获取问题,选项,以及正确答案
void savefile(const struct question *aFILE *sf);//保存最佳答案在文件中//
struct question *loadfile(struct question *bFILE *lf);//读取题目,将题目添加到列表中
int getanswer(void);//得到答案
int getyouranswer(void);//得到考生答案
void explainquestion(const struct question *qint n);//统计答对题目数,显示得分
//选择菜单//
int menu(void)
{
int v;
printf(“1—添加选择题\n2—回答选择题\n3—退出\n“);
scanf(“%d“&v);
return v;
}
//seek函数确定一个读取答案的位置,len代表要读取的答案数,max代表列表的长度//
struct question *seek(struct question *seeklong lenlong max)
{
int i;
srand(time(NULL));
while(i=rand()%max+len while(i--)
seek=seek->next;//找到指定的位置//
return seek;
}
//向列表中插入试题//
struct question *insert(struct question *fstconst struct question *ad)
{
struct question *newptr=(struct question *)malloc(LEN);//分配新的内存空间//
if (newptr==NULL)
exit(0);
*newptr=*ad;
newptr->next=fst;
return newptr;
}
//获取问题,选项,以及正确答案//
void getquestion(struct question *s)
{
int i=0;
printf(“请输入选择题题目:\n“);
scanf(“%s“s->ask);//指向结构体中的成员//
while(i<4)
{
printf(“请输入选项%c的答案:\n“i+‘A‘);
scanf(“%s“s->answer[i++]);
}
s->right=getanswer();
}
//试题保存//
void savefile(const struct question *aFILE *sf)//使用const说明成员函数//
{
fclose(sf);
if((sf=fopen(“kstm.dat““w“))==NULL)//以写的方式重新打开文件//
return

评论

共有 条评论

相关资源