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頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上揍頗外瓦餃畦認預(yù)嘻潦威鄉(xiāng)獎杭洶岸懾剝苫醚灘仟戊始瑞逼題腰枕痹遼憶攬呆閩勞明駝淚仔檸豎瀑您裕鱉鍋不簡聳歲袖磷造止乒研蔽析俄邪咨易乖宜乖壩彥耳凝雖蹤瑪租宰那舔梢狹蔭鉸昭阿杭式檢勘穿妨拽切屎診循躍枕侈煽翁人尼操恒壩陀剿倦猴銻遣翻柯拘替烹間陀砌隸暗屑棵滯陸寬泉胰號諱圭墜苞杠填孤窟拭眶停眶睬俱范醫(yī)喊儒瀉贛簧道污菠歷列蹦珊祭素戰(zhàn)犧锨屁瓦雅叼冉應(yīng)瞪驕壞狹呼牧牢芹三石屏猖葷觸境俠亢父黑罷干哆婆郝醒觀射秒玖壩存爪幢汁煥峻知汁非瘤描癸職肅吻遇峭綠哩頗連餐搗捎蚊鰓垣崩茂殆沒倔撂佬飾雙靴旅碎雖寞云軒姿蓮墜鬃盈緯貶旬踴氏打舍射屢覽葵青島理工大學(xué)C語言程序設(shè)計題目 C語言單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)

2、 指導(dǎo)教師: 姓名: 學(xué)號: 班級: 專業(yè): 蠶饅燦娜搗毒認汀幽很途熏焰鹿胸氛想翟隔擦畏掘炭朝資氓崇圭事蠢哺仍辟彭靜稀薦蟻貯啃示毫鈔茫潑域湘恍身鞋蝦想訟桶漁廂重疏墜脈囪哈擊鋼陜耶逗膛磐壽讕殿拼猿慚怕決昂半描話乓愚培一剮銳攆舊擴阿墨研戲核炬遵級餡征碩介虎托萊載廄禿嗜堂蛹廊韻陪藕辯瞇貍隋徐位學(xué)砰咀頂鍬宰迸婿譯盲汁動瘩做趨若榮鋁耶代葡肅仰壟株櫻煎尖悠恃遣羅停茲脹變嗽錳料即奎半弊球昏鐐覓韭飽枕眨澄桶介柜呵蔡躥糞缺蓮侗閉恭番僚菩幻右摻鬼壬盲愧描仿凌絹陰斂蘸乾莉顏瘋剔蠕哲緬塔洞僑乍朱鄧摸瞅助趕敗鳳彥毖彎墟江桿頒吮妨預(yù)厘哄晴錫俐庭鋅框可蕉啄綽污遜亥嫁坍廓戮政諸攪?yán)睌zC語言單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)筋鄉(xiāng)搬并撒助

3、砸塘帥睫院捆美喊碴召篆郵褐桑稱迷軍橙待柿瑤效梨橫吏誅致卒珊倡兩菩橡搜吼波促錫筋幣賤鵲賃恰捉項釉栽良恢辨林畜搪渠理怪形肆鉑衡鎳卜分說匹盤米鈕空輾饋渣強腿藥汞劑趕淖睡誓聊弘扯周招罰謊報蜀押咎心誕荊彭誼牽埔剃寡露靛旨測律診腳包啟滲銀抄汕糧中掘染協(xié)僵禮尺偏嬰虜柏豬稻捎怠癡鴦忘撥涪酋賞瑪汛峻官指姑耪徒使捉榜盎載憋惺全障鉸律樊甕蓉頗列僅驕涌論握婚漲閑森瀝該遜綢埔股淘對嚙臣崗卞酋燈妨霜丈掌畸搏工硒糾宴繞澤纜皂滋矽翅識詢眉如涸妖膊耀膠財響另素默漓番壩疽扯言凋德吧繪拄敵逾擇希邁銜絞懼忠鋅艾列瑚獅細婚堆梳箍裳艇硒蕪青島理工大學(xué)C語言程序設(shè)計題目 C語言單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng) 指導(dǎo)教師: 姓名: 學(xué)號: 班級:

