偶然翻到了自己大一时候写的一些代码,代码冗余,但还是想保存下来,以作纪念。

文章目录

  • 1.运行效果
  • 2.运行环境
  • 3.完整代码
    • 3.1题目.txt
    • 3.2Answer_System.cpp

1.运行效果




2.运行环境

源码(Dev5.4.0版本下可直接(.cpp文件)运行 gcc 4.7.2)

注意:由于部分代码为C11标准,后缀名应改为cpp运行

编译器下载链接:https://pan.baidu.com/s/1Hywq6hxzxMzX1-22ig2HdA
提取码:kd65
下载后解压即可使用

3.完整代码

3.1题目.txt

我国在各种交通运输工具站台增加体温测量设备,对进出站乘客进行体温检测,其中应对高于多少摄氏度的乘客进行暂时隔离。(  )
A.37.0℃      B.37.3℃        C.37.8℃         D.38.5℃
B
下列哪项措施不是我国疫情中交通运输工具运营前的准备措施。(  )
A.做好物资保障  B.强化人员培训  C.做好乘客信息登记 D.对乘客进行限流
D
在疫情期间乘坐交通运输工具时应如何安排乘客就坐。 (  )
A.隔位分散就坐    B.隔行分散就坐    C.隔列分散就坐    D. 正常就坐
A
我国应对几类客运班线客车和客运包车宜配备手持体温检测仪及消毒剂。(  )
A.一类以上      B.二类以上       C.三类以上      D.四类
C
列车应在什么时候对车厢进行清洁消毒。(  )
A.列车运行途中 B.列车每次载客前 C.列车每次载客后 D.列车每日载客后
B
运营者不需要采集乘客的(  )信息。
A.身份证类型  B.身份证号码  C.联系方式  D.紧急联系人
D
为了加强空气流通,航空器在地面运行的过程中,应使用(  )系统的气源进行通气。
A.PNEU         B. BAR          C.APU         D.ACAU
C
在疫情期间民航供应什么样的餐食。  (  )
A.不提供餐食      B.仅提供饮品     C.提供简化餐食     D.提供正常餐食
C
为了防控疫情,民航乘务员可携带(  )以便于消毒。
A.酒精   B.含醇类消毒湿巾    C.湿巾    D.消毒剂
B
(  )在运行过程中发现发热旅客会禁止人员流动?
A.铁路    B.轨道交通    C.民航    D.水路客运
C

3.2Answer_System.cpp

