c语言应用(2)试卷管理
试卷管理
- 主函数
老师在教学过程中,会经常以试卷的形式来检验学生的学习情况。先由你来 帮助老师设计一个系统。该系统中只有 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)试卷管理相关推荐
- 基于区块链的Smart系统-题库及试卷管理模块的设计与开发
1引言 1.1课题背景 随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训.现在,计算机硬件技术的发展已经达到了相当高的水平.但是,远程 ...
- java毕业设计——基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码)——学生信息管理系统模板2
基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JSP+sqlserver的Smart系统-题库及试卷 ...
- html语言 试卷,《网页制作与HTML语言》模拟试卷A.
<网页制作与HTML语言>模拟试卷A. <网页制作与HTML语言>模拟试卷A 班级__________________ 学号_________姓名_______________ ...
- java具有自动无用内存回收_Java语言程序设计(一)试卷及答案解释
Java语言程序设计(一)试卷及答案解释 本试卷共6页,满分l00分,考试时间l50分钟. 第一部分选择题 一.单项选择题:本大题共l0小题,每小题l分,共10分.在每小题列出的备选项中只有一项是最符 ...
- c语言程序设计1试卷,(C语言程序设计期末试卷1.doc
(C语言程序设计期末试卷1 <C语言程序设计>试卷1 (使用层次或专业: 计算机) 若程序题中预留的空白不够,在试卷最后一页背面答题,请标记相应的题号 题 次一二三四五六总分应得分2010 ...
- python终结一个循环额_Python语言入门之内存管理方式和垃圾回收算法解析
本文主要向大家介绍了Python语言入门之内存管理方式和垃圾回收算法解析,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 在列表,元组,实例,类,字典和函数中存在循环引用问题.有 ...
- c语言程序设计开卷考试b卷,C语言程序设计(B)试卷_杨崇联(A1).doc
C语言程序设计(B)试卷_杨崇联(A1) 江 西 理 工 大 学 考 试 试 卷 试卷编号: 20 11 -20 12 学年第 2 学期 课程名称: C语言程序设计(B) 考试时间: 年 月 日考试性 ...
- 以下描述中不属于python语言控制结构的是_高中信息技术《Python语言》模块试卷...
高中信息技术<Python语言>模块试卷 本试卷分为五大题,37小题,共100分,考试用时60分钟. 一.单选题(本题共15小题,每小题2分,共30分) 是一门( ) (A)自然语言(B) ...
- 高级程序设计c语言试卷答案,高级程序设计语言半期试卷答案.doc
高级程序设计语言半期试卷答案 西南交通大学2009-2010学年第1学期半期试卷 课程代码 3243800 课程名称 高级语言程序设计 考试时间 90分钟 题号一二三四五六七八九十总成绩得分 阅卷教师 ...
最新文章
- python基础看什么书-python新手看什么书比较好?这五本最靠谱
- 分享一个OTA测试服务器,可以用来测试esp8266的http update功能
- 【汇总】pytorch里的一些函数
- C#中如何动态加载DockPanel
- 在 Mac OS X 下启用超级帐户(root)
- 什么是黑客?郭盛华告诉你
- html caption属性的值,HTML中的caption属性是什么意思?caption标签在HTML中
- 三季度国内光伏市场需求仍将强劲
- python程序采用unicode编码、英文字符_python--基础字符编码
- 使用Photoshop软件巧去影像的白点空洞
- VSCode按ctrl与鼠标左键无法实现跳转的解决办法
- Android TextView自动调整字体大小(官方)
- 2020有道翻译 使用付费api
- 使用Pinyin4j进行拼音分词
- 红图app的模式有未来吗?
- BZOJ1179【APOI2009】ATM Tarjan
- VirtualBox 虚拟机安装Windows10,珍藏版!!!
- Android系统升级流程
- WebDAV之葫芦儿•派盘+Notability
- 2019年博客之星评选活动公告:严禁刷票!