c語言標(biāo)準(zhǔn)化考試系統(tǒng)課程設(shè)計(jì)_第1頁
c語言標(biāo)準(zhǔn)化考試系統(tǒng)課程設(shè)計(jì)_第2頁
c語言標(biāo)準(zhǔn)化考試系統(tǒng)課程設(shè)計(jì)_第3頁
c語言標(biāo)準(zhǔn)化考試系統(tǒng)課程設(shè)計(jì)_第4頁
c語言標(biāo)準(zhǔn)化考試系統(tǒng)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課 程 報(bào) 告課 程 名 稱: 標(biāo)準(zhǔn)化考試系統(tǒng) 專 業(yè) 班 級(jí) : 學(xué) 生 姓 名 : 學(xué) 號(hào) : 任 課 教 師 : 學(xué) 期 : 課程報(bào)告任務(wù)書題 目標(biāo)準(zhǔn)化考試系統(tǒng)主要內(nèi)容開發(fā)出一個(gè)標(biāo)準(zhǔn)化考試系統(tǒng),所謂標(biāo)準(zhǔn)化考試系統(tǒng)即僅支持選擇題,也是為方便自動(dòng)批改的功能的實(shí)現(xiàn)。要求實(shí)現(xiàn)以下基本功能:(1)提供給教師添加試題的功能(試題信息用文件保存)-輸入(2)試題的整體瀏覽功能(3)能夠抽取試題組合成一套試卷(組卷的策略:可以是隨機(jī)的,當(dāng)然若教師添加的試題時(shí)有知識(shí)點(diǎn)、章節(jié)等信息,亦可以實(shí)現(xiàn)按照一定的組卷策略實(shí)現(xiàn)出題:如每個(gè)知識(shí)點(diǎn)抽取若干題目,最終組合一套試卷)(4)教師實(shí)現(xiàn)題目信息的管理,比如刪除、修改

2、等(5)查詢功能(至少一種查詢方式)、排序功能(至少一種排序方式)擴(kuò)展功能:可以按照自己的程度進(jìn)行擴(kuò)展。比如(1)簡(jiǎn)單的權(quán)限處理 (2)成績(jī)報(bào)表打印功能(3)甚至根據(jù)自己情況,可以加上學(xué)生信息和考試成績(jī)信息的管理,并擴(kuò)充為廣義的考試系統(tǒng)。即學(xué)生輸入賬號(hào)密碼登陸,進(jìn)行考試,交卷后顯示成績(jī);(4)模糊查詢 (5)綜合查詢 (6)統(tǒng)計(jì)、分析等功能 總之,可以根據(jù)自己需求進(jìn)行分析功能。特別說明:盡可能地運(yùn)用自己已經(jīng)學(xué)習(xí)過的數(shù)據(jù)結(jié)構(gòu)的知識(shí)去展現(xiàn)。任務(wù)要求一、提交材料應(yīng)包括:(1)系統(tǒng)源代碼 (2)課程報(bào)告二、整個(gè)設(shè)計(jì)過程具體要求(1)需求分析 要求學(xué)生對(duì)案例系統(tǒng)進(jìn)行分析,設(shè)計(jì)出需要完成的功能,完善各個(gè)模

3、塊的調(diào)用關(guān)系;(2)設(shè)計(jì)過程 要求學(xué)生進(jìn)一步明確各模塊調(diào)用關(guān)系,進(jìn)一步完善模塊函數(shù)細(xì)節(jié)(函數(shù)名、參數(shù)、返回值等)(3)實(shí)現(xiàn)過程 要求學(xué)生養(yǎng)成良好的編碼習(xí)慣、完成各個(gè)模塊并進(jìn)行測(cè)試,最終完成系統(tǒng)整體測(cè)試;(4)總結(jié)階段 按照要求完成系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)報(bào)告,并進(jìn)行總結(jié)、答辯。成績(jī)?cè)u(píng)定報(bào)告撰寫情況(30分)系統(tǒng)完成情況(30分)答辯情況(40分)總分內(nèi)容20分規(guī)范程度5分程序測(cè)試5分基本功能20分?jǐn)U展功能10分自述情況10分答辯情況30分成績(jī)?cè)u(píng)定教師: 1 需求分析設(shè)計(jì)一個(gè)標(biāo)準(zhǔn)化考試系統(tǒng),讓學(xué)生和老師都能登錄。老師可以輸入試題、修改試題,學(xué)生可以答題、查分,實(shí)現(xiàn)不同功能。2 概要設(shè)計(jì)int main()