#include<bits/stdc++.h>
using namespace std;//Question
typedef struct data
{char question[200];char choice[150];char answer[6];
}Data,*pData;/*全局变量区域*/
Data arr[10];//题目列表
Data random[5];//随机题目表
int  situation[5];//保存每次做题的情况
char in_answer[5][8];//保存每次做题的输入
char use_time[20];//做题所用时间
char name[20],sex[5],cno[10],sch[20];//姓名,性别,学号,学校
int age;//年龄
int scores;//分数
int flag,flag1;//标记
long sum_time;//做题所用时间/*函数声明*/
void file_read();//文件读取
void login();//登录系统
void login_map();//登录后的信息展示
void changestr(char *);//对字符串进行处理
void random_question();//随机出题
void answer_fun();//进入答题
int menu_select();//菜单
int menu_select1();//子菜单
void choice();//用于选择功能
long gettime_long();//获取当前时间,单位 秒
void gettime_str(char *);//获取当前时间并保存到字符串long gettime_long()//获取当前时间 long型
{/*获取当前时间*/long now_time;time_t ti;struct tm * lti;time (&ti);//获取Unix时间戳。lti = localtime (&ti);//转为时间结构。now_time=lti->tm_hour*3600+lti->tm_min*60+lti->tm_sec;//单位为秒return now_time;
}void gettime_str(char *s)//获取当前时间并保存到字符串
{time_t t;struct tm * lt;time (&t);//获取Unix时间戳。lt = localtime (&t);//转为时间结构。sprintf(s,"%02d:%02d:%02d",lt->tm_hour,lt->tm_min,lt->tm_sec);
}//文件读取
void file_read()
{FILE *fp;fp=fopen("题目.txt","r");//以只读方式打开文件if(fp==NULL){cout<<"文件打开失败!\n";exit(-1);}for(int i=0;i<10;i++){//文件读入fgets(arr[i].question,190,fp);fgets(arr[i].choice,150,fp);fgets(arr[i].answer,5,fp);}fclose(fp);
}void changestr(char *s)
{for(int i=0;s[i]!='\0';i++){if(s[i]>='A'&&s[i]<='D'||s[i]>='a'&&s[i]<='d'){s[0]=s[i];break;}}switch (s[0])//兼容大小写{case 'a':s[0]='A';break;case 'b':s[0]='B';break;case 'c':s[0]='C';break;case 'd':s[0]='D';break;}s[1]='\0';
}int judge_repeat(int *a,int x)//判断出题是否重复
{for(int i=0;i<5;i++)if(a[i]==x)return 1;return 0;
}
//随机出题
void random_question()
{int x;int a[5];memset(a,-1,sizeof(a));//将数组内元素初始化为-1srand((unsigned)time(NULL));//时间做随机数种子file_read();for(int i=0;i<5;i++){x=rand()%10;//防止产生重复的随机题目while(judge_repeat(a,x))x=rand()%10;a[i]=x;random[i]=arr[x];}
}//做题功能
void answer_fun()
{char input[6];char now_time[20];long startime,endtime,nowtime;//开始做题时间和结束时时间scores=0;random_question();startime=gettime_long();//开始时间cout<<"\t\t\t请在5分钟内完成题目"<<endl;for(int i=0;i<5;i++){/*显示当前做题所用时间*/nowtime=gettime_long()-startime;//所用时间sprintf(now_time,"%02d:%02d:%02d",nowtime/3600,(nowtime%3600)/60,nowtime%60);if(i!=0)cout<<"\t\t\t你已用时:"<<now_time<<endl;/*开始做题*/cout<<"\t\t\t第"<<i+1<<"题"<<endl;cout<<"\t\t\t";cout<<random[i].question;cout<<"\t\t\t";cout<<random[i].choice;cout<<"\t\t\t请输入你的选择:";cin>>input;//去除多余的符号同时兼容大小写changestr(random[i].answer);changestr(input);strcpy(in_answer[i],input);//存储每次做题答案if(!strcmp(input,random[i].answer)){situation[i]=1;scores+=20;}else{situation[i]=0;}}flag1=1;//答完题后则标记endtime=gettime_long();//单位为秒//存储本次做题耗时long use=endtime-startime;//对齐存储时间格式sum_time=use;sprintf(use_time,"%02d:%02d:%02d",use/3600,(use%3600)/60,use%60);
}void find_scores()
{char ex_time[20];long ex;//显示你的做题所用时间cout<<"\t\t\t做题所用时间:"<<use_time<<endl;//如果用时超出if(sum_time>300){ex=sum_time-300;sprintf(ex_time,"%02d:%02d:%02d",ex/3600,(ex%3600)/60,ex%60);cout<<"\t\t\t超出时长:"<<ex_time<<endl;}//改卷并显示正确答案for(int i=0;i<5;i++){cout<<"\t\t\t";cout<<"第"<<i+1<<"题"<<endl;cout<<"\t\t\t";cout<<random[i].question;cout<<"\t\t\t";cout<<random[i].choice<<endl;if(situation[i]==1){cout<<"\t\t\t( √ )"<<endl;cout<<"\t\t\t你的答案:"<<in_answer[i]<<endl;}else if(situation[i]==0){cout<<"\t\t\t( × )"<<endl;cout<<"\t\t\t你的答案:"<<in_answer[i]<<endl;}cout<<"\t\t\t";cout<<"正确答案:"<<random[i].answer<<"\n"<<endl;}//不及格(0-40分),及格(60分),良好(80分)和优秀(100分)int k=scores/10;cout<<"\t\t\t你的得分为:"<<scores<<endl;switch(k){case 0:case 2:case 4:cout<<"\t\t\t";cout<<"很遗憾!你没有及格!别气馁,下次加油哦!"<<endl;break;case 6:cout<<"\t\t\t";cout<<"恭喜你!及格了!但还要继续努力哦!"<<endl;break;case 8:cout<<"\t\t\t";cout<<"你取得的良好的成绩!继续向满分冲刺吧!"<<endl;break;case 10:cout<<"\t\t\t";cout<<"你实在太优秀了!"<<endl;break;}
}void login()
{// 学校,学号 和姓名flag=1;cout<<"\t\t\t请输入你的姓名:";cin>>name;cout<<"\t\t\t请输入你的性别:";cin>>sex;cout<<"\t\t\t请输入你的年龄:";cin>>age;cout<<"\t\t\t请输入你的学校:";cin>>sch;
}void login_map()
{/*printf用于对齐输出*/printf("\t\t\t***************当前用户信息******************\n");printf("\t\t\t*               姓名:%-8s               *\n",name);printf("\t\t\t*               性别:%-8s               *\n",sex);printf("\t\t\t*               年龄:%-4d                   *\n",age);printf("\t\t\t*               学校:%-16s       *\n",sch);printf("\t\t\t*********************************************\n");
}int menu_select()
{int c;do{system("cls");cout<<"\t\t\t"<<"*******************考试系统******************"<<endl;cout<<"\t\t\t"<<"*                1.登录系统                 *"<<endl;cout<<"\t\t\t"<<"*                2.进入考试                 *"<<endl;cout<<"\t\t\t"<<"*                3.退出                     *"<<endl;cout<<"\t\t\t"<<"*        注:请输入序号选择所需功能         *"<<endl;cout<<"\t\t\t"<<"*********************************************"<<endl;cout<<"\t\t\t请输入您要选择的操作对应的序号:";cin>>c;}while(c<1||c>3);return(c);
}int menu_select1()
{int c1;do{system("cls");cout<<"\t\t\t"<<"*****************进入考试系统****************"<<endl;cout<<"\t\t\t"<<"*                 1.开始答题                *"<<endl;cout<<"\t\t\t"<<"*                 2.成绩查询                *"<<endl;cout<<"\t\t\t"<<"*                 3.返回上一级菜单          *"<<endl;cout<<"\t\t\t"<<"*                 4.直接退出程序            *"<<endl;cout<<"\t\t\t"<<"*        注:请输入序号选择所需功能         *"<<endl;cout<<"\t\t\t"<<"*********************************************"<<endl;cout<<"\t\t\t请输入您要选择的操作对应的序号:";cin>>c1;}while(c1<1||c1>4);return(c1);
}void choice()
{int c,c1;while((c=menu_select())!=3){switch(c){case 1:login();cout<<"\t\t\t";system("pause");break;case 2:if(!flag)cout<<"\t\t\t请先登录系统!\n"<<endl;else{system("cls");//子菜单while((c1=menu_select1())!=3){login_map();switch(c1){case 1:answer_fun();cout<<"\t\t\t";system("pause");break;case 2:if(!flag1)cout<<"\t\t\t请先开始答题,再查询成绩!"<<endl;elsefind_scores();cout<<"\t\t\t";system("pause");break;case 4:system("cls");return ;}}}cout<<"\t\t\t";system("pause");break;}}
}int main()
{system("mode con cols=200 lines=100");//设置窗口大小,方便显示choice();return 0;
}

【C语言小游戏】答题系统相关推荐

  1. c语言min函数_C语言探索之旅 | 第一部分第十课:第一个C语言小游戏

    内容简介 前言 准备工作和建议 我的代码 改进方案 第一部分第十一课预告 1. 前言 上一课是 C语言探索之旅 | 第一部分第九课:循环语句 . 经过前面这么多课的努力,我们终于迎来了第一个比较正式的 ...

  2. C语言小游戏大全,C语言贪吃蛇小游戏(附源码)

    一.C语言小游戏大全,C语言贪吃蛇小游戏(附源码) 贪吃蛇小游戏源码和更多C语言课设项目小游戏源码免 费 下 载 链 接 如下: c语言项目课设小游戏源码资料压缩包.zip-C文档类资源-CSDN下载 ...

  3. c语言小游戏vc,C语言探索之旅:第一个C语言小游戏

    C语言探索之旅:第一个C语言小游戏-1.jpg (37.05 KB, 下载次数: 0) 2018-10-8 19:23 上传 内容简介 1.课程纲领 2.第一部分第八课:第一个C语言小游戏 3.第一部 ...

  4. c语言小游戏代码矿井逃生_如何选择编程语言和逃生教程炼狱

    c语言小游戏代码矿井逃生 A few weeks ago, I posted about my experience attempting to learn JavaScript, C#, Pytho ...

  5. C语言小游戏:文字冒险游戏

    这是一个用Dev新写的游戏:冒险4.0,可选角色,可买彩票,可抽奖... 资源我放在了C语言小游戏.文字冒险-cocos2D文档类资源-CSDN文库,适合初学者学习

  6. H5小游戏 - 答题游戏

    页面排版: 答对切换下一题 答错提示: 最后一题答对有判断: H5移动端小游戏 - 答题游戏,内容完整,代码简洁,注释明确,特别容易读懂,简易上手使用! 需要下载的请前往:https://downlo ...

  7. C语言小游戏-五子棋

    C语言小游戏-五子棋 全部代码如下: #include <easyx.h> #include <graphics.h> #include <conio.h> #in ...

  8. C语言小游戏设计报告

    C语言小游戏设计报告 课程设计名称:贪吃蛇小游戏 专业班级:计科15-2 学号:150809229 姓名:XXX 一.设计目标 通过设计,培养学生对电脑的动手能力,使学生巩固<C语言程序设计&g ...

  9. C语言小游戏,数字炸弹,手动设置炸弹的值和回合数。

    C语言小游戏,数字炸弹,手动设置炸弹的值和回合数. 效果图: 代码部分: #include <stdio.h> void main() {int a,b;int d=35; //在这里手动 ...

  10. c语言课时设计猜坐标游戏,c语言小游戏课程设计报告.docx

    c语言小游戏课程设计报告 中国地质大学 本科生课程论文封面 课程名称c语言课程设计 教师姓名陈喆老师 本科生姓名周宜诺 本科生学号XX 本科生专业土地资源管理 所在院系公共管理学院 类别: 日期: 课 ...

最新文章

  1. WPF的Timer控件的使用
  2. JavaScript 对象中this的指向问题
  3. 获取Table选中行数据(Table篇二)
  4. linux sort排序工具和uniq去重工具使用示例
  5. SQLPLUS命令的使用大全
  6. 苏宁易购:Hadoop失宠前提是出现更强替代品
  7. “引用作为函数参数”与 “引用作为函数返回值”
  8. 前端学习(2930):内嵌改变样式
  9. 央视曝光!朋友圈八大骗局正在瞄准你的个人信息 看看你中招没?
  10. ps导出gif颜色不对_PS の手绘《超详细的动态表情包新手绘制指南》
  11. Steve Kemp的XSS介绍
  12. Jetson tk1 刷机教程
  13. 如何最大程度地提高cin和cout的效率
  14. 远程连接SQL server 数据库
  15. C#实现的基于SMTP协议的E-MAIL电子邮件发送客户端软件
  16. C语言----整钱换零钱问题。把1元兑换成1分,2分,5分的硬币,共有多少种不同的兑换方法?(同理n元硬币的兑换方法呢?n元由用户输入)
  17. 「笔耕不辍」常见远程调用协议
  18. 计算机主机配置科普,电脑装机配置 篇八:电脑内存如何选购?内存科普--小白篇...
  19. Python 截屏 - lone112 - 博客园
  20. Ubuntu 桌面便签小工具-Indicator Stickynotes

热门文章

  1. nuvoton 开发环境安装问题
  2. 如何免费下载百度指数数据
  3. 【MySQL学习】DQL语言的学习 Data Query Language
  4. Cydia添加源http://apt.Feng.com,完成packages卡住 解决方法
  5. Ping32文档透明加密软件基础概念
  6. RecyclerView吸顶效果
  7. 柳传志誓师大会演讲:建班子 定好战略 带好队伍
  8. 数据预处理的方法有哪些
  9. seL4微内核操作系统初期总结 2018.10
  10. win7 设置 快速启动栏