版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
※力7次次摩
課程報告
課程名稱:程序設(shè)計實踐
專業(yè)班級:計算機類1304班
學(xué)生姓名:唐林
學(xué)號:2013號920403
任課教師:唐建國
學(xué)期:2013-2014學(xué)年第二學(xué)期
課程報告任務(wù)書
題
標(biāo)準(zhǔn)化考試系統(tǒng)
目
1.建立一個InsertNode函數(shù)來實現(xiàn)插入試題的功能。2.建立一個AddNode函數(shù)
來實現(xiàn)添加試題的功能。3.建立一個Change函數(shù)來實現(xiàn)對試題進行修改的功能。4.
主要
新建一個DeleteNode函數(shù)來實現(xiàn)對試題的刪除。5.建立個printNode函數(shù)實現(xiàn)對試題
的輸出功能.6.建立一個Match函數(shù)來判斷答案是否正確.7.建立answer函數(shù)實現(xiàn)隨
內(nèi)容
機選題并進行答題和統(tǒng)計得分功能。8.在主函數(shù)main中,使用switch函數(shù)讓用戶進
行選擇。
一、對該考試系統(tǒng)進行需求分析,找出該系統(tǒng)需要哪些功能來實現(xiàn),在每個功能
中運用學(xué)過的算法來實現(xiàn),每個功能用不同的函數(shù)來實現(xiàn),確定函數(shù)之間調(diào)用的關(guān)系。
二、整個設(shè)計過程具體要求
任務(wù)(1)需求分析對案例系統(tǒng)進行分析,設(shè)計出需要完成的功能,完善各個模塊
的調(diào)用關(guān)系;
要求
(2)設(shè)計過程進一步明確各模塊調(diào)用關(guān)系,進一步完善模塊函數(shù)細(xì)節(jié)(函數(shù)
名、參數(shù)、返回值等)
(3)實現(xiàn)過程養(yǎng)成良好的編碼習(xí)慣、完成各個模塊并進行測試,最終完成系
統(tǒng)整體測試;
(4)總結(jié)階段按照要求完成系統(tǒng)設(shè)計和實現(xiàn)報告,并進行總結(jié)、答辯。
報告撰寫情況(30分)系統(tǒng)完成情況(30分)答辯情況(40分)
內(nèi)容規(guī)范程度程序測試基本功能擴展功能自述情況答辯情況
成績20分5分5分20分10分10分30分總分
評定
成績評定教師:
1需求分析
該系統(tǒng)包括以下功能:
1.進行隨機答題并判卷
2.顯示試題所有內(nèi)容
3.插入試題
4.添加試題
5.自主選題并判卷
6.修改試題
7.刪除試題
8.退出系統(tǒng)
2概要設(shè)計
2.1整體框架圖
圖2-1-1
2.2.2修改試題功能圖
進入Change(int
N
圖222
2.2.3刪除試題功能圖
N
圖2-2-3
2.3自定義函數(shù)
返回值函數(shù)名參數(shù)表函數(shù)功能
StatusSaveNodeint&N將試題存入文件中
StatusReadNodeint&N從文件中讀取試題
StatusInsertNodeint&N向試題庫中插入試題
StatusChangeint&N修改試題
StatusDeleteNodeint&N刪除試題
voidprintNode(TestNodep,intn)輸出試題
StatusMatch(TestNodep,charm)檢查答案
voidanswer(intsum,intN)隨機進行答題并判卷
voidOtheranswer(intN,ints)自主選題作答并判卷
StatusAddNodeint&N向題庫中添加試題
3詳細(xì)設(shè)計
3.1添加試題
將想要輸入的是試題,從鍵盤輸入,題庫中總的題數(shù)作為結(jié)構(gòu)數(shù)組的下標(biāo),存入一道題就將
結(jié)構(gòu)數(shù)組的下標(biāo)向后移動一位,最后將存入最后一道題的下標(biāo)返回,作為題庫中的總題數(shù)。
StatusAddNode(int&N)〃添加試題內(nèi)容
{
printf(“如果不添加了試題了,在題目輸入””結(jié)束!\n");
while(l){
printf("請輸入所要插入題題目、題干和選項:\n”);
printf("請輸入題目:”);
gets(Testquestions[N].subject);
if(strcmp(Testquestions[N].subject,"*")==0)
break;
printf("請輸入選項A:”);
gets(Testquestions[N].optionl);
printf(“請輸入選項B:“);
gets(Testquestions[N],option2);
printf(”請輸入選項C:");
gets(Testquestions[N].options);
printf(“請輸入選項D:”);
gets(Testquestions[N].option4);
printf("請輸入答案:”);
最新可編輯word文檔
scanf("%c",&Testquestions[N].result);getchar();
N++;//N表示結(jié)構(gòu)體數(shù)組長度,通過加&號使其值能返回
)
returnTRUE;
}
3.2修改試題
先從鍵盤中輸入想要修改第幾道試題,當(dāng)題標(biāo)輸入m時,找到結(jié)構(gòu)數(shù)組niT對應(yīng)的元素就
是要修改的試題,再將修改的試題進行保存,從而實現(xiàn)對試題的修改功能。
StatusChange(int&N){
intm,i;
printf(“請輸入您要修改第幾題?\n");
scanf("%d",&m);
getchar();〃吸收空格字符
for(i=0;i<N;i++)
(
if(i==(m-l)){
printf(”請輸入新的題目:”);
gets(Testquestions?subject);
printf(”請輸入新的選項A:");
gets(Testquestions[m-l].optionl);
printf(”請輸入新的選項B:“);
gets(Testquestions[m-1].option2);
printf(”請輸入新的選項C:");
gets(Testquestions[m-1].options);
printf(”請輸入新的選項D:“);
gets(Testquestions[m-1].option4);
printf(”請輸入新的答案:“);
最新可編輯word文檔
scanf("%c"j&Testquestions[m-l].result);
getchar();
break;
)
)
if(m>N)
printf("修改試題失敗!\n");
else
printf("修改試題成功!\n“);
returnTRUE;
)
3.3刪除試題
先從鍵盤中輸入想要修改第幾道試題,當(dāng)題標(biāo)輸入n時,找到結(jié)構(gòu)數(shù)組n-1對應(yīng)的元素就是
要刪除的試題,在用一個for循環(huán),將n到N7個元素向前移動,從而實現(xiàn)對試題的刪除功
能。
StatusDeleteNode(int&N)〃刪除數(shù)組中的第n道題
{
intn;
printf(“輸入你想是刪除第幾道試題:\n”);
scanf("%d",&n);
if(n>N)
{
printf("刪除不成功\n“);
returnERROR;
}
while(n<=N)
{
Testquestions[n-1]=Testquestions[n];
n++;
最新可編輯word文檔
)
N=N-1;
printf("刪除成功\n“);
returnTRUE;
)
3.4隨機選題并判題
學(xué)生進入考試系統(tǒng),輸入形成試卷的題數(shù),系統(tǒng)將會自動抽取試題,在進行作答之后,立
刻能看到學(xué)生是否做對本道試題,如果作對,將會顯示"答案正確",否者會顯示“答案錯誤”
并且會顯示正確答案。
voidanswer(intsum,intN)〃隨機進行答題
{
intscore=0>Num;
charr;
for(i=l;i<=sum;i++)
(
Num=rand()%N;〃隨機函數(shù),以隨機選定何題進行解答
printNode(Testquestions[Num]?i);
printfC'Xn");
printf("\n請輸入第(%的答案:",i);
scanf("%c",&r);getchar();
if(Match(Testquestions[Num]^r))//調(diào)用函數(shù)Match判斷所輸入的答案與
標(biāo)準(zhǔn)答案是否相同
{printf("\n答案正確!\n”);
score++;
}
else{
printf(“\n答案錯誤!\n”);
printf("正確答案為:%c\rT,Testquestions[Num].result);
最新可編輯word文檔
)
printf("\n你的總成績?yōu)椋海\n”,score);
)
3.5自主選題并判題
通過函數(shù)中傳遞題庫的總數(shù)和要形成試卷的總題數(shù),輸入將要選擇的試題,將輸入的試題
在結(jié)構(gòu)數(shù)組中找到,可以進行作答,當(dāng)輸入的答案不與標(biāo)準(zhǔn)答案匹配時,答卷系統(tǒng)將會自動
報錯,并且輸出正確的答案,如果輸入正確將會顯示“答案正確”,在最后答卷系統(tǒng)將會輸出
總的成績。
voidOtheranswer(intN,ints){
inti,score=0>k;
charm;
for(i=l;i<=s;i++){
printf("輸入要選擇第幾題?\n");
scanf("%d",&k);
while(k<=0||k>N){
printf("輸入的題號在題庫中不存在!\n”);
printf(“\n請重新輸入正確的題號:“);
scanf("%d“,&k);
)
printNode(Testquestions[k-l]i);
printf("\n請輸入(%d)答案:",i);getchar();
scanf("%c",&m);
getchar();
if(m==Testquestions[k-l].result){
printf("答案正確!\n”);
score++;
}
else
(
printf("答案錯誤!\n”);
最新可編輯word文檔
printf("正確答案為;%c\n",Testquestions[k-l].result);
)
)
printf("總分為:%d\n",score);
)
3.6登陸考試系統(tǒng)函數(shù)
屏幕上會顯示教師和學(xué)生兩種端口,如果過選擇學(xué)生端口將會進入登陸和注冊兩個選項,
已經(jīng)注冊過的就可以直接登陸了,反之則進行注冊。進入學(xué)生答題系統(tǒng)后可以選擇隨機答題
或者自主選題進行作答兩種方式。登陸教師窗口后,可以直接查看試題、刪除試題、修改試
題、添加試題的功能。
voidDenglu()
{
FILE*fpl;
inta,CjnumJflag=l;
inti=0;
charMima[20]="\0">b[20];
printf("\t\t\tl進入登錄\n“);
printf("\n\t\t\t2進入注冊\n”);
scanf("%d;&c);
while(flag){
if(c<l||c>2){
printf("\n請輸入壬確的選項!\n”);
scanf(”%d”,&c);
flag=l;}
else
flag=0;
}
if(c==2)
printf("請注冊:\n");
最新可編輯word文檔
Zhuce();
)
else
{
if((fpl=fopen("student.txt"/'rb"))==NULL)
{
printf(“打開文件失敗!”);
exit(0);
)
printf(“請輸入學(xué)號:“);
scanf("%d",&num);
printf(“請輸入密碼”);
while((c=getch())!='\r')
{
Mima[i]=c;
i++;
if(c!='\b,)
else
printf("\b\b");
)
rewind(fpl);
while(!feof(fpl))
{
fscanf(fpl/'%d",&a);
fscanf(fpl/'%s",&b);
if(a==num&&strcmp(b,Mima)==0)
break;
}
最新可編輯word文檔
while(a!=num||strcmp(bjMima)!=0)
{
i=0;
printf(“\n錯誤,重新輸入:\n“);
printf(“請輸入學(xué)號:“);
scanf("%d'\&num);
printf(“請輸入密碼”);
while((c=getch())!='\r')
{
Mima[i]=c;
i++;
if(c!='\b')
else
printf("\b\b");
)
rewind(fpl);
while(!feof(fpl))
{
fscanf(fpl/'%d",&a);
fscanfCfpl/^s'^&b);
if(a==num&&strcmp(bJMima)==0)
break;
}
)
printf("\t\t歡迎登陸單選題標(biāo)準(zhǔn)化考試系統(tǒng)!\n");
system("pausen);
getchar();
printf("\n");
最新可編輯word文檔
if(fclose(fpl))
{
printf("關(guān)閉文件失敗!\n”);
exit(0);
)
)
)
*源代碼
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#defineTRUE1
#defineERROR0
ttdefineMAX30
typedefintStatus;
typedefstruct{
charoptionl[30],option2[30],option3[30],option4[30],subject[150];
charresult;
intq;
}TestNode;
TestNodeTestquestions[MAX];
StatusSaveNode(int&N)〃把結(jié)構(gòu)體數(shù)組保存到文件"cheng”中,如成功保存返回TRUE,否則返回
ERROR
{inti;
FILE*fp;
最新可編輯word文檔
if((fp-fopen("cheng","wb"))—NULL)
returnERROR;
for(i=0;i<N;i++)
fwrite(&Testquestions[i],sizeof(TestNode),l,fp);
fclose(fp);
returnTRUE;
}
StatusReadNode(int&N)〃從文件讀出結(jié)構(gòu)體數(shù)組的內(nèi)容,如成功讀取返回TRUE,
否則返回ERROR
{FILE*fp;
inti=0;
if((fp=fopen("cheng","rb"))==NULL)
returnERROR;
while(!feof(fp))〃用feof檢測文件是否結(jié)束,如果結(jié)束,返回正確
{fread(&Testquestiors[i]3sizeof(TestNode),ljfp);
i++;
}
N=i-1;
returnTRUE;
}
voidZhuce()
(
voidDenglu();
inti,m;
i=0;
charn[20]="\0",c;
最新可編輯word文檔
FILE*fpl;
if((fpl=fopen("student.txt","ab"))==NULL)
{
printf(“打開文件失?。n”);
exit(0);
}
printf(“請注冊學(xué)號:”);
scanf("%d",8m);
fprintf(fpl,"%d",m);
printf("請設(shè)置密碼(20字符以內(nèi)):");
while((c=getch())!='\r')
{
n[i]=c;
i++;
if(c!='\b')
printf("*");
else
printf(H\b\b");
)
fprintf(fpl/'%s\n",n);
if(fclose(fpl))
{
printf("關(guān)閉文件失敗!\n“);
exit(0);
最新可編輯word文檔
)
printf("\n");
printf("\t\t\t注冊完成!\n");
Denglu();
}
voidDenglu()
{
FILE*fpl;
inta,c,numJflag=l;
inti=0;
charMima[20]="\0">b[20];
printf("\t\t\tl進入登錄\n");
printf("\n\t\t\t2進入注冊\n”);
scanf("%d",&c);
while(flag){
if(c<l||c>2){
printf("\n請輸入正確的選項!);
scanf(H%d",&€);
flag=l;}
else
flag=。;
}
if(c==2)
{
printf("請注冊:\n");
Zhuce();
)
else
最新可編輯word文檔
(
if((fpl=fopen("stucent.txt"rb"))==NULL)
{
printf("打開文件失??!”);
exit(0);
)
printf(“請輸入學(xué)號:”);
scanf("%d",&num);
printf("請輸入密碼”);
while((c=getch())!='\r')
{
Mima[i]=c;
i++;
if(c!='\b')
printf("*");
else
printf("\b\b");
}
rewind(fpl);
while(!feof(fpl))
(
fscanf(fpl/%d",&a);
fscanf(fpl/%s",&b);
if(a==num&&strcmp(b,Mima)==0)
break;
)
while(a!=num||strcmp(b,Mima)!=0)
最新可編輯word文檔
(
i=0;
printf(”\n錯誤,重新輸入:\n”);
printf(“請輸入學(xué)號:”);
scanf("%d”,&num);
printf(“請輸入密碼“);
while((c=getch())!='\r')
{
Mima[i]=c;
i++;
if(c!='\b')
printf("*");
else
printf("\b\b");
)
rewind(fpl);
while(Sfeof(fpl))
{
fscanf(fpl/%d",&a);
fscanf(fpl,"%s"4&b);
if(a==num&&strcmp(b>Mima)==0)
break;
}
)
printf("\t\t歡迎登陸單選題標(biāo)準(zhǔn)化考試系統(tǒng)!\n”);
system("pause");
getchar();
printf("\n");
if(fclose(fpl))
最新可編輯word文檔
(
printf("關(guān)閉文件失?。n");
exit(0);
)
}
StatusAddNode(int&N)〃添加試題內(nèi)容
{
printf("如果小添加了試題了,在題目輸入“*”結(jié)束!\n");
while(l){
printf("請輸入所要插入題題目、題干和選項:\n”);
printf("請輸入題目:");
gets(Testquestions[N].subject);
if(strcmp(Testquestions[N].subject,"*")==0)
break;
printf(”請輸入選項A:”);
gets(Testquestions[N].optionl);
printf(”請輸入選項B:”);
gets(Testquestions[N].option2);
printf(”請輸入選項C:");
gets(Testquestions[N].options);
printf(”請輸入選項D:“);
gets(Testquestions[N].option4);
最新可編輯word文檔
printf("請輸入答案;”);
scanf("%€",&Testquestions[N].result);
prin"("請輸入試題難度:”);
scanf("%d",&Testquestions[N].q);
getchar();
N++;//N表示結(jié)構(gòu)為數(shù)組長度,通過加&號使其值能返回
)
returnTRUE;
}
voidprintNode(TestNodep,intn)〃輸出第n道題題目
printf("(%d);n);
printf("%s\n",p.subject);
printf("A%sjp.optionl);
printf(B%s\n",p.option2);
printf(C%s",p.option3);
printf(D%s",p.option4);
printf("試題難度為:%d\n",p.q);
)
StatusChange(int&m){
inti;
printNode(Testquestions[m-l],m);
printf("\n");
printf("修改題目請按l\n");
printf("修改選項A請按2\n");
printf("修改選項B請按3\n");
printf("修改選項C請按4\n");
最新可編輯word文檔
prin訐(”修改選項D請按5\n");
printf("修改標(biāo)準(zhǔn)答案請按6\n");
printf("修改試題難度請按7\n");
scanf("%d",&i);
getchar();〃吸收空格字符
switch(i){
case1:printf("\n請輸入新的題目:“);
gets(Testquestions[m-1].subject);
break;
case2:printf(”請輸入新的選項A:“);
gets(Testquestions[m-1].optionl);
break;
case3:printf(”請輸入新的選項B:“);
gets(Testquestions[m-1].option2);
break;
case4:printf(“請輸入新的選項C:”);
gets(Testquestions[m-1].option3);
break;
case5:printf("請輸入新的選項D:");
gets(Testquestions[m-1].option4);
break;
case6:printf(“請輸入新的答案:");
scanf("%c",&Testquestions[m-l].result);
break;
case7:printf(”請輸入新的試題難度:”);
scanf("%d",&Testquestions[m-1].q);
break;
default:printf(“請輸入匚確的修改選項\n");break;
)
最新可編輯word文檔
returnTRUE;
StatusInsertNode(int&N){
int
printf("輸入要插入到第幾題?\n");
scanf("%d'\&i);
getchar();
N=N+1;
for(j=N-l;j>=(i-l);j--){
Testquestions[j]=Testquestions[j-1];
)
printf("請輸入題目:");
gets(Testquestions[i-1].subject);
printf(”請輸入選項A:“);
gets(Testquestions[i-1].optionl);
printf(”請輸入選項B:“);
gets(Testquestions[i-1].option?);
printf(”請輸入選項C:“);
gets(Testquestions[i-1].option3);
printf(”請輸入選項D:“);
gets(Testquestions[i-1].option4);
printf("請輸入答案:”);
scanf("%c",&Testquestions[i-1].result);
printf("請輸入試題難度
scanf("%d",&Testquestions[i-l].q);
getchar();
returnTRUE;
}
最新可編輯word文檔
StatusDeleteNode(int&N)〃刪除數(shù)組中的第n道題
{
intn;
printf("輸入你想是刪除第幾道試題:\n”);
scanf("%d“,&n);
if(n>N)
{
printf("刪除不成功\n”);
returnERROR;
}
while(n<=N)
{
Testquestions[n-1]=Testquestions[n];
n++;
}
N=N-1;
printf("刪除成功成“);
returnTRUE;
)
StatusMatch(TestNodep,charm)〃判斷m是否為p題目的答案,若是返I可TRUE,否則
返回ERROR
{
if(m==p.result)
returnTRUE;
最新可編輯word文檔
else
returnERROR;
)
voidanswer(intsum,intN)〃隨機進行答題
(
inti,score=0JNum;
charr;
for(i=l;i<=sum;i++)
{
Num=rand()%N;〃隨機函數(shù),以隨機選定何題進行解答
printNode(Testquestions[Num]i);
printf("\n");
printf("\n請輸入第(%6答案:”,i);
scanf("%c",&r);getchar();
if(Match(Testquestions[Num],r))〃調(diào)用法數(shù)Match判斷所輸入的答案與標(biāo)準(zhǔn)答案是
否相同
{printf(”\n答案正確!\n”);
score++;
)
else
printf("\n答案錯誤!\n”);
printf("正確答案為:%c\rT,Testquestions[Num].result);
)
printf("\n你的總成績?yōu)?%d\n",score);
)
voidOtheranswer(intN?ints){
最新可編輯word文檔
inti,score-0,k,j,y;
charm;
for(i=l;i<=s;i++){
printf("輸入試題難度\n");
scanf("%d",&k);
while(k<0||k>2){
printf(”題庫中沒有該難度的試題!\n”);
printf("\n請重新輸入試題難度:”);
scanf("%d"j&k);
}
for(j=0;j<N;j++){
if(y==j)
continue;
if(Testquestions[j].q==k){
printNode(Testquestions[j]ji);
printf("\n請輸入(%d)答案:",i);getchar();
scanf
getchar();
if(Match(Testquestions[j],m)){
printf("答案正確!\n“);
score++;
)
else
{
printf("答案錯誤!\n");
printf("正確答案為:%c\n",Testquestions[j].result);
)
break;
)
y=j;
)
最新可編輯word文檔
)
printf("總分為:%d\n',score);
)
voidmain()
(
charflag;
intN=0,i,sum,m,s,score=0,chose,Chose=3;
ReadNode(N);
while(Chose<l||Chose>2){
printf("\t\t\t請選擇自己的類型\n”);
printf("\t\t\tl學(xué)生端口\n”);
printf("\t\t\t2教師端口\n”);
scanf("%d",&Chose);
}
system("cls");
switch(Chose){
casel:Denglu();
system("cls");
while(l){
printf("\t\t\t單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)進行答題\n");
printf("\t\t\tl進行隨機答題并判卷\n");
printf("\t\t\t2自主選題并判卷\n");
printf("\t\t\t3退出系統(tǒng)\n“);
scanf("%d",&chose)jgetchar();
switch(chose){
casel:system("cls");
ReadNode(N);
printf(“請輸入試題的總題數(shù)
scanf("%d",&sum);getchar();
最新可編輯word文檔
i-F(N--0){
printf("對不起,題庫中沒有試題!\n”);
printf("按任意鍵回到菜單!\n“);
getchar();)
else
answer(sum,N);
getchar();
break;
case2:system("cls");
ReadNode(N);
printf(“請輸入試卷的總題數(shù):”);
scanf("%d",&s);
Otheranswer(N,s);
getchar();
break;
case3:printf("你將退出系統(tǒng)(丫orN)?");
scanf("%cH,&flag);getchar();
if(flag=='Y'||flag=='y')exit(0);
system("cis");break;
default:printf(”請輸入正確選擇!\n");
}
)
case2:printf("\t\t\t歡迎進入教師題庫管理\n");
while(l){
printf("\t\t\t單項選擇題標(biāo)準(zhǔn)化考試系統(tǒng)\n”);
printf("\n");
printf("\t\t\tl顯示所有試題內(nèi)容\n");
printf("\t\t\t2添加試題\n”);
printf("\t\t\t3修改試題\n”);
最新可編輯word文檔
printf("\t\t\t4刪除試題\n”);
printf("\t\t\t5插入試題\n“);
printf("\t\t\t6退出系統(tǒng)\n");
scanf("%d",&chose);getchar();
switch(chose){
casel:system("cls");
ReadNode(N);
if(N==0){
printf(“題庫中沒有試題!\n");
printf("按任意鍵回到菜單!\n");
getchar();}
for(i=l;i<=N;i++)
{printNode(Testquestions[i-1],i);
printf("\n");
)
break;
case2:system("cls");
ReadNode(N);
AddNode(N);
if(SaveNode(N))
printf("試題添加成功!\n");
else
printf("試題添加失??!\n");
break;
case3:system("cls");
printf(“請輸入您要修改第幾題?\n”);
ReadNode(m);
Change(m);
if(SaveNode(m))
最新可編輯word文檔
printf("修改成功\n”);
else
printf("修改失敗”);
break;
case4:system("cls");
ReadNode(N);
DeleteNode(N);
SaveNode(N);
break;
case5:system("cls");
ReadNode(N);
InsertNode(N);
if(SaveNode(N))
print千("插入試題成功\n");
else
printf("插入試題失敗\n”);
break;
case6:printf("你將退出系統(tǒng)(YorN)?");
scanf("%c",&flag);getchar();
if(flag=='Y'||flag=='y')exit(0);
system("cis");break;
default:printf(“請輸入正確選擇!\n");
)
}
}
)
最新可編輯word文檔
4調(diào)試分析
在添加函數(shù)InserlNode中,在添加試題的過程中,不知道怎么在一個循環(huán)中不斷添加試
題,最后通過在c語言書中,看到用一個作為結(jié)束標(biāo)志來結(jié)束試題的添加,用一個while
循環(huán)實現(xiàn)了添加功能。在Change函數(shù)中,在修改試題的時候,總是修改到要想修改的下一道
題,通過對代碼的不斷測試和分析,因為是數(shù)組,所以是從。開始存儲元素的,所以當(dāng)自己
輸入想要修改的題號時,在結(jié)構(gòu)數(shù)組中應(yīng)該向前面移動一項,通過修改,修改功能己經(jīng)弄好。
在進行自主選題并判題Otheranswer函數(shù)中,通過在試題庫中找到想要的題形成一套試卷
的時,完全能夠形成試題,但是在對試題進行作答時,不管是輸入正確還是錯誤答案,顯示
的結(jié)果都是“答案錯誤”,找了一天原因還是沒有解決這個問題,最后找一個同學(xué)一起討論這
個問題,當(dāng)時他也不知道這是怎么回事,他又通過調(diào)試的手段,發(fā)現(xiàn)輸入的正確答案m與所
選擇試題的標(biāo)準(zhǔn)答案不一致,在這里我們發(fā)現(xiàn)問題,我們又通過討論,發(fā)現(xiàn)是回車符的問題,
我在printf(u\n請輸入(%d)答案:”,i);這條語句后面加了getchar():結(jié)果就能正確判斷答案了,
成功的破解了這個問題。
5測試結(jié)果
5.1調(diào)試數(shù)據(jù)
(1)選擇學(xué)生窗口進行隨機答題并判題:輸入總題數(shù):2
(2)選擇教師窗口
添加試題:2*6T6二?
A:15B:1C:-4D:5正確答案:C
(3)修改試題
輸入題號:18
輸入新題目:23-19-?
A:23B:4C:5D:6正確答案:B
(4)刪除試題
刪除試題:1
(5)插入試題
插入到試題:19
12-1=?A:113:2C:3D:ll正確答案:D
最新可編輯word文檔
5.2調(diào)試結(jié)果
c\MC:\Docu>entsandSettings\Ad?inist宜t0r\桌面\考試系統(tǒng)\考試系統(tǒng)\口61)11
請輸入試題的總題數(shù):2
<1>2*3-1=?
A6B5
C4D7
請輸入第41〉答案:D
正贏咨案為:B
<2>15-14=?
A1B5
C4D3
請輸入第<2)答案"
答案正確?
你的總成績?yōu)殚T
圖5-2T隨機抽題作答
CA*C:\Docu>entsandSettingsUdMinistrator'桌面'考試系統(tǒng)'考試系統(tǒng)'
試
如
不需
題
果
了
了在題目輸入“X”結(jié)束!
入
題
請入
題
題、題干和選項;
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025福建三明市建寧縣消防救援大隊招聘消防所派駐文員1人備考題庫及一套答案詳解
- 2026四川廣安投資集團有限公司招聘9人備考題庫含答案詳解
- 2026浙江仙通機器人公司第二批招聘備考題庫及答案詳解一套
- 2026國盛證券股份有限公司總部社會招聘9人備考題庫(第一批江西)有完整答案詳解
- 2026山西忻州市郵政公司青年就業(yè)見習(xí)報名10人備考題庫完整參考答案詳解
- 2025江蘇鹽城市交通運輸局直屬事業(yè)單位選調(diào)1人備考題庫及完整答案詳解一套
- 2025吉林松原市長嶺經(jīng)濟開發(fā)區(qū)招聘專業(yè)監(jiān)管人員1人備考題庫及1套參考答案詳解
- 2025河北秦皇島市第五中學(xué)等2所學(xué)校公開招聘教師2名備考題庫(第二批)及完整答案詳解1套
- 2026中交天津航道局有限公司疏浚技術(shù)與裝備研發(fā)中心招聘1人備考題庫有完整答案詳解
- 2026中國支付清算協(xié)會招聘備考題庫及答案詳解參考
- 2026年重慶市江津區(qū)社區(qū)專職人員招聘(642人)筆試備考試題及答案解析
- 2026年思明區(qū)公開招聘社區(qū)工作者考試備考題庫及完整答案詳解1套
- 【四年級】【數(shù)學(xué)】【秋季上】期末家長會:數(shù)海引航愛伴成長【課件】
- 小學(xué)音樂教師年度述職報告范本
- 設(shè)備設(shè)施風(fēng)險分級管控清單
- 河南交通職業(yè)技術(shù)學(xué)院教師招聘考試歷年真題
- 污水管網(wǎng)工程監(jiān)理規(guī)劃修改
- (機構(gòu)動態(tài)仿真設(shè)計)adams
- 北京市社保信息化發(fā)展評估研究報告
- GB/T 8336-2011氣瓶專用螺紋量規(guī)
- GB/T 1048-2019管道元件公稱壓力的定義和選用
評論
0/150
提交評論