91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言如何實現選擇題標準化考試系統

發布時間:2022-06-02 14:04:37 來源:億速云 閱讀:230 作者:iii 欄目:開發技術

本篇內容主要講解“C語言如何實現選擇題標準化考試系統”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C語言如何實現選擇題標準化考試系統”吧!

一、任務概述(文章僅供參考)

1、用文件保存試題庫。(每個試題包括題干、4個備選答案、標準答案)
2、試題錄入:可隨時增加試題到試題庫中
3、試題抽取:每次從試題庫中可以隨機抽出N道題(N由鍵盤輸入)
4、答題:用戶可實現輸入自己的答案
5、自動判卷:系統可根據用戶答案與標準答案的對比實現判卷并給出成績。

二、功能展示

C語言如何實現選擇題標準化考試系統

C語言如何實現選擇題標準化考試系統

C語言如何實現選擇題標準化考試系統

三、思維導圖

C語言如何實現選擇題標準化考試系統

四、程序源碼

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

#define TRUE 1
#define ERROR 0
#define MAX  30
typedef int Status;

typedef struct{
    char option1[30],option2[30],option3[30],option4[30],subject[150];
    char result;
}TestNode;
TestNode Testquestions[MAX];

Status SaveNode(int N)     //把結構體數組保存到文件"qinhu"中,如成功保存返回TRUE,否則返回ERROR

{    int i;
    FILE *fp;
    if((fp=fopen("qinhu","wb"))==NULL) return ERROR;
    for(i=0;i<N;i++)
        fwrite(&Testquestions[i],sizeof(TestNode),1,fp);
    fclose(fp);
    return TRUE;
}

Status ReadNode(int N)    //從文件讀出結構體數組的內容,如成功讀取返回TRUE,否則返回ERROR

{    FILE *fp;
    int i=0;
    if((fp=fopen("qinhu","rb"))==NULL) return ERROR;
    while(!feof(fp))// 用feof檢測文件是否結束,如果結束,返回正確
    {    fread(&Testquestions[i],sizeof(TestNode),1,fp);
        i++;
    }
    N=i-1;
    return TRUE;
}


void InputTitle(int N)// 輸入N道試題數據
{
    int i; 
    for(i=0;i<N;i++)
    {   printf("請輸入第%d道題題目、題干和選項:\n",i+1);//輸入結構體元素內容
        printf("請輸入題目:");
        gets(Testquestions[i].subject);
        printf("請輸入選項A:");
        gets(Testquestions[i].option1);
        printf("請輸入選項B:");
        gets(Testquestions[i].option2);
        printf("請輸入選項C:");
        gets(Testquestions[i].option3);
        printf("請輸入選項D:");
        gets(Testquestions[i].option4);
        printf("請輸入答案:");
        scanf("%c",&Testquestions[i].result);getchar();
        system("cls");                                    //清屏
    }
}

Status InsertNodeA(int N) //輸入試題內容
{    
    if(N>MAX) return ERROR;
        printf("請輸入所要輸入題題目、題干和選項:\n");
        printf("請輸入題目:");
        gets(Testquestions[N].subject);
        printf("請輸入選項A:");
        gets(Testquestions[N].option1);
        printf("請輸入選項B:");
        gets(Testquestions[N].option2);
        printf("請輸入選項C:");
        gets(Testquestions[N].option3);
        printf("請輸入選項D:");
        gets(Testquestions[N].option4);
        printf("請輸入答案:");
        scanf("%c",&Testquestions[N].result);getchar();
        N++;              //N表示結構體數組長度,通過加&號使其值能返回
        return TRUE;
}


