C語言單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)_第1頁
C語言單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)_第2頁
C語言單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)_第3頁
C語言單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)_第4頁
C語言單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、青島理工大學(xué)«C語言程序設(shè)計題目C語言單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)指導(dǎo)教師:姓名:學(xué)號:班級:專業(yè):地點:時間:2013-7-1至2013-7-5一、內(nèi)容【設(shè)計內(nèi)容】試設(shè)計一單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng),實現(xiàn)試題的錄入、抽取、用戶的答題、系統(tǒng)的自動判卷等功能。【設(shè)計要求】1、用文件保存試題庫。(每個試題包括題干、4個備選答案、標(biāo)準(zhǔn)答案)2、試題錄入:可隨時增加試題到試題庫中3、試題抽?。好看螐脑囶}庫中可以隨機抽出N道題(N由鍵盤輸入)4、答題:用戶可實現(xiàn)輸入自己的答案5、自動判卷:系統(tǒng)可根據(jù)用戶答案與標(biāo)準(zhǔn)答案的對比實現(xiàn)判卷并給出成績。二、上機環(huán)境操作系統(tǒng):windows.XP開發(fā)工具:VC6

2、.0三、函數(shù)調(diào)用關(guān)系圖Main()Menu()ReadfromFile()Answer()Output()TorF()IcreateLinkedList()_JInput()InsertNode()WritetoFile()主函數(shù)菜單函數(shù)答題函數(shù)輸出第n道題題目判卷函數(shù)題目錄入函數(shù)從文件中讀取題目信息創(chuàng)建鏈表插入題目函數(shù)保存到文件圖1函數(shù)調(diào)用關(guān)系圖四、各函數(shù)功能說明1 main()2 Menu()3 voidAnswer(intn,TEST*sp)4 voidOutput(TEST*,inti)5 intTorF(TEST*sp,charm)6 voidInput(TEST*)7 voidRe

3、adfromFile(TEST*sp)8 TEST*createLinkedList(TEST*sp)9 TEST*InsertNode(TEST*head,TEST*s)10 voidWritetoFile(TEST*head)五、流程圖開始1Menu()輸入選擇item真< Item=1?率血假:Item=2?J錄入題目>信息假V< Item=3?保存文件假< Item=4?>真結(jié)束可注尸左將題目信息>1創(chuàng)建科h氤鏈表中圖2系統(tǒng)總流程圖I開始輸入答題數(shù)n(開始/輸出題號,輸出選項A/輸出選項B'/輸出選項C輸出選項D/,f(結(jié)束(開始)/輸入答7

4、/案m/標(biāo)選答案與Y輸入答案是|、否相等?真假7輸出/輸出/RRight!/"Wrongi”/Z4r+該題分?jǐn)?shù)為1該題分?jǐn)?shù)為0分分*T*結(jié)束圖4Ooutput()函數(shù)流程圖圖5TorF()函數(shù)流程圖開開ABCD輸入題目輸入選項輸入選項輸入選項輸入選項輸入答案圖6Input。函數(shù)流程圖圖7ReadfromFile()函數(shù)流程圖開始圖8createLinkedList()函數(shù)流程圖q=NULL?(q!=NULL&&n!=i+1)?4.】艮出2.隨機抽題*_輸入n圖9InsertNode()函數(shù)流程圖p,q指針都指向下一節(jié)點i+六、程序運行效果圖1.初始界面輸出“Notfo

5、und!將保存信息的s桶入p,q之間;返回頭指針p,qi=0注*M*mM!X*M請輸入選項t統(tǒng)本件值判題文序親:殲?zāi)?|.程化超人存出準(zhǔn)退一下",1234題3.答題并判卷用一:20120"3T傅穎金、單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計'Debug、單項選擇題標(biāo)準(zhǔn)化考試.一n羹件試判題文序化題入存出準(zhǔn)區(qū)退請輸入選項:1請輸入答壑?jǐn)?shù):3工C請亙中能手AB一C衣制、-制、十進(jìn)請輸入答集:AEight!2魏源在其C學(xué)技術(shù),以期富自A4四洲志5B海國圖志D1算窠塞請輸入答案:4.插入試題-K+表、制整常數(shù)的進(jìn)制是六出制提出了叼,抵御外國制夷”的思想,主張學(xué)因處國先進(jìn)的軍事和科:斤中

