当前位置:首页 » 编程语言 » c语言填空题考试系统
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言填空题考试系统

发布时间: 2022-07-22 22:41:45

‘壹’ 做一个c语言程序单项选择题标准化考试系统

h"
ncompare()
{
char s[100];
char key[100]="haha";
while(1)
{
printf("请输入密码进行验证:");
there: scanf("%s",s);
if(strcmp(s,key)==0)
{
printf("密码验证正确,进入答题系统........\n");
break;
}
else
{
printf("密码错误,请重新输入:");
goto there;
}

}

}
//菜单
menu_list()
{

int c;
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(" 9 退出答题系统\n");
printf(" ***********************************************\n");
printf(" 请选择你想要的操作(1-9):");
scanf("%d",&c);
if(c<1||c>9)
{
printf("操作数据错误!请重新输入选项:\n");
return 0;
}
else
return c;

}
//答题系统
test_test(struct test *p,int n)
{
int j;
int num;
int i;
int th=0;
int tem[100];
if(n==0)
printf("目前题库中还没有题目,请载入题库后在进行操作\n");
else
{
printf("首先请输入你希望测试的题目个数,系统会随机分配你输入个数的题目(目前总题目个数为%d)\n请输入要测试的题目个数:",n);
scanf("%d",&num);
for(i=0;i<num;i++)
{

here: th=rand()%n;
tem[i]=th;
for(j=0;j<i;j++)
if(tem[j]==tem[i])
{
goto here;
}
printf(" =============================================\n");
printf(" 题目:%s\n",p[th].tm);
for(j=0;j<4;j++)
{
printf(" 选项:%s\n",p[th].xx[j]);
}
printf(" 请输入你的答案(注意是大小写,大小写错误记零分):");
scanf("%s",p[th].as);
printf(" =============================================\n");

}
}
}
//试题录入
test_in(struct test *p,int n)
{
int i,j=0;
char sign='y';
while(sign=='Y'||sign=='y')
{
printf("===========请按提示输入数据===========\n");
printf("请输入题目:");
getchar();
aa: gets(p[n+j].tm);
for(i=0;i<n+j;i++)
if(p[n+j].tm[0]==p[i].tm[0])
{
printf("已有题号,请重新输入!\n题号:");
goto aa;
}
for(i=1;i<=4;i++)
{
printf("请输入第%d个选项:",i);
gets(p[n+j].xx[i-1]);
}
printf("请输入正确答案:");
scanf("%s",p[n+j].da);
printf("====>提示是否继续录入试题(Y or y继续,任意键退出):\n");
getchar();
scanf("%c",&sign);
j++;
}
printf(" ===============转到主菜单==================\n");
return n+j;

}
//文件保存
void save(struct test *ts,int n)
{
FILE *fp;
int i=0;
char filename[50];
printf("请输入导出文件夹,列如:G:\\f1\\score.txt\n");
scanf("%s",filename);
if((fp=fopen(filename,"w+"))==NULL)
{
printf("文件保存失败!");
exit(1);
}
while(i<n)
{
fwrite(&ts[i],sizeof(struct test),1,fp);
i++;
}
fclose(fp);
printf("------记录已保存到文件中-------\n");
}
//评分系统
test_compare(struct test *p,int n)
{
int i;
int temp=0;
int count=0;
if(n==0)
{
printf("目前题库中还没有题目,请载入题库后在进行操作\n");
return 0;
}
else
{

for(i=0;i<n;i++)
{

if(!strcmp(p[i].da,p[i].as))
{
count++;
}

}
printf("你答对的总题数是%d\n",count);
return n;
}
}
//例题以及答案
test_out(struct test *p,int n)
{
int i=0,j=0;
if(n==0)
{
printf("很抱歉,试题库中暂时没有任何试题!\n");
printf(" ===============转到主菜单==================\n");
}
else
while(i<n)
{
printf(" =============================================\n");
printf(" 题目:%s\n",p[i].tm);
for(j=0;j<4;j++)
{
printf(" 选项:%s\n",p[i].xx[j]);
}
printf(" 正确答案:%s\n",p[i].da);
printf(" =============================================\n");
i++;
}

}
//试题库载入
test_under(struct test *p)
{
int i;
FILE *fp;
char filename[20];
printf("请输入你要导入的文件名及路径:");
scanf("%s",filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("文件打开失败!\n");
return 0;
}
i=0;
while(!feof(fp))
{
if(1!=fread(&p[i],sizeof(struct test),1,fp))
break;
i++;
}
fclose(fp);
printf("已经成功从文件%s导入数据!\n",filename);
return i;

}
//主函数
main()
{
int n=0;
struct test ts[100];
system("color 1f");
ncompare();
while(1)
{

switch(menu_list())
{
case 1: test_test(ts,n);break;
case 2: n=test_in(ts,n);break;
case 3: n=delete1(ts,n);break;
case 4: n=insert(ts,n);break;
case 5: save(ts,n);break;
case 6: test_compare(ts,n);break;
case 7: test_out(ts,n);break;
case 8: n=test_under(ts);break;
case 9: exit(0);
}

}
}