Status InsertNodeB(int N) //插入試題內容
{    
    if(N>MAX) return ERROR;
        printf("請輸入所要插入題題目、題干和選項:\n");
        printf("請輸入題目:");
        gets(Testquestions[N].subject);
        printf("請輸入選項A:");
        gets(Testquestions[N].option1);
        printf("請輸入選項B:");
        gets(Testquestions[N].option2);
        printf("請輸入選項C:");
        gets(Testquestions[N].option3);
        printf("請輸入選項D:");
        gets(Testquestions[N].option4);
        printf("請輸入答案:");
        scanf("%c",&Testquestions[N].result);getchar();
        N++;              //N表示結構體數組長度,通過加&號使其值能返回
        return TRUE;
}

Status DeleteNode(int n)//刪除數組中的第n個元素 
{    
    return TRUE;
}
    
void printNode(TestNode p,int n)//輸出第n道題題目
{    
    printf("(%d) ",n);
    printf("%s\n",p.subject);
    printf("  A %s  ",p.option1);
    printf("  B %s  \n",p.option2);
    printf("  C %s  ",p.option3);
    printf("  D %s  ",p.option4);
}


Status  Match(TestNode p,char m)//判斷m是否為p題目的答案,若是返回TRUE,否則返回ERROR
{    
    if(m==p.result) return TRUE;
    else return ERROR;
}

void answer(int sum)//進行答題
{
  
 int i,score=0,Num;
 char r;
     
    for(i=1;i<=sum;i++)
    {    Num= rand()%sum;                //隨機函數,以隨機選定何題進行解答
        printNode(Testquestions[Num],Num+1);
        printf("\n請輸入答案:");
        scanf("%c",&r);getchar();
        if( Match(Testquestions[Num],r)) //調用函數IsMatch判斷所輸入的答案與標準答案是否相同
        {    printf("\n答案正確!\n");
            score++;
        }
        else printf("\n答案錯誤!\n");
    }
    printf("\n你的總成績為:%d\n",score);
}

void main()
{    char  flag='N';
    int N=0,i, sum,score=0,chose;
 
    printf("輸入想建立的題目文件題目數:");
    scanf("%d",&N);getchar();
    InputTitle(N);
    ReadNode(N);
    while(flag=='N'||flag=='n')
    { printf("\t\t\t單項選擇題標準化考試系統\n ");
      printf("\n");
      printf("  \t\t\t1 進行答題并判卷\n");
      printf("  \t\t\t2 顯示整張試卷內容\n");
      printf("  \t\t\t3 插入試題\n");
      printf("  \t\t\t4 保存到文件\n");
      printf("  \t\t\t5 退出系統\n");
      printf("  \t\t\t  請選擇:");
      scanf("%d",&chose);getchar();
      switch(chose) 
      {      case 1:system("cls");
        printf("請輸入你想要的答題數目:");
           scanf("%d",&sum);getchar();
           answer(sum);
           break;
       case 2:system("cls");
        for(i=1;i<=N;i++) 
        {      printNode(Testquestions[i-1],i);
               printf("\n");
        }   
        break;
       case 3:system("cls");InsertNodeB(N);break;
       case 4:system("cls");
        if(SaveNode(N)) printf("保存成功!\n");
          else printf("保存失敗!\n");break;
       case 5:printf("你將退出系統(Y or N)?");
           scanf("%c",&flag);getchar();
           if(flag=='Y'||flag=='y') exit(0);
           system("cls");break;
      default:printf("請輸入正確選擇!\n");
      }
    }
}

到此,相信大家對“C語言如何實現選擇題標準化考試系統”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐都县| 呼和浩特市| 冷水江市| 灌阳县| 波密县| 墨脱县| 且末县| 普兰县| 永定县| 鹰潭市| 沽源县| 仁化县| 二连浩特市| 额敏县| 台前县| 霸州市| 应城市| 类乌齐县| 瑞安市| 高陵县| 和林格尔县| 四川省| 当雄县| 元朗区| 鄂托克前旗| 郓城县| 九江县| 郎溪县| 安阳市| 高唐县| 横峰县| 林甸县| 博野县| 大同县| 普兰县| 石台县| 龙里县| 顺昌县| 海淀区| 宾阳县| 昌黎县|