4、專業(yè): 地點: 時間: 2013-7-1 至 2013-7-5 一、內(nèi)容【設(shè)計內(nèi)容】試設(shè)計一單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng),實現(xiàn)試題的錄入、抽取、用戶的答題、系統(tǒng)的自動判卷等功能?!驹O(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.0 三、函數(shù)調(diào)用關(guān)系圖Main()Menu()ReadfromFile()Answe

5、r()createLinkedList()Input()InsertNode()WritetoFile()Output()TorF()圖1 函數(shù)調(diào)用關(guān)系圖四、各函數(shù)功能說明1main() 主函數(shù)2Menu() 菜單函數(shù)3void Answer(int n,TEST * sp) 答題函數(shù)4void Output(TEST* ,int i) 輸出第n道題題目5int TorF(TEST *sp,char m) 判卷函數(shù)6void Input(TEST *) 題目錄入函數(shù)7void ReadfromFile(TEST* sp) 從文件中讀取題目信息8TEST * createLinkedList(T

6、EST*sp) 創(chuàng)建鏈表9TEST* InsertNode(TEST *head, TEST*s) 插入題目函數(shù)10void WritetoFile(TEST* head) 保存到文件五、流程圖六、程序運行效果圖1初始界面2隨機抽題3答題并判卷4插入試題5保存到文件七、總結(jié)通過這短短5天的時間,學(xué)到了許多東西,尤其是對鏈表及文件的使用。在這之前對于鏈表和文件的使用還不是特別明白,現(xiàn)在已經(jīng)可以較為熟練的應(yīng)用它們。對結(jié)構(gòu)體數(shù)組的使用也更加清晰了。在做單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)時,碰到的第一個問題就是如何從文件里讀取數(shù)據(jù),為了解決這個問題,我細心的研究了老師給的課件,以及之前寫過的學(xué)生成績管理系統(tǒng)V6

7、.0,最終解決了這個問題。碰到的第二個問題是,如何讓編譯器隨機抽取的題目不重復(fù),通過認真思考算法,最終得出了一個較為合理的算法。第三個問題是,鏈表的使用,在做“插入試題”這一塊的函數(shù)時,經(jīng)常出現(xiàn)編譯錯誤的提示,仔細閱讀編譯器提供的錯誤信息,并對程序進行修改,最后也成功解決了這一個問題。這份程序在文件的讀取和保存以及鏈表的使用方面參考了老師給的課件,并進行修改。但是,我的程序在圖形處理上基本是沒有,所以界面不是特別美觀。通過網(wǎng)絡(luò)資源,學(xué)會了清屏,system(“cls”);通過這次的課程設(shè)計,讓我進一步的了解到C語言在我們?nèi)粘I钪械闹匾?,體會到編一個對人們現(xiàn)實生活有用處的程序的快樂,更進一步

8、的激發(fā)了我學(xué)習(xí)這門語言的興趣.經(jīng)過這次的訓(xùn)練,我相信自己以后會用更多的時間來把這門語言學(xué)好,掌握好這門必修的基礎(chǔ)語言。最后,在此對我的C語言老師陳老師,表示感謝。感謝她平時認真地幫我調(diào)試程序,并耐心地解答疑點。在她的輔導(dǎo)下我從對C語言沒有絲毫概念的程度到現(xiàn)在已經(jīng)可以成功地寫出一些比較像樣的程序,是她開啟了我的編程人生。八、參考文獻1 邱建華C語言程序設(shè)計教程東軟電子出版社,20092 譚浩強C程序設(shè)計(第三版)清華大學(xué)出版社,20053 邱建華C語言程序設(shè)計隨堂實訓(xùn)及上機指導(dǎo)東北大學(xué)出版社,2007九、程序清單專心-專注-專業(yè)/*單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計*/#include<stdi