‘贰’ C语言程序设计 单项选择题标准化考试系统


检举|40 分钟前lijing2099 | 分类:C/C++ | 浏览21次

‘叁’ C语言设计:单项选择题标准化考试系统

#include "insert_delete.h"
ncompare()
{
char s[100];
char key[100]="haha";
while(1)
{
printf("请输入密码进行验证:");
there: scanf("%s",s);
if(strcmp(s,key)==0)
{
printf("密码验证正确,进入答题系统........\n");
break;
}
else
{
printf("密码错误,请重新输入:");
goto there;
}

}

}
//菜单
menu_list()
{

int c;
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(" 9 退出答题系统\n");
printf(" ***********************************************\n");
printf(" 请选择你想要的操作(1-9):");
scanf("%d",&c);
if(c<1||c>9)
{
printf("操作数据错误!请重新输入选项:\n");
return 0;
}
else
return c;

}
//答题系统
test_test(struct test *p,int n)
{
int j;
int num;
int i;
int th=0;
int tem[100];
if(n==0)
printf("目前题库中还没有题目,请载入题库后在进行操作\n");
else
{
printf("首先请输入你希望测试的题目个数,系统会随机分配你输入个数的题目(目前总题目个数为%d)\n请输入要测试的题目个数:",n);
scanf("%d",&num);
for(i=0;i<num;i++)
{

here: th=rand()%n;
tem[i]=th;
for(j=0;j<i;j++)
if(tem[j]==tem[i])
{
goto here;
}
printf(" =============================================\n");
printf(" 题目:%s\n",p[th].tm);
for(j=0;j<4;j++)
{
printf(" 选项:%s\n",p[th].xx[j]);
}
printf(" 请输入你的答案(注意是大小写,大小写错误记零分):");
scanf("%s",p[th].as);
printf(" =============================================\n");

}
}
}
//试题录入
test_in(struct test *p,int n)
{
int i,j=0;
char sign='y';
while(sign=='Y'||sign=='y')
{
printf("===========请按提示输入数据===========\n");
printf("请输入题目:");
getchar();
aa: gets(p[n+j].tm);
for(i=0;i<n+j;i++)
if(p[n+j].tm[0]==p[i].tm[0])
{
printf("已有题号,请重新输入!\n题号:");
goto aa;
}
for(i=1;i<=4;i++)
{
printf("请输入第%d个选项:",i);
gets(p[n+j].xx[i-1]);
}
printf("请输入正确答案:");
scanf("%s",p[n+j].da);
printf("====>提示是否继续录入试题(Y or y继续,任意键退出):\n");
getchar();
scanf("%c",&sign);
j++;
}
printf(" ===============转到主菜单==================\n");
return n+j;

}
//文件保存
void save(struct test *ts,int n)
{
FILE *fp;
int i=0;
char filename[50];
printf("请输入导出文件夹,列如:G:\\f1\\score.txt\n");
scanf("%s",filename);
if((fp=fopen(filename,"w+"))==NULL)
{
printf("文件保存失败!");
exit(1);
}
while(i<n)
{
fwrite(&ts[i],sizeof(struct test),1,fp);
i++;
}
fclose(fp);
printf("------记录已保存到文件中-------\n");
}
//评分系统
test_compare(struct test *p,int n)
{
int i;
int temp=0;
int count=0;
if(n==0)
{
printf("目前题库中还没有题目,请载入题库后在进行操作\n");
return 0;
}
else
{

for(i=0;i<n;i++)
{

if(!strcmp(p[i].da,p[i].as))
{
count++;
}

}
printf("你答对的总题数是%d\n",count);
return n;
}
}
//例题以及答案
test_out(struct test *p,int n)
{
int i=0,j=0;
if(n==0)
{
printf("很抱歉,试题库中暂时没有任何试题!\n");
printf(" ===============转到主菜单==================\n");
}
else
while(i<n)
{
printf(" =============================================\n");
printf(" 题目:%s\n",p[i].tm);
for(j=0;j<4;j++)
{
printf(" 选项:%s\n",p[i].xx[j]);
}
printf(" 正确答案:%s\n",p[i].da);
printf(" =============================================\n");
i++;
}

}
//试题库载入
test_under(struct test *p)
{
int i;
FILE *fp;
char filename[20];
printf("请输入你要导入的文件名及路径:");
scanf("%s",filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("文件打开失败!\n");
return 0;
}
i=0;
while(!feof(fp))
{
if(1!=fread(&p[i],sizeof(struct test),1,fp))
break;
i++;
}
fclose(fp);
printf("已经成功从文件%s导入数据!\n",filename);
return i;

}
//主函数
main()
{
int n=0;
struct test ts[100];
system("color 1f");
ncompare();
while(1)
{

switch(menu_list())
{
case 1: test_test(ts,n);break;
case 2: n=test_in(ts,n);break;
case 3: n=delete1(ts,n);break;
case 4: n=insert(ts,n);break;
case 5: save(ts,n);break;
case 6: test_compare(ts,n);break;
case 7: test_out(ts,n);break;
case 8: n=test_under(ts);break;
case 9: exit(0);
}

}
}