4、Int jiao_deng(struct jiaoshi su) /*教師登錄驗(yàn)證*/void jiao_xin(struct jiaoshi su) /*將教師的用戶信息存入文件*/void jiao_xin(struct jiaoshi su) /*將教師的用戶信息存入文件*/void jiao_xun(struct tiku tm) /*教師驗(yàn)證通過后,可對(duì)題目進(jìn)行修改*/void jiao_zeng(struct tiku tm) /*在原有文件基礎(chǔ)上,進(jìn)行新增題目*/Voidxiu_gai(struct tiku tm,int n) /*修改函數(shù)*/int xue_deng(stru

5、ct xuesheng sb) /*學(xué)生登錄驗(yàn)證*/void xue_xin(struct xuesheng sb) /*將學(xué)生的用戶信息存入文件*/ 標(biāo)準(zhǔn)化考試系統(tǒng) 教師入口 學(xué)生入口第一次進(jìn)入第一次進(jìn)入是否否 注冊(cè) 注冊(cè)登錄登錄修改試題插入試題查看試題查詢成績(jī)開始考試退出系統(tǒng)3 詳細(xì)設(shè)計(jì)#include<stdio.h>#include<stdlib.h>#include<string.h>int count=0;struct jiaoshi /教師用戶信息結(jié)構(gòu)體char username20; /用戶名char password12; /用戶密碼su;

6、struct xuesheng /學(xué)生用戶信息結(jié)構(gòu)體char username120; /用戶名char password112; /用戶密碼sb;struct tiku /題庫(kù)結(jié)構(gòu)體 int nb; /題號(hào)char tigan100; /題目?jī)?nèi)容char option180; /選項(xiàng)char option280;char option380;char option480;char daan10; /答案tm;struct chaxunint num;char name20;int chengji;ch;void jiao_xin(struct jiaoshi su);void xue_xin

