范文无忧网范文学习范文大全

如何做一个选择题考试系统

02月16日 编辑 fanwen51.com

[拥有梦想的人不做选择题,他们只做证明题]是安于现在的生活并且学着享受庸常,还是甘冒下坠的风险振翅飞往远方? 这是我最近经常看到的问题。说实话,我也觉得非常惊奇,竟然有那么多人,觉得现实在一点点埋葬自己的梦想,同时...+阅读

#include#include#includestruct question { char ask[200];/*选择题题目*/ char answer[4][80];/*选择题选项*/ int right;/*正确答案*/ struct question *next; }; int MenuChoice(void); struct question *InsertList(struct question *fst, const struct question *ad); struct question *ListSeek(struct question *seek, long len, long max); void GetQuestion(struct question *src); void SaveFile(const struct question *ed, FILE *saf); struct question *LoadFile(struct question *td, FILE *laf); int GetAnswer(void); void ExplainQuestion(const struct question *que, int n); main() { struct question *start = NULL, temp; long choice, line = 0, c; FILE *fp = fopen("kstm.dat", "a+"); start = LoadFile(start, fp); while ((choice = MenuChoice()) != 3) if (choice == 1) { GetQuestion(&temp); start = InsertList(start, &temp); ++line;/*统计列表的长度*/ } else if (choice == 2){ c =600; while (c >500 || c >line) { printf("请输入要回答的问题数量: "); scanf("%d", &c); } ExplainQuestion(start, line); } SaveFile(start, fp);/*进行最后的工作*/ fclose(fp); return 0; } /*ListSeek函数确定一个读取答案的位置,len代表要读取的答案数,max代表列表的长度*/ struct question *ListSeek(struct question *seek, long len, long max) { int i; srand(time(NULL)); while (i = rand() % max + lennext;/*找到指定的位置*/ return seek; } /*向列表中插入试题*/ struct question *InsertList(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; printf("请输入选择题题目:\n"); scanf("%s", src->ask); while (ianswer[i++]); } src->right = GetAnswer(); } /*从文件中读取题目,将题目添加到列表中*/ struct question *LoadFile(struct question *td, FILE *laf) { struct question temp; while (fread(&temp, 1, sizeof(struct question), laf)) td = InsertList(td, &temp); return td; } /*将列表中的试题保存在文件中*/ void SaveFile(const struct question *ed, FILE *saf) { fclose(saf); if ((saf = fopen("kstm.dat", "w")) == NULL)/*以写的方式重新打开文件*/ return ; while (ed) { fwrite(ed, 1, sizeof(struct question), saf); ed = ed->next; } } /*得到选择题的答案(不保证是正确的答案)*/ int GetAnswer(void) { int c = 0;/*必须进行初始化,避免出现偶然性的错误*/ fflush(stdin); while (c'D') {/*确保输入的答案是A, B, C, D中的一个*/ printf("请输入正确的答案: "); scanf("%c", &c); } return c; } /*回答问题,并统计答对题目数,显示得分*/ void ExplainQuestion(const struct question *que, int n) { int i = 0, t = n; char result[1001], *p = result; for (i = 0; n--; que = que->next) { printf("%s\nA.%s\nB.%s\nC.%s\nD.%s\n\n", que->ask, que->answer[0], que->answer[1], que->answer[2], que->answer[3]); if ((*p = que->right) == (*(p + 1) = GetAnswer())) ++i; p += 2; } *p = '\0'; printf("\n%-13s%-13s%s\n", "标准答案", "您的答案", "评价"); for (p = result; *p != '\0'; p += 2) printf("%-13c%-13c%s\n", *p, *(p + 1), *p == *(p + 1) ? "正确" : "错误"); printf("\n您回答了%d道题, 答对%d道题目, 得分: %.2f\n\n", t, i, (float)i / t * 100.00); } /*选择菜单*/ int MenuChoice(void) { int value; printf("1 - 添加选择题\n2 - 回答选择题\n3 - 退出\n"); scanf("%d", &value); return value; } 随即抽题 struct question *ListSeek(struct question *seek, long len, long max) { int i; srand(time(NULL)); while (i = rand() % max + lennext;/*找到指定的位置*/ return seek; }

延伸阅读:

国家公务员考试如何选择职位呢第一,职位硬性规定。这是考生在筛选职位时最基础的标准,也能筛选出一批基本满足自身要求的岗位。要不然很多考生拿到职位表的第一反应是我应该选择报哪里,哪个岗位未来发展比较...

公务员考试如何选择职位说下我的报考经验: 1.不要太早报名,要在最后几天报名。主要是看人集中在那里,避开热门职位,找人少的报。 2.最好报招收自己专业的职位,因为自己专业的,人会少点。专业不限的职位一...

如何做一个师德高尚的人民教师?如何做一个师德高尚的人民教师教师是“育人”的奠基者和实施者,历来被人们尊称为“人类灵魂的工程师”,被喻为“园丁、春蚕、蜡炬”。无论哪种美誉蕴含着人们对教师师德、师风、师能更高的期待。正为师,德高...

主题:怎样做一个优秀的系统分析师最后,系统分析师应需要熟悉相当多的人及其工作方式,因为这些人是信息系统的使用者,或者说是系统分析师的“客户”。02020202系统分析师是“通才”,正是因为他们连接了IT和业务。...

研发企业项目管理系统如何选择选择研发企业项目管理系统主要是实现从“项目立项申请”到“项目审批”、“项目全生命周期管理”、以及“项目群管理”等各方面的集中管控,此外系统还必须拥有高安全性、稳定...

人事管理系统和人才管理系统有什么区别如何选择HR管理系统人才管理系统在国外也叫人力资本管理系统(HCM system),跟人事管理系统完全是两个东西,看企业需要什么,人力资本管理系统重在解决关键岗位核心人才的管理问题,很多管理功能和管理理...

项目管理系统如何选择目前微软的project是无法满足用户需求,针对中小型企业使用,在大型的企业管理中最好是考虑专业化的公司来选择项目管理系统,特别是研发项目管理系统-捷为iMIS-PM集成项目管理软...

如何做一个好老师一、要爱业,爱业也就是敬业。而敬业与爱学生是分不开的 二、要爱学生,要让学生喜欢你。 三、做一个漂亮的老师。教师是阳光,学生则是含苞欲放的花蕾,我愿化为温暖的阳光,为他们带...

用c语言做一个学生成绩管理系统/* 学生成绩管理程序 编制一个统计学生考试分数的管理程序。设学生成绩已以一个学生一个记录的形式存储在文件中,每位学生记录包含的信息有:姓名,学号和各门功课的成绩。程序具...

推荐阅读
图文推荐
栏目列表