‘肆’ c语言单项选择题标准化考试系统流程图

记得给分哦!O(∩_∩)O谢谢

‘伍’ C语言程序设计 做一个选择题考试系统的程序

你好!

三天前的提问了。程序完成了吗?

‘陆’ C语言课设题--考试系统(有高手帮帮看看)

1)建立考题库
分别用两个模块实现考题的录入功能,如图1,要求用密码确定进入本模块
选择题库用"file1.dat"文件中存放选择题,包括:题号 题目 abc选项内容 正确答案;
在判选择题卷时,把答案结果与file1.dat文件中的正确答案比较,一致给10分 否则给0分
(2)考试答题
其主要功能是考试进入考试题库,开始考试
主要内容包括
确定考生身份,考升首先输入学号和姓名,然后 检查该考生的学号是否已经在文件"num_name.dat"中,如果已经在该文件中,则说明该学生已考过一次,不允许再考.如果考升没有记录,则该考生的学号和姓名存放在num_name.dat中,作为已考过的学生记录
验证考生身份后,开始考试,要求选择题10道,通过调整用文件file1.dat题库,抽取考题,考生答一道,确认一次是否继续,如果继续则再抽去一道题由考生答
最多只能打10道题,系统就推出考试答题
做完题又显示主菜单,但这时不允许再选择考试答踢
选择"显示考试结果"彩单时,要求修改某题目的答案
选择"显示本人分数并推出"菜单时,要求显示学生的分数,然后推出本系统
(3)统计分析
统计分析是为管理者设计的,系统首先确定管理者身份后才能进入本模块,如果密码不正确,程序不能进入本模块,返回到主菜单.主要包括:显示所有考生分数,考生信息查询
显示所有考生分数,分屏幕显示所有已考试学生的学号 姓名 分数
考生信息查询,可以按学号查询某考生,并显示该考生的学号 姓名 分数 各题目 正确答案和考生答案,如果是选择题 还显示abcd选项内容
(4)选择0.退出系统
以下是3个有关的图 请高手帮忙啊
|-----------------------------------|
| 请输入选项编号(0--3) |
|-----------------------------------|
| 1---建立试题库 |
| 2---考试答题 |
| 3---统计分析 |
| 0---退出 |
|-----------------------------------|

|----------------------------------|
| 请输入选项编号(0-4) |
|----------------------------------|
| 1---开始作题 |
| 2---显示作题结果 |
| 3---修改答案 |
| 4---显示本人分数并退出 |
| 0---退出 |

‘柒’ C语言实训 考试系统

自己修改 只有模式

关于04级软件技术与ATA公司合作进行课程置换的总结报告

自04级软件技术与ATA公司合作,开展6门课程置换的工作以来,我们已经完成了2门课程的教学与考证,正在进行1门课程的教学,下学期将有2门课程的合作,再下一学期完成最后1门课程的教学与考证。现将有关工作情况作一个小结。

一、 不断提供师资的教学水平

通过与ATA合作之后,讲授合作课程的教师需要通过高职类微软课程全国性的师资培训。我们共派出4位教师,参加了6门课程的微软师资培训,并全部获得合格的培训证书。

通过师资培训,更新了教师的知识结构,强化了对高职类微软课程的理解,掌握了一定的教学方法和教学技巧,同时也扩大了对同行的交往和互相学习。

目前,ATA公司已经组建网络教学平台供全国的相关教师共享资源,并在全国范围内,通过评选微软的银牌讲师、金牌讲师来不断提高师资的教学水平。

二、 实施认证考试

合作的每门课程均提供相应的技能型考证,包括微软以及Borland大公司的厂商认证,含金量较高。如果单独交费参加这些认证考试,考试费用大大超过我们之间的合作费用。