7、(struct xuesheng su);void jiao_cha(struct tiku tm);void jiao_zeng(struct tiku tm);void xue_kaoshi(struct tiku tm);void xue_cha(struct chaxun ch,int chengji);void xue_chax(struct chaxun ch);void xue_hao(struct chaxun ch);void xing_ming(struct chaxun ch);void cheng_ji(struct chaxun ch);int xue_deng(st

8、ruct xuesheng sb);int jiao_deng(struct jiaoshi su);void jiao_xun(struct tiku tm);void cha_tihao(struct tiku tm);void xiu_gai(struct tiku tm,int n);int main()int choice,choice1,choice2;printf("ttt歡迎進(jìn)入標(biāo)準(zhǔn)化考試系統(tǒng)n");printf("ttt選擇1:以學(xué)生身份登錄n");printf("ttt選擇2:以教師身份登錄n");printf(&

9、quot;tt提示:如果你是第一次使用該系統(tǒng),請(qǐng)先注冊(cè)你的基本信息!n");while(1)printf("ttt請(qǐng)輸入你的選擇項(xiàng):");scanf("%d",&choice);getchar();if(choice=1|choice=2)break; elseprintf("ttt對(duì)不起,輸入有誤,請(qǐng)重新輸入!n");if(choice=1)while(1)printf("n");printf("n");printf("ttt選擇1:注冊(cè)!n");prin

10、tf("ttt選擇2:開始考試!n");printf("ttt選擇3:成績(jī)查詢!n");printf("ttt選擇0:退出n");printf("n");printf("ttt請(qǐng)輸入你的選擇:");scanf("%d",&choice1);switch(choice1)case 1: xue_xin(sb); break; /調(diào)用文件,錄入用戶信息case 2: xue_kaoshi(tm); break; /調(diào)用函數(shù),開始考試case 3: xue_chax(ch)

11、; break; /調(diào)用文件,查詢信息case 0: return;if(choice=2)while(1)printf("n");printf("n");printf("ttt選擇1:注冊(cè)!n");printf("ttt選擇2:查看題庫(kù)中的題目n");printf("ttt選擇3:向題庫(kù)中增加題目n");printf("ttt選擇4:對(duì)題庫(kù)題目進(jìn)行修改n");printf("ttt選擇0:退出n");printf("ttt請(qǐng)輸入你的選擇:&qu

12、ot;);scanf("%d",&choice2);switch(choice2)case 1:jiao_xin(su); break; /調(diào)用文件,錄入用戶信case 2:jiao_cha(tm); break; /調(diào)用文件開始錄入題目case 3:jiao_zeng(tm); break; /調(diào)用文件,增加題目case 4:jiao_xun(tm); break; /調(diào)用文件,對(duì)題庫(kù)進(jìn)行修改case 0: return;void jiao_xin(struct jiaoshi su) /*將教師的用戶信息存入文件*/FILE *fp;int i;if(fp=fo

13、pen("g:標(biāo)準(zhǔn)化考試.txt","a")=NULL)printf("文件打開有誤!n");exit(0);for(i=1;i<=1;i+)printf("請(qǐng)輸入第%d個(gè)用戶的姓名和密碼:",i);scanf("%s%s",su.username,su.password);fprintf(fp,"%s %sn",su.username,su.password);if(fclose(fp)printf("無法關(guān)閉此文件!n");exit(0);voi

14、d xue_xin(struct xuesheng sb) /*將學(xué)生的用戶信息存入文件*/FILE *fp;int i;if(fp=fopen("g:標(biāo)準(zhǔn)化考試.txt","a")=NULL)printf("文件打開有誤!n");exit(0);for(i=1;i<=1;i+)printf("請(qǐng)輸入第%d個(gè)用戶的姓名和密碼:",i);scanf("%s%s",sb.username1,sb.password1);fprintf(fp,"%s %sn",sb.usern

15、ame1,sb.password1);if(fclose(fp)printf("無法關(guān)閉此文件!n");exit(0);void jiao_cha(struct tiku tm) /*查看題庫(kù)中的題目*/FILE *fp;while(1)if(jiao_deng(su)=0)printf("tt對(duì)不起,用戶名或密碼錯(cuò)誤!請(qǐng)重新輸入!n");else printf("tt*登錄成功,現(xiàn)在可以查看試題了!*n");break;if(fp=fopen("g:標(biāo)準(zhǔn)化考試.txt","r")=NULL)p

16、rintf("文件打開有誤!n");exit(0);while(!feof(fp)printf("n");fscanf(fp,"%d %s %s %s %s %s %s",&tm.nb,tm.tigan,tm.option1,tm.option2,tm.option3,tm.option4,tm.daan);printf("%d%sn",tm.nb,tm.tigan);printf("%sn",tm.option1);printf("%sn",tm.option2);

17、 printf("%sn",tm.option3);printf("%sn",tm.option4);printf("n");printf("ttt答案:%sn",tm.daan);if(fclose(fp)printf("無法關(guān)閉此文件!n");exit(0);void jiao_zeng(struct tiku tm) /*在原有文件基礎(chǔ)上,進(jìn)行新增題目*/FILE *fp;int i;int n;while(1)if(jiao_deng(su)=0)printf("tt對(duì)不起,用

18、戶名或密碼錯(cuò)誤!請(qǐng)重新輸入!n");else printf("tt*登錄成功,歡迎使用*n");break;printf("請(qǐng)輸入本次要添加的題目個(gè)數(shù)n:");scanf("%d",&n);if(fp=fopen("g:標(biāo)準(zhǔn)化考試.txt","a")=NULL)printf("文件打開有誤!n");exit(0);for(i=1;i<=n;i+)printf("請(qǐng)輸入題號(hào):");scanf("%d",&t

19、m.nb );printf("請(qǐng)輸入第%d個(gè)題目的題干:n",tm.nb);scanf("%s",tm.tigan );printf("請(qǐng)輸入答案:n");printf("A:");scanf("%s",tm.option1 );printf("B:");scanf("%s",tm.option2 );printf("C:");scanf("%s",tm.option3 );printf("D:"

20、);scanf("%s",tm.option4 );printf("請(qǐng)輸入第%d個(gè)題目的答案:",tm.nb);scanf("%s",tm.daan );fprintf(fp,"%d %s %s %s %s %s %sn",tm.nb,tm.tigan,tm.option1,tm.option2,tm.option3,tm.option4,tm.daan);if(fclose(fp)printf("無法關(guān)閉此文件!n");exit(0);void xue_kaoshi(struct tiku t

21、m) /*讀出文件,學(xué)生開始答題,并將成績(jī)存入文件*/FILE *fp;int i;int j,k;char s10;int chengji=0;while(1)if(xue_deng(sb)=0)printf("tt對(duì)不起,用戶名或密碼錯(cuò)誤!請(qǐng)重新輸入!n");else printf("t恭喜你登陸成功,現(xiàn)在可以開始考試了!n");break;if(fp=fopen("g:標(biāo)準(zhǔn)化考試.txt","r")=NULL)printf("文件打開有誤!n");exit(0);printf("

22、tt#共有三種難度系數(shù)1-2-3#");printf("請(qǐng)選擇難度系數(shù):");scanf("%d",&j);if(j=1)k=10;if(j=2)k=20;if(j=3)k=30;for(i=1;i<=k;i=i+j)printf("n");fscanf(fp,"%d %s %s %s %s %s %s",&tm.nb,tm.tigan,tm.option1,tm.option2,tm.option3,tm.option4,tm.daan);printf("%d%sn&qu

23、ot;,tm.nb,tm.tigan);printf("%sn",tm.option1);printf("%sn",tm.option2); printf("%sn",tm.option3);printf("%sn",tm.option4);printf("n");/printf("%sn",tm.daan);printf("請(qǐng)輸入你的選項(xiàng):");scanf("%s",s);if(strcmp(tm.daan,s)=0) chengji

24、=chengji+10;printf("你的成績(jī)是:%dn",chengji);printf("tt為方便你以后查詢成績(jī),請(qǐng)?jiān)俅屋斎肽愕男畔ⅲ簄");xue_cha(ch,chengji);if(fclose(fp)printf("無法關(guān)閉此文件!n");exit(0);void xue_cha(struct chaxun ch,int chengji) /*考試結(jié)束,將成績(jī)錄入文件*/FILE *fp;int i;if(fp=fopen("g:標(biāo)準(zhǔn)化考試.txt","a")=NULL)prin

25、tf("文件打開有誤!n");exit(0);/*printf("請(qǐng)輸入你的學(xué)號(hào)和姓名:");scanf("%d %s ",&ch.num,);printf("請(qǐng)輸入你本次考試的成績(jī):");*/printf("請(qǐng)輸入你本次考試的成績(jī):");while(1)scanf("%d",&i);if(i=chengji)printf("請(qǐng)輸入你的學(xué)號(hào)和姓名和成績(jī):");scanf("%d %s ",&ch.n

26、um,,&ch.chengji );fprintf(fp,"%d %s %dn",ch.num,,chengji);break;elseprintf("tt對(duì)不起,你輸入的成績(jī)與本次考試成績(jī)有誤,請(qǐng)重新輸入!"); /fprintf(fp,"%d %sn",ch.num,);if(fclose(fp)printf("無法關(guān)閉此文件!n");exit(0);void xue_chax(struct chaxun ch) /*成績(jī)查詢函數(shù)1.按學(xué)號(hào)2.按姓名3.按成績(jī)*

27、/int choice;printf("ttt選擇1,按學(xué)號(hào)查詢成績(jī)n");printf("ttt選擇2,按姓名查詢成績(jī)n");printf("ttt選擇3,按成績(jī)信息n");printf("請(qǐng)輸入你的選擇:");scanf("%d",&choice);switch(choice)case 1:xue_hao(ch); break;case 2:xing_ming(ch); break;case 3:cheng_ji(ch); break;void xue_hao(struct chax

28、un ch) /*按學(xué)號(hào)查詢成績(jī)*/FILE *fp;/int i;int num;int flag=0;if(fp=fopen("g:標(biāo)準(zhǔn)化考試.txt","r")=NULL)printf("文件打開有誤!n");exit(0);printf("請(qǐng)輸入你的學(xué)號(hào):");scanf("%d",&num);while(!feof(fp)fscanf(fp,"%d%s%d",&ch.num,,&ch.chengji);if(num=ch.num

29、)printf("學(xué)號(hào):%dt姓名:%st成績(jī):%dn",ch.num,,ch.chengji);flag=1;break;if(flag=0)printf("對(duì)不起,沒有找到,請(qǐng)檢查你的輸入是否正確!");if(fclose(fp)printf("無法關(guān)閉此文件!n");exit(0);void xing_ming(struct chaxun ch) /*按姓名查詢成績(jī)*/FILE *fp;char name20;int flag=0;if(fp=fopen("g:標(biāo)準(zhǔn)化考試.txt","

30、r")=NULL)printf("文件打開有誤!n");exit(0);printf("請(qǐng)輸入你的姓名:");scanf("%s",name);while(!feof(fp)fscanf(fp,"%d%s%d",&ch.num,,&ch.chengji);if(strcmp(name,)=0)printf("學(xué)號(hào):%dt姓名:%st成績(jī):%dn",ch.num,,ch.chengji);flag=1;break;if(flag=

31、0)printf("對(duì)不起,沒有找到,請(qǐng)檢查你的輸入是否正確!");if(fclose(fp)printf("無法關(guān)閉此文件!n");exit(0);void cheng_ji(struct chaxun ch) /*按成績(jī)查詢信息*/FILE *fp;int chengji;int flag=0;if(fp=fopen("g:標(biāo)準(zhǔn)化考試.txt","r")=NULL)printf("文件打開有誤!n");exit(0);printf("請(qǐng)輸入你的成績(jī):");scanf(&q

32、uot;%d",&chengji);while(!feof(fp)fscanf(fp,"%d%s%d",&ch.num,,&ch.chengji);if(chengji=ch.chengji)printf("學(xué)號(hào):%dt姓名:%st成績(jī):%dn",ch.num,,ch.chengji);flag=1;if(flag=0)printf("對(duì)不起,沒有找到,請(qǐng)檢查你的輸入是否正確!");if(fclose(fp)printf("無法關(guān)閉此文件!n");exi

33、t(0);int xue_deng(struct xuesheng sb) /*學(xué)生登錄驗(yàn)證*/FILE *fp;int flag=0;char name20;char password12;printf("n"); printf("tt>>>>>請(qǐng)先登錄該系統(tǒng)<<<<<nn");printf("tt>>>>>請(qǐng)輸入你的登錄名和密碼:");scanf("%s%s",name,password);if(fp=fopen(&quo

34、t;g:標(biāo)準(zhǔn)化考試.txt","r")=NULL)printf("文件打開有誤!n");exit(0);while(!feof(fp)fscanf(fp,"%s%s",sb.username1,sb.password1);if(strcmp(name,sb.username1)=0&&strcmp(password,sb.password1)=0)flag=1;break;if(fclose(fp)printf("無法關(guān)閉此文件!n");exit(0);return flag;int ji

35、ao_deng(struct jiaoshi su) /*教師登錄驗(yàn)證*/FILE *fp;int flag=0;char name20;char password12;printf("n"); printf("tt>>>>>請(qǐng)先登錄該系統(tǒng)<<<<<nn");printf("tt>>>>>請(qǐng)輸入你的登錄名和密碼:");scanf("%s%s",name,password);if(fp=fopen("g:標(biāo)準(zhǔn)化考試.t

36、xt","r")=NULL)printf("文件打開有誤!n");exit(0);while(!feof(fp)fscanf(fp,"%s%s",su.username,su.password);if(strcmp(name,su.username)=0&&strcmp(password,su.password)=0)flag=1;break;if(fclose(fp)printf("無法關(guān)閉此文件!n");exit(0);return flag;void jiao_xun(struct

37、tiku tm) /*教師驗(yàn)證通過后,可對(duì)題目進(jìn)行修改*/int choice;while(1)if(jiao_deng(su)=0)printf("tt對(duì)不起,用戶名或密碼錯(cuò)誤!請(qǐng)重新輸入!n");else printf("tt*登錄成功,歡迎使用*n");break;while(1)printf("n");printf("n");printf("tt請(qǐng)選擇按何種方式進(jìn)行修改!n");printf("tt選擇1:按題號(hào)查找,并修改!n");printf("tt選擇

38、2:輸入部分題目?jī)?nèi)容查找并進(jìn)行修改!n");printf("n");printf("ttt請(qǐng)輸入你的選擇:");scanf("%d",&choice);switch(choice)case 1: cha_tihao(tm); break; /按題號(hào)查找,并修改case 2: return; /輸入部分題目?jī)?nèi)容查找并進(jìn)行修改!void cha_tihao(struct tiku tm) /*先查詢出題目,然后調(diào)用函數(shù)進(jìn)行修改*/int n;FILE *fp;int flag=0;printf("請(qǐng)輸入你要修改

39、的題目的題號(hào):");scanf("%d",&n);if(fp=fopen("g:標(biāo)準(zhǔn)化考試.txt","r")=NULL)printf("文件打開有誤!n");exit(0);while(!feof(fp)printf("n");fscanf(fp,"%d %s %s %s %s %s %s",&tm.nb,tm.tigan,tm.option1,tm.option2,tm.option3,tm.option4,tm.daan);if(n=tm.nb)printf("%d%sn",tm.nb,tm.tigan);printf("%sn",tm.option1);printf("%sn",tm.option2); printf("%sn",tm.option3);printf("%

溫馨提示

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

評(píng)論

0/150

提交評(píng)論