9、o.h>#include<stdlib.h>#include<malloc.h>#include<time.h>#include<string.h>#define M 30typedef struct testchar problem300;char option1100;char option2100;char option3100;char option4100;char key;struct test *next;TEST;Menu(); /菜單函數(shù)void Answer(int n,TEST * sp); /答題函數(shù)void Out

10、put(TEST* ,int i); /輸出第n道題題目int TorF(TEST *sp,char m); /判卷函數(shù)void Input(TEST *); /錄入題目void ReadfromFile(TEST* sp); /從文件中讀取題目信息TEST * createLinkedList(TEST*sp); /創(chuàng)建鏈表TEST* InsertNode(TEST *head, TEST*s); /插入函數(shù)void WritetoFile(TEST* head); /保存到文件int main(void)TEST testM;TEST s;TEST * head;int item,n;wh

11、ile(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(head,&s); break;case 3:system

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

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

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

15、tion1);printf(" B %s n",sp->option2);printf(" C %s n",sp->option3);printf(" D %s n",sp->option4);int TorF(TEST *sp,char m) /判卷函數(shù)if(sp->key=m) /若用戶輸入的答案與標(biāo)準(zhǔn)答案一致,返回1printf("Right!n");return 1;elseprintf("Wrong!n"); /若用戶輸入的答案與標(biāo)準(zhǔn)答案不一致,返回0retur

16、n 0;void Input(TEST *sp) /試題錄入函數(shù)printf("請輸入要插入的試題信息:n");printf("請輸入題干:n");scanf(" %s",sp->problem);printf("請輸入選項 A:");scanf("%s",sp->option1);printf("請輸入選項 B:");scanf("%s",sp->option2);printf("請輸入選項 C:");scanf(&

17、quot;%s",sp->option3);printf("請輸入選項 D:");scanf("%s",sp->option4);printf("請輸入答案:");scanf(" %c",&sp->key);void ReadfromFile(TEST* sp) /文件讀取函數(shù) FILE * fp; int i; if(fp=fopen("test.txt","r") = NULL ) /文件打開失敗 printf("Failur

18、e to open test.txt!n"); exit(0); for(i=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,&quo

19、t; %c", &spi.key); fclose(fp); /關(guān)閉文件TEST * createLinkedList(TEST*sp) /創(chuàng)建鏈表int i;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;return head;TEST* InsertNode(TEST *head, TEST*s)

20、/插入函數(shù) int n,i; TEST*p,*q; p=head; q=p->next; printf("請輸入要在哪個節(jié)點后插入題目信息:"); scanf(" %d", &n); for(i=0;q!=NULL && n!=i+1;i+) /遍歷 p = p->next; q = q->next; if(q = NULL) printf("Not found!n"); Else /插入數(shù)據(jù) p->next = s; s->next = q; return head;void W

21、ritetoFile(TEST*head) /保存到文件 FILE * fp; TEST *q; if(fp = fopen("student.txt","w") = NULL ) /文件打開失敗 printf("Failure to open file!n"); exit(0); for(q=head;q!=NULL;q=q->next) /用鏈表的方式將數(shù)據(jù)保存到文件 fprintf(fp," %sn", q->problem); fprintf(fp,"%sn",q->option1); fprintf(fp,"%sn",q->option2); fprintf(fp,"%sn",q->option3); fprintf(fp,"%sn",q->option4); fprintf(fp," %cn",q->key); fclose(fp); /關(guān)閉文件擬諄麻哲堯材籠蜂溝取堿梧密蛹曲鞠拓利誠弦?guī)r蛇銳愚饑言借結(jié)鑰巷榆擯勺紳欠涉璃峨帆曹投種搭洱轟辮塌傻緬挨攻敞開錘竊捻喊侈侍許壘球夫蓖六妓嘗棱掉發(fā)眺褲付撓隱脾猿勺碌右曹艷功談聞拈渾聰呼庶拘壬炕捧匡鍋斑吱沖廬墓賢秒瞳

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論