以下是已经结束的2门课程的认证考试(微软的全球认证考试)情况。

课程名称
程序设计导论
关系数据库基础

学生数
53
53

第一次通过人数
28
42

第一次通过率
53%
79%

第二次通过人数
40
48

第二次通过率
75%
91%

以上2门课为基础课,对于核心课程要达到上述的通过率,我们要正视困难,努力提高师资的教学水平。

三、 对核心课程实施案例教学

对于3门核心课程,ATA公司均提供难得的较为全面的实际开发项目,作为案例供我们的教学使用,这将是我们最为受用的宝贵教学资源,但是,目前我们还没有实施这三门课程,有待下一步的教学检验其效果。

四、 不足之处

师资培训的力度不够,有些讲授合作课程的教师没有经过微软的系统培训。

合作课程的讲授教师一般只有1名,数量不够,不能组成团队,形成我们的教学特色

‘捌’ 用c语言编写单项选择题标准化考试系统

一、课程设计计划

(一) 课程设计目的

学生通过本课程的课程设计实践,能进一步掌握高级语言程序设计基本概念,掌握基本的程序设计方法;通过设计一个完整的小型程序,初步掌握开发软件所需的需求定义能力、功能分解能力和程序设计能力、代码调试技能;学习编写软件设计文档;为未来的软件设计打下良好的基础。

(二)基本要求

要求学生认真对待本次课程设计,积极利用机房、网络资源,熟练掌握程序设计的方法和计算机基本技能操作实训,具备一定的程序设计能力。在课程设计中听从指导教师的安排,认真完成老师布置的各项任务,并以小组为单位,上交课程设计报告。

‘玖’ c语言考试系统填空题为什么答对了会是0分

可能你的程序输出格式错误
例如一些行末有无空格和回车的
这个比较很有可能是严格要求的
如果试题没有严格说明需要严格格式的话,建议寻找老师复议成绩
另外还有一种可能,你的程序返回值不是0.就是你的main函数退出之前没有return 0;
因为return 0的含义代表程序正常退出,如果你忘记写return 0或者某个地方导致程序结束,但那个地方程序前却没有return 0也会导致程序错误
因为return 别的一些返回值代表别的含义,例如有些返回值代表runtime error

‘拾’ c语言考试如何通过考试系统做改错题

以下对改错题的改错方式做一些总结,当然这些总结只能对大部分改错行有效。
1、若错误行是函数首部,可分为以下几种情况:
A、该行最后若有分号则删除,中间若有分号则改成逗号
B、形参类型不一致的问题,特别是指针类型,若后面用到某形参时有指针运算则该形参必为指针类型;若形参是二维数组或指向m个元素的指针变量,则第二维的长度必须与main中对应数组的第二维长度相同
C、函数类型不一致的问题,若函数中没有return语句则函数类型为void,若有return语句则函数的类型必须与return后变量的类型一致。
div id="googlead" style="background-position: left;display: block;float: left;width:336px;height:280px"></div>
2、若错误行是if或while语句,则首先看有没有用小括号将整个表达式括起,若没有则加上小括号。
3、若错误行中有if、while、for则要特别注意条件表达式的错误问题:
A、指针变量的应用,若表达式中有指针变量且没有指针运算符,则加上指针运算符
B、若条件表达式中只有一个等于号,则改成两个等于号,若为其它比较运算符则一般是进行逆转或加一个等于号
C、for中要用分号分隔表达式,而不是用逗号
4、语法错误
A、语句缺少分号,若错误行中有语句没有用分号结束,则加上分号。
B、大小写不对,若错误行中有大写字母则一般都改成小写字母。
5、指针变量的运用,若错误行中有指针变量,并且该变量名前没有指针运算符则一般都是加上指针运算符
6、若错误行为return语句,则首先看是否是缺少分号若是则加上分号即可;否则就是return后的变量或表达式错误(此时可通过看题意,来分析该返回哪一变量或表达式)
7、若错误行中见到整型1除以某个表达式时,一概改成1.0。但若是整型变量或表达式则只能用强制转换
8、复合运算符写错
9、字符串结束符写错,若有字符串结束符则要特别注意有没有写错,但第11题例外,因为该题是要将数字字符转换成对应的数字。
10、若错误行是定义语句,则首先看类型是否符合;再看所赋初值是否正确;若以上均不是,则看是否少定义了某个变量或少了花括号。
11、表达式错误(占的份量最多,并且没有统一的改法,我们只能通过题目要求来分析并修改)
12、若错误行中有一条横线,则必须将横线删除再填空。填空题中亦是如此。