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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1.课程设计目的1

2.课程设计题目描述和要求1

2.1课程题目1

2.2课程要求1

3.课程设计报告内容1

3.1算法描述1

3.2 源程序2

4.课程设计总结:6

5.参考书目7

1 课程设计目的

练习自己的动手能力,在学习理论的同时增强自己的编程能力,使理论与实践相结合,在学习书本的同时扩展自己的课外知识.

2 课程设计题目描述和要求

2.1课程题目

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

2.2课程要求

(一)功能要求:

(1)用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)

(2)试题录入:可随时增加试题到试题库中

(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)

(4)答题:用户可实现输入自己的答案

(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。

(二)其它要求:

(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读

(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)

(3)学生可自动增加新功能模块(视情况可另外加分)

(4)写出课程设计报告,具体要求见相关说明文档.

3 课程设计报告内容

3.1算法描述

定义题目数组,选向数组,输入题目的及选向并给定正确答案。

输入所要答的题目数,然后进行答题。输入的答案与标准答案进行比较,如果一致,则正确,否则错误。最后根据题目数及答对题目数进行输出得分。

3.2 源程序

#include

#include

#include "dos.h"

using namespace std;

struct question {

char ask[200];/*选择题题目*/

char answer[4][80];/*选择题选项*/

int right;/*正确答案*/

struct question *next;

};

//函数声明

int MenuChoice(void); //选择菜单

struct question *charu_timu(struct question *fst, const struct question *ad); //向列表中插入试题函数

struct question *da_an_weizhi(struct question *seek, long len, long max); //确定一个读取答案的位置的函数

void GetQuestion(struct question *src); //获取问题,选项,以及正确答案函数

void bao_cun(const struct question *ed, FILE *saf); //将列表中的试题保存在文件中的函数struct question *LoadFile(struct question *td, FILE *laf); //从文件中读取题目,将题目添加到列表中的函数

int GetAnswer(void); //输入选择题的答案

void huida_Question(const struct question *que, int n); //回答问题函数

main()

{

struct question *start = NULL, temp;

long choice, line = 0, c;

FILE *fp = fopen("wangkun.dat", "a+");

while ((choice = MenuChoice()) != 3)

if (choice == 1)

{

GetQuestion(&temp);

start = charu_timu(start, &temp);

++line;/*统计列表的长度*/

system("cls");

}

else if (choice == 2)

{

c =8;

while (c > 6 || c > line) {

cout<<"请输入要回答的问题数量: ";

cin>>c;

}

huida_Question(start, line);

}

return 0;

}

/*da_an_weizhi函数确定一个读取答案的位置,len代表要读取的答案数,max代表列表的长度*/

struct question *da_an_weizhi(struct question *seek, long len, long max)

{

int i;

while (i--)

seek = seek->next;//找到指定的位置

return seek;

}

//向列表中插入试题

struct question *charu_timu(struct question *fst, const struct question *ad) {

struct question *newPtr = (struct question *)malloc(sizeof(struct question)); if (newPtr == NULL)

exit(0);

*newPtr = *ad;

newPtr->next = fst;

return newPtr;

}

/*获取问题,选项,以及正确答案*/

void GetQuestion(struct question *src)

{

int i = 0;

cout<<"请输入选择题题目:"<

cin>>src->ask;

while (i < 4) {

cout<<"请输入选项"<

cin>>src->answer[i++];

}

src->right = GetAnswer();

}

/*从文件中读取题目,将题目添加到列表中*/

struct question *LoadFile(struct question *td, FILE *laf)

{

struct question temp;

while (fread(&temp, 1, sizeof(struct question), laf))

td = charu_timu(td, &temp);

return td;

}

/*将列表中的试题保存在文件中*/

void bao_cun(const struct question *ed, FILE *saf)

{

fclose(saf);

if ((saf = fopen("wankun.dat", "w")) == NULL)//以写的方式重新打开文件return ;

while (ed) {

fwrite(ed, 1, sizeof(struct question), saf);

相关文档
最新文档