6、國近代向西方學(xué)習(xí)的新風(fēng)。網(wǎng)干項項項項差選管要八入?入入入入入入111BABcDf5.保存到文件前一:20120713T便核金'單項選擇題標(biāo)淮化考試系統(tǒng)設(shè)計Dcbu姑單項選擇建標(biāo)準(zhǔn)化考試.一1A'lA'lA'lA'lA'lA.愉輸八人項項項項差選選選選答要.%的試題信息IA:12B:13C:14D:15瑜個節(jié)點后插入題目信息:6單項選擇題標(biāo)準(zhǔn)化工.睿題3 .保存創(chuàng)文件4 .退出程序請輸入選項:七、總結(jié)通過這短短5天的時間,學(xué)到了許多東西,尤其是對鏈表及文件的使用。在這之前對于鏈表和文件的使用還不是特別明白,現(xiàn)在已經(jīng)可以較為熟練的應(yīng)用它們。對結(jié)構(gòu)體數(shù)

7、組的使用也更加清晰了。V6.0,在做單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)時,碰到的第一個問題就是如何從文件里讀取數(shù)據(jù),為了解決這個問題,我細(xì)心的研究了老師給的課件,以及之前寫過的學(xué)生成績管理系統(tǒng)最終解決了這個問題。碰到的第二個問題是,如何讓編譯器隨機抽取的題目不重復(fù),通過認(rèn)真思考算法,最終得出了一個較為合理的算法。第三個問題是,鏈表的使用,在做“插入試題”這一塊的函數(shù)時,經(jīng)常出現(xiàn)編譯錯誤的提示,仔細(xì)閱讀編譯器提供的錯誤信息,并對程序進(jìn)行修改,最后也成功解決了這一個問題。這份程序在文件的讀取和保存以及鏈表的使用方面參考了老師給的課件,并進(jìn)行修改。但是,我的程序在圖形處理上基本是沒有,所以界面不是特別美觀。通

8、過網(wǎng)絡(luò)資源,學(xué)會了清屏,system(“cls”);通過這次的課程設(shè)計,讓我進(jìn)一步的了解到C語言在我們?nèi)粘I钪械闹匾?,體會到編一個對人們現(xiàn)實生活有用處的程序的快樂,更進(jìn)一步的激發(fā)了我學(xué)習(xí)這門語言的興趣經(jīng)過這次的訓(xùn)練,我相信自己以后會用更多的時間來把這門語言學(xué)好,掌握好這門必修的基礎(chǔ)語言。最后,在此對我的C語言老師陳老師,表示感謝。感謝她平時認(rèn)真地幫我調(diào)試程序,并耐心地解答疑點。在她的輔導(dǎo)下我從對C語言沒有絲毫概念的程度到現(xiàn)在已經(jīng)可以成功地寫出一些比較像樣的程序,是她開啟了我的編程人生。八、參考文獻(xiàn)1 邱建華C語言程序設(shè)計教程東軟電子出版社,20092 譚浩強C程序設(shè)計(第三版)清華大學(xué)出版

9、社,20053 邱建華C語言程序設(shè)計隨堂實訓(xùn)及上機指導(dǎo)東北大學(xué)出版社,2007九、程序清單/*單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計*/#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<time.h>#include<string.h>#defineM30typedefstructtestcharproblem300;charoption1100;charoption2100;charoption3100;charoption4100;charkey;structtest

10、*next;TEST;/菜單函數(shù)Menu();/答題函數(shù)/輸出第n道題題目/判卷函數(shù)/錄入題目/從文件中讀取題目信息/創(chuàng)建鏈表/插入函數(shù)/保存到文件voidAnswer(intn,TEST*sp);voidOutput(TEST*,inti);intTorF(TEST*sp,charm);voidInput(TEST*);voidReadfromFile(TEST*sp);TEST*createLinkedList(TEST*sp);TEST*InsertNode(TEST*head,TEST*s);voidWritetoFile(TEST*head);intmain(void)TESTtes

