试卷管理

  • 主函数

老师在教学过程中,会经常以试卷的形式来检验学生的学习情况。先由你来 帮助老师设计一个系统。该系统中只有 2 种题型:单项选择题、填空题。其中 单项选择题:题目编号、题目、选项 A、选项 B、选项 C、选项 D、答案 填空题:题目编号、题目、答案 功能: 功能:试题添加、删除、修改、查询功能
(1)试题添加:向试题库追加写入一道新的题目,要求题目编号与已存题目 的编号不重复;所有内容不能为空;
(2)试题删除:通过题目编号进行题目的删除;
(3)删除全部题目;
(4)试题修改:通过题目编号修改指定的题目的内容;
(5)试题查询:通过题目编号查询指定的题目的所有内容;
(6)统计共有多少道题目;
(7)查询题目中含有某个特定内容(用户输入)的所有题目内容;
(8)自动随机生成由单项选择题、填空题合在一起的试卷及答案 2 个文件, 各题型的题目数由用户输入;
(9)以上功能要求通过菜单的方式进行操作;要求对相应内容进行必要的合 法性检查

主函数

#include <bits/stdc++.h>using namespace std;const int N = 1024;
const int N1 = 120;
int main()
{int n;int i,j;printf("                -------------------试卷管理系统------------------\n");printf("                -------------------------------------------------\n");printf("                ------------**************************-----------\n");printf("                -------------------1-试题添加--------------------\n");printf("                -------------------2-试题删除--------------------\n");printf("                -------------------3-删除全部--------------------\n");printf("                -------------------4-试题查询--------------------\n");printf("                -------------------5-统计题目--------------------\n");printf("                -------------------6-查询特定--------------------\n");printf("                -------------------7-生成试卷--------------------\n");printf("                -------------------8-试题修改--------------------\n");printf("\n");printf("\n");printf("                --------------->输入你想选择的操作<--------------\n");printf("                -------------------------->  <-------------------\n");printf("                ---------------1-8-功能键--0-退出键--------------\n");for(i = 0; i < 5; i ++){printf("                -----------------------------------------------Q-Q\n");}while(scanf("%d",&n)&&n!=0){if(n==1){printf("**试题增加**\n");printf("--        --\n");printf("--        --\n");printf("选,填,退出(1,2,0)\n");int cc = 1;int zc1;scanf("%d",&zc1);while(cc){if(0<=zc1&&zc1<=2){cc = 0;printf("输入合法\n");}else{printf("请重新输入\n");scanf("%d",&zc1);}}if(zc1==0){printf("正在退出\n");printf("请重新选择功能\n");printf("--->  <----\n");printf("请输入1-8是功能键,0是退出键\n");for(i = 0; i < 5; i ++){printf("-----------------------------------------------Q-Q\n\n");}continue;}else if(zc1==1){printf("进入选择题填入模式\n");printf("你想增加多少题目?\n");FILE *fp;fp = fopen("选择题.txt","a");if(fp==NULL){printf("无法打开文件");exit(0);//退出文件}int wgg;scanf("%d",&wgg);for(i = 0; i < wgg;i ++){printf("请你准备好输入题目\n");char *th = NULL;char *tm = NULL;char *answer = NULL;th  = (char*)malloc(N1);tm = (char*)malloc(N);answer  = (char*)malloc(N1);printf("输入题号\n");scanf("%s",th);printf("输入题目\n");scanf("%s",tm);printf("输入answer\n");scanf("%s",answer);FILE *fp4,*fpzc;fp4 = fopen("选择题题号.txt","a");if(fp4==NULL){printf("无法打开文件");exit(0);//退出文件}fpzc = fopen("answer.txt","a");if(fpzc==NULL){printf("无法打开文件");exit(0);//退出文件}fprintf(fp,"%s\n",tm);fprintf(fp4,"%s\n",th);fprintf(fpzc,"%s\n",answer);fclose(fp4);fclose(fpzc);free(th);free(tm);free(answer);}fclose(fp);printf("加题结束\n");printf("请重新选择功能\n");printf("     --->  <---\n");printf("请输入1-8是功能键,0是退出键\n");for(i = 0; i < 5; i ++){printf("-----------------------------------------------Q-Q\n\n");}}else{printf("进入填空题填入模式\n");printf("你想增加多少题目?\n");FILE *fp2;fp2 = fopen("填空题.txt","a");if(fp2==NULL){printf("无法打开文件");exit(0);//退出文件}int wgg1;scanf("%d",&wgg1);for(i = 0; i < wgg1;i ++){printf("请你准备好输入题目\n");char *th1 = NULL;char *tm1 = NULL;char *answer1 = NULL;th1  = (char*)malloc(N1);tm1 = (char*)malloc(N);answer1  = (char*)malloc(N1);printf("输入题号\n");scanf("%s",th1);printf("输入题目\n");scanf("%s",tm1);printf("输入answer\n");scanf("%s",answer1);FILE *fp3,*fpgg;fp3 = fopen("填空题题号.txt","a");if(fp3==NULL){printf("无法打开文件");exit(0);//退出文件}fpgg = fopen("answer1.txt","a");if(fpgg==NULL){printf("无法打开文件");exit(0);//退出文件}fprintf(fp2,"%s\n",tm1);fprintf(fp3,"%s\n",th1);fprintf(fpgg,"%s\n",answer1);fclose(fp3);fclose(fpgg);free(th1);free(tm1);free(answer1);}fclose(fp2);printf("加题结束\n");printf("请重新选择功能\n");printf("--->  <----\n");printf("请输入1-8是功能键,0是退出键\n");for(i = 0; i < 5; i ++){printf("-----------------------------------------------Q-Q\n\n");}}}else if(n==5){printf("**统计功能**\n");printf("--        --\n");printf("--        --\n");int x1 = 0;int x2 = 0;char buf1[N];char buf2[N];int len1;int len2;FILE *fp10,*fp11;fp10 = fopen("选择题题号.txt","r");if(fp10==NULL){printf("无法打开文件");exit(0);//退出文件}printf("1\n");while(fgets(buf1,N,fp10) != NULL ){x1++;}printf("1\n");fp11 = fopen("填空题题号.txt","r");if(fp11==NULL){printf("无法打开文件");exit(0);//退出文件}while(fgets(buf2,N,fp11) != NULL ){x2++;}printf("选择题%d 填空题 %d\n",x1,x2);printf("总计%d\n",x1+x2);printf("结束\n");printf("请重新选择功能\n");printf("--->  <---\n");printf("请输入1-8是功能键,0是退出键\n");for(i = 0; i < 5; i ++){printf("<-AVA->\n");}}else if(n==2){printf("**试题删除**\n");printf("--        --\n");printf("--        --\n");int m;printf("选择题.填空题( 1 or 2 )\n");printf("输入‘0’退出\n");scanf("%d",&m);int mm=1;while(mm){if(m==1||m==2||m==0){mm=0;}else{printf("》输入数据错误请重新输入《\n");scanf("%d",&m);}}if(m==0){printf("正在退出\n");printf("结束\n");printf("请重新选择功能\n");printf("--->  <---\n");printf("请输入1-8是功能键,0是退出键\n");for(i = 0; i < 5; i ++){printf("-----------------------------------------------Q-Q\n\n");}}else if(m==1){printf("选择题删除\n");int ff;printf("输入需要删除的题数\n");scanf("%d",&ff);for(i = 0; i < ff; i ++){char  tth[N1];char  ttm[N1];char  answer0[N1];printf("输入题号\n");scanf("%s",tth);printf("输入题目\n");scanf("%s",ttm);printf("输入答案\n");scanf("%s",answer0);printf("调试中\n");char edg[N];char Rng[N];char WE[N];FILE *fpw,*fpa,*fpcz,*fp77,*fp78,*fpdd;fpw = fopen("选择题.txt","r");fpcz = fopen("选择题题号.txt","r");fpdd = fopen("exchange1.txt","a");fp77 = fopen("answer.txt","r");fp78 = fopen("exchange2.txt","a");fpa = fopen("exchange.txt","a");if(fpw==NULL||fpa==NULL||fpcz==NULL||fp77==NULL||fp78==NULL||fpdd==NULL){printf("open the file failure\n");exit(0);}while(fgets(edg,N,fpw)){if(strcmp(edg,ttm)!=0){fputs(edg,fpa);}}while(fgets(Rng,N,fpcz)){if(strcmp(Rng,tth)!=0){fputs(Rng,fpdd);}}while(fgets(WE,N,fp77)){if(strcmp(WE,answer0)!=0){fputs(WE,fp78);}}fclose(fpa);fclose(fpw);fclose(fpcz);fclose(fpdd);fclose(fp77);fclose(fp78);remove("选择题.txt");remove("选择题题号.txt");remove("answer.txt");rename("exchange.txt","选择题.txt");rename("exchange1.txt","选择题题号.txt");rename("exchange2.txt","answer.txt");}printf("请重新选择功能\n");printf("--->  <---\n");printf("请输入1-8是功能键,0是退出键\n");for(i = 0; i < 5; i ++){printf("-----------------------------------------------Q-Q\n\n");}}else{printf("填空题删除\n");int ff;printf("输入需要删除的题数\n");scanf("%d",&ff);for(i = 0; i < ff; i ++){char  tth[N1];char  ttm[N1];char  answer0[N1];printf("输入题号\n");scanf("%s",tth);printf("输入题目\n");scanf("%s",ttm);printf("输入答案\n");scanf("%s",answer0);printf("调试中\n");char edg[N];char Rng[N];char WE[N];FILE *fpw,*fpa,*fpcz,*fp77,*fp78,*fpdd;fpw = fopen("填空题.txt","r");fpcz = fopen("填空题题号.txt","r");fpdd = fopen("exchange1.txt","a");fp77 = fopen("answer1.txt","r");fp78 = fopen("exchange2.txt","a");fpa = fopen("exchange.txt","a");if(fpw==NULL||fpa==NULL||fpcz==NULL||fp77==NULL||fp78==NULL||fpdd==NULL){printf("open the file failure\n");exit(0);}while(fgets(edg,N,fpw)!=NULL)if(strcmp(edg,ttm)!=0)fputs(edg,fpa);fclose(fpa);fclose(fpw);while(fgets(Rng,N,fpcz)!=NULL)if(strcmp(Rng,tth)!=0)fputs(Rng,fpdd);fclose(fpcz);fclose(fpdd);while(fgets(WE,N,fp77))if(strcmp(WE,answer0)!=0)fputs(WE,fp78);fclose(fp77);fclose(fp78);remove("选择题.txt");remove("选择题题号.txt");remove("answer1.txt");rename("exchange.txt","选择题.txt");rename("exchange1.txt","选择题题号.txt");rename("exchange2.txt","answer1.txt");}printf("请重新选择功能\n");printf("--->  <---\n");printf("请输入1-8是功能键,0是退出键\n");for(i = 0; i < 5; i ++){printf("-----------------------------------------------Q-Q\n\n");}}}}return 0;
}

c语言应用(2)试卷管理相关推荐

  1. 基于区块链的Smart系统-题库及试卷管理模块的设计与开发

      1引言 1.1课题背景 随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训.现在,计算机硬件技术的发展已经达到了相当高的水平.但是,远程 ...

  2. java毕业设计——基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码)——学生信息管理系统模板2

    基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JSP+sqlserver的Smart系统-题库及试卷 ...

  3. html语言 试卷,《网页制作与HTML语言》模拟试卷A.

    <网页制作与HTML语言>模拟试卷A. <网页制作与HTML语言>模拟试卷A 班级__________________ 学号_________姓名_______________ ...

  4. java具有自动无用内存回收_Java语言程序设计(一)试卷及答案解释

    Java语言程序设计(一)试卷及答案解释 本试卷共6页,满分l00分,考试时间l50分钟. 第一部分选择题 一.单项选择题:本大题共l0小题,每小题l分,共10分.在每小题列出的备选项中只有一项是最符 ...

  5. c语言程序设计1试卷,(C语言程序设计期末试卷1.doc

    (C语言程序设计期末试卷1 <C语言程序设计>试卷1 (使用层次或专业: 计算机) 若程序题中预留的空白不够,在试卷最后一页背面答题,请标记相应的题号 题 次一二三四五六总分应得分2010 ...

  6. python终结一个循环额_Python语言入门之内存管理方式和垃圾回收算法解析

    本文主要向大家介绍了Python语言入门之内存管理方式和垃圾回收算法解析,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 在列表,元组,实例,类,字典和函数中存在循环引用问题.有 ...

  7. c语言程序设计开卷考试b卷,C语言程序设计(B)试卷_杨崇联(A1).doc

    C语言程序设计(B)试卷_杨崇联(A1) 江 西 理 工 大 学 考 试 试 卷 试卷编号: 20 11 -20 12 学年第 2 学期 课程名称: C语言程序设计(B) 考试时间: 年 月 日考试性 ...

  8. 以下描述中不属于python语言控制结构的是_高中信息技术《Python语言》模块试卷...

    高中信息技术<Python语言>模块试卷 本试卷分为五大题,37小题,共100分,考试用时60分钟. 一.单选题(本题共15小题,每小题2分,共30分) 是一门( ) (A)自然语言(B) ...

  9. 高级程序设计c语言试卷答案,高级程序设计语言半期试卷答案.doc

    高级程序设计语言半期试卷答案 西南交通大学2009-2010学年第1学期半期试卷 课程代码 3243800 课程名称 高级语言程序设计 考试时间 90分钟 题号一二三四五六七八九十总成绩得分 阅卷教师 ...

最新文章

  1. python基础看什么书-python新手看什么书比较好?这五本最靠谱
  2. 分享一个OTA测试服务器,可以用来测试esp8266的http update功能
  3. 【汇总】pytorch里的一些函数
  4. C#中如何动态加载DockPanel
  5. 在 Mac OS X 下启用超级帐户(root)
  6. 什么是黑客?郭盛华告诉你
  7. html caption属性的值,HTML中的caption属性是什么意思?caption标签在HTML中
  8. 三季度国内光伏市场需求仍将强劲
  9. python程序采用unicode编码、英文字符_python--基础字符编码
  10. 使用Photoshop软件巧去影像的白点空洞
  11. VSCode按ctrl与鼠标左键无法实现跳转的解决办法
  12. Android TextView自动调整字体大小(官方)
  13. 2020有道翻译 使用付费api
  14. 使用Pinyin4j进行拼音分词
  15. 红图app的模式有未来吗?
  16. BZOJ1179【APOI2009】ATM Tarjan
  17. VirtualBox 虚拟机安装Windows10,珍藏版!!!
  18. Android系统升级流程
  19. WebDAV之葫芦儿•派盘+Notability
  20. 2019年博客之星评选活动公告:严禁刷票!

热门文章

  1. 企业微信可以取消实名认证吗?如何操作
  2. Myabtis-plus中IService接口理解
  3. mysql查询选课数_[MySQL]查询学生选课的情况(二)
  4. office2016激活后还显示激活页面的解决办法
  5. 没娱乐、没性生活,中关村程序员要被逼疯了
  6. C#小型书店管理系统
  7. XP桌面图标有蓝底/阴影 脑桌面有蓝色阴影如何去掉
  8. 最小二乘擬合matlab,存在已知协方差情况下的最小二乘解
  9. python 实现键盘记录
  10. mysql 事件跟踪_ORACLE 事件跟踪