【C语言小游戏】答题系统

【C语言小游戏】答题系统,第1张

【C语言小游戏】答题系统

如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!博客目录 | 先点这里


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

文章目录
  • 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.身份z类型  B.身份z号码  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
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]!='';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]='';
}

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));//将数组内元素初始化为-1
    srand((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<<"ttt请在5分钟内完成题目"<>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<<"ttt做题所用时间:"<300){
          ex=sum_time-300;
          sprintf(ex_time,"%02d:%02d:%02d",ex/3600,(ex%3600)/60,ex%60);
          cout<<"ttt超出时长:"<>name;
    cout<<"ttt请输入你的性别:";
    cin>>sex;
    cout<<"ttt请输入你的年龄:";
    cin>>age;
    cout<<"ttt请输入你的学校:";
    cin>>sch;
}

void login_map()
{
        
        printf("ttt***************当前用户信息******************n");
		printf("ttt*               姓名:%-8s               *n",name);
		printf("ttt*               性别:%-8s               *n",sex);
        printf("ttt*               年龄:%-4d                   *n",age);
        printf("ttt*               学校:%-16s       *n",sch);
		printf("ttt*********************************************n");
}

int menu_select()
{
	int c;
	do
	{
		system("cls");
		cout<<"ttt"<<"*******************考试系统******************"<>c;
	}while(c<1||c>3);
	return(c);
}

int menu_select1()
{
	int c1;
	do
	{
		system("cls");
		cout<<"ttt"<<"*****************进入考试系统****************"<>c1;
	}while(c1<1||c1>4);
	return(c1);
}



void choice()
{
    int c,c1;
    while((c=menu_select())!=3){
        switch(c)
        {
            case 1:
                login();
                cout<<"ttt";
                system("pause");
                break;
            case 2:
                if(!flag)
                    cout<<"ttt请先登录系统!n"<					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5699587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存