11、tM;TESTs;TEST*head;intitem,n;while(1)Menu();scanf("%d",&item);ReadfromFile(&test);switch(item)case 1:printf("請輸入答題數(shù):");scanf("%d",&n);Answer(n,&test);break;case 2: system("cls");Input(&s);head=createLinkedList(&test);head=InsertNode(hea

12、d,&s);break;case3:system("cls");WritetoFile(head);break;case4:exit(0);break;default:printf("輸入有誤!請重新輸入。n");/菜單函數(shù)Menu()printf("nt*printf("t*printf("t*printf("t*printf("t*printf("t*單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)*n");1 .答題并判卷2 .插入試題3 .保存到文件4 .退出程序*n");print

13、f("tt請輸入選項:");/答題函數(shù)voidAnswer(intn,TEST*sp)inti,j,score=0,numM;charm;srand(time(NULL);num0=rand()%(M-1)+0;for(i=0;i<n;i+)loop:srand(time(NULL);numi=rand()%(M-1)+0;for(j=i;j>=0;j-)/產(chǎn)生真隨機數(shù)/保證不出現(xiàn)重復(fù)的題目if(numj=numj-1)gotoloop;/若抽中的題重復(fù)則重新抽題*n");*n");*n");*n");Output(&am

14、p;spnumi,i+1);printf("請輸入答案:");scanf("%c",&m);score+=TorF(&spnumi,m);printf("n你的總成績?yōu)?%dn",score);/輸出抽中的題目/輸出總成績/判段用戶輸入的答案與標(biāo)準(zhǔn)答案是否一致/輸出第n道題題目函數(shù)voidOutput(TEST*sp,inti)printf("(%d)",i);printf("%sn",sp->problem);printf("A%sn",sp->

15、option1);printf("B%sn",sp->option2);printf("C%sn",sp->option3);printf("D%sn",sp->option4);/判卷函數(shù)intTorF(TEST*sp,charm)if(sp->key=m)/若用戶輸入的答案與標(biāo)準(zhǔn)答案一致,返回1printf("Right!n");return1;elseprintf("Wrong!n");/若用戶輸入的答案與標(biāo)準(zhǔn)答案不一致,返回0return0;/試題錄入函數(shù)n&qu

16、ot;);voidInput(TEST*sp)printf("請輸入要插入的試題信息:printf("請輸入題干:n");scanf("%s",sp->problem);printf("請輸入選項A:");scanf("%s",sp->option1);printf("請輸入選項B:");scanf("%s",sp->option2);printf("請輸入選項C:");scanf("%s",sp->o

17、ption3);printf("請輸入選項D:");scanf("%s",sp->option4);printf("請輸入答案:");scanf("%c",&sp->key);voidReadfromFile(TEST*sp)/文件讀取函數(shù)FILE*fp;inti;if(fp=fopen("test.txt","r")=NULL)/文件打開失敗printf("Failuretoopentest.txt!n");exit(0);for(i

18、=0;!feof(fp);i+)/文件打開成功fscanf(fp,"%s",blem);/將讀出的數(shù)據(jù)保存在sp變量里fscanf(fp,"%s",spi.option1);fscanf(fp,"%s",spi.option2);fscanf(fp,"%s",spi.option3);fscanf(fp,"%s",spi.option4);fscanf(fp,"%c",&spi.key);fclose(fp);/關(guān)閉文件TEST*createLinked

19、List(TEST*sp)/創(chuàng)建鏈表inti;TEST*head=NULL,*q=NULL,*p=NULL;/定義三個變量for(i=0;i<M;i+)p=(TEST*)malloc(sizeof(TEST);/申請內(nèi)存p=&spi;p->next=NULL;if(i=0)head=p;/鏈表的表頭elseq->next=p;q=p;returnhead;TEST*InsertNode(TEST*head,TEST*s)/插入函數(shù)intn,i;TEST*p,*q;p=head;q=p->next;printf("請輸入要在哪個節(jié)點后插入題目信息:");scanf("%d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論