<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現選擇題標準化考試系統的具體程式碼,供大家參考,具體內容如下
1、用檔案儲存試題庫。(每個試題包括題幹、4個備選答案、標準答案)
2、試題錄入:可隨時增加試題到試題庫中
3、試題抽取:每次從試題庫中可以隨機抽出N道題(N由鍵盤輸入)
4、答題:使用者可實現輸入自己的答案
5、自動判卷:系統可根據使用者答案與標準答案的對比實現判卷並給出成績。
#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("%sn",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你的總成績為:%dn",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("ttt單項選擇題標準化考試系統n "); printf("n"); printf(" ttt1 進行答題並判卷n"); printf(" ttt2 顯示整張試卷內容n"); printf(" ttt3 插入試題n"); printf(" ttt4 儲存到檔案n"); printf(" ttt5 退出系統n"); printf(" ttt 請選擇:"); 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"); } } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45