《c語言實驗報告.doc》由會員分享,可在線閱讀,更多相關(guān)《c語言實驗報告.doc(11頁珍藏版)》請在裝配圖網(wǎng)上搜索。
實驗名稱
小學(xué)生計算機輔助教學(xué)系統(tǒng)
學(xué)校
學(xué)院
專業(yè)
指導(dǎo)教師
范江波
實驗人
姓名
學(xué)號
程序功能
幫助小學(xué)生通過計算機學(xué)習(xí)乘法,提高效率,并及時發(fā)現(xiàn)錯誤,改正錯誤,通過不斷的練習(xí),提高小學(xué)生的算數(shù)水平
要求
(1)整個系統(tǒng)均用C語言實現(xiàn);
(2)程序設(shè)計計量清晰明了;
(3)系統(tǒng)具有輸入、顯示、提示和修改基本功能;
(4)系統(tǒng)的各個功能模塊都用函數(shù)的形式來實現(xiàn)
C語言程序設(shè)計報告
日期:2222年11月2日
程序主要內(nèi)容
任務(wù)1. 程序首先隨機產(chǎn)生一到十之間的正整數(shù),在屏幕上打印出問題,例如6*7=?然后讓學(xué)生輸入答案,序檢查學(xué)生輸入的答案是否正確,若正確,則“RIGHT”,然后問下一個問題,否則打印“WRONG,PLEASE TRY AGAIN”,然后提示學(xué)生重做,直到答對為止。
程序如下:
#include
#include
#include
int Magic(int x);
int Answer();
main()
{
int guess,answer,counter=1;
do{
printf("%d*%d=",Magic(1),Magic(2));
answer=Magic(1)*Magic(2);
if(Answer()==answer)
{
printf("Right\n");
break;
}
else
printf("Wrong!,please try again\n");
}while(counter>=1);
}
int Magic(int m)
{
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
任務(wù)2:在(1)的基礎(chǔ)上,當(dāng)學(xué)生回答錯誤時,最多給三次重做的機會。
:程序如下:
#include
#include
#include
int Magic(int x);
int Answer();
int Exam();
main()
{
int n;
n=Exam();
if(n==0) printf("Right\n");
else if(n==1) printf("Wrong!You have tried three times!Test over\n ");
}
int Magic(int m)
{
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
int Exam()
{
int guess,answer,counter=1;
do{
printf("%d*%d=",Magic(1),Magic(2));
answer=Magic(1)*Magic(2);
counter++;
if(Answer()==answer)
return 0;
else if(counter<=3)
printf("Wrong! please try again\n");
}while(counter<=3); return 1;
任務(wù)3:在(1)的基礎(chǔ)上,連續(xù)做10道乘法運算題,不給機會重做,若學(xué)生回答正確,提示“RIGHT”,否則提示“WRONG”,并按每題10分輸出總分,再輸出正確概率。
程序如下:
#include
#include
#include
int Magic(int x);
int Answer();
int Exam();
main()
{
printf("rate=%d%%\n",Exam());
}
int Magic(int m)
{
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
int Exam()
{
int answer,counter=1;
int i=0;
do
{
printf("%d*%d=",Magic(1),Magic(2));
answer=Magic(1)*Magic(2);
counter++;
if(Answer()==answer)
{
printf("Right!\n");
i++;
}
else
printf("Wrong!\n");
}while(counter<=10);
i=i*10;
return i;
}
任務(wù)4:
在(3)的基礎(chǔ)上,隨機產(chǎn)生10道四則運算題,運算類型為隨機的加減乘除任意一種,不給機會重做,
若學(xué)生回答正確,提示“RIGHT”,否則提示“WRONG”,并按每題10分輸出總分,再輸出正確概率。
程序如下:
#include
#include
#include
int Magic(int x);
int Answer();
int Exam();
main()
{
printf("rate=%d%%\n",Exam()*10);
}
int Magic(int m)
{
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
int Exam()
{
int counter=1,answer,i=0;
char a;
do
{
srand(time(NULL));
END:a=rand()%100+1;
if(a==43)
{ printf("%d%c%d=",Magic(1),a,Magic(2));
answer=Magic(1)+Magic(2);
}
else if(a==45)
{printf("%d%c%d=",Magic(1),a,Magic(2));
answer=Magic(1)-Magic(2);
}
else if(a==42)
{ printf("%d%c%d=",Magic(1),a,Magic(2));
answer=Magic(1)*Magic(2);
}
else if(a==47)
{ printf("%d%c%d=",Magic(1),a,Magic(2));
answer=Magic(1)/Magic(2);
}
else goto END;
counter++;
if(Answer()==answer)
{
printf("Right!\n");
i++;
}
else
printf("Wrong!\n");
}while(counter<=10);
return i;
任務(wù)5:在(4)的基礎(chǔ)上,在學(xué)生完成10道題后,若正確率低于75%,則重新做10道,知道高于75%.
程序如下:
#include
#include
#include
int Magic(int x);
int Answer();
int Makeop();
void Comment(int x);
main()
{ int rate;
LI: rate=Makeop()*10;
printf("rate=%d%%\n",rate);
if(rate<75)
{ printf("Right rate is too low,Again!\n");
goto LI; }
}
int Magic(int m)
{
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Makeop()
{
int counter=1,answer,i=0,a;
char op;
do
{
srand(time(NULL));
END:a=rand()%4+1;
if(a==1)
{ op=43;
answer=Magic(1)+Magic(2);
}
else if(a==2)
{ op=45;
answer=Magic(1)-Magic(2);
}
else if(a==3)
{ op=42;
answer=Magic(1)*Magic(2);
}
else if(a==4)
{ op=47;
answer=Magic(1)/Magic(2);
}
else goto END;
printf("%d%c%d=",Magic(1),op,Magic(2));
counter++;
if(Answer()==answer)
{
Commen(1);
i++;
}
else
Commen(2);
}while(counter<=10);
return i;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
void Comment(int x)
{
int x,y;
srand(time(NULL));
x=rand()%4+1;
y=rand()%4+1;
if(x==1)
{
switch(x)
{
case 1:
printf("Very good!\n");
break;
case 2:
printf("Excellent!\n");
break;
case 3:
printf("Nice work!\n");
break;
case 4:
printf("Keep up the good work!\n");
break;
}
}
else
{
switch(y)
{
case 1:
printf("No. Please try again!\n");
break;
case 2:
printf("Wrong. Try once more!\n");
break;
case 3:
printf("Dont give up!\n");
break;
case 4:
printf("Not correct. Keep trying!\n");
break;
}
}
}
任務(wù)6:在(5)的基礎(chǔ)上,隨機產(chǎn)生一個1到4之間的隨機數(shù),配合使用switch語句,printf()函數(shù)調(diào)用,來為學(xué)生輸入的每一個答案輸出不同的評價。
程序如下:
. #include
#include
#include
int Magic(int m);
int Answer();
int Makeop();
void Comment(int r);
main()
{ int rate;
LI: rate=Makeop()*10;
printf("rate=%d%%\n",rate);
if(rate<75)
{ printf("Right rate is too low,Again!\n");
goto LI; }
}
int Magic(int m)
{
int x,int y;
srand(time(NULL));
x=rand()%10+1;
y=rand()%10+1;
if(m==1) return x;
if(m==2) return y;
}
int Makeop()
{
int counter=1,answer,i=0,a;
char op;
do
{
srand(time(NULL));
END:a=rand()%4+1;
if(a==1)
{ op=43;
answer=Magic(1)+Magic(2);
}
else if(a==2)
{ op=45;
answer=Magic(1)-Magic(2);
}
else if(a==3)
{ op=42;
answer=Magic(1)*Magic(2);
}
else if(a==4)
{ op=47;
answer=Magic(1)/Magic(2);
}
else goto END;
printf("%d%c%d=",Magic(1),op,Magic(2));
counter++;
if(Answer()==answer)
{
Comment(1);
i++;
}
else
Comment(2);
}while(counter<=10);
return i;
}
int Answer()
{
int n;
scanf("%d",&n);
return n;
}
void Comment(int r)
{
int x,y;
srand(time(NULL));
x=rand()%4+1;
y=rand()%4+1;
if(r==1)
{
switch(x)
{
case 1:
printf("Very good!\n");
break;
case 2:
printf("Excellent!\n");
break;
case 3:
printf("Nice work!\n");
break;
case 4:
printf("Keep up the good work!\n");
break;
}
}
else
{
switch(y)
{
case 1:
printf("No. Please try again!\n");
break;
case 2:
printf("Wrong. Try once more!\n");
break;
case 3:
printf("Dont give up!\n");
break;
case 4:
printf("Not correct. Keep trying!\n");
break;
}
}
}
實驗體會
通過近兩個月的學(xué)習(xí),C語言給我的感觸良多!很多同學(xué)都覺得痛并快樂著,但是我總是覺得是在煎熬著,因為對我來說這是一門全新的語言,一門嶄新的知識.我需要用盡全力才能把它學(xué)好!
剛剛接觸到C語言,完全弄不懂這個的什么東東!!!不清楚為什么要這樣寫、有什么規(guī)則、格式、更別說什么函數(shù)的字符了!當(dāng)時真自己什么都不知道,感覺比PIG還笨,真是有夠郁悶的!當(dāng)時真的不知所措,都曾考慮過是不是來這學(xué)來錯兩了、自己真的能學(xué)好嗎?我不時的問自己……
剛開始上課時,老師舉了一個很簡單的程序(對于現(xiàn)在的我來說)——就是輸出“學(xué)員們,大家好”這句話,我看見這個時當(dāng)時就想起了TE曾說過的批處理,由于不懂C語言,感覺這兩個好象,但是又覺的C更難一點,覺得完蛋了,因為當(dāng)時就覺得批處理有點難,不太會弄,現(xiàn)在這個更難…迷?!?
但是經(jīng)過一段時間的學(xué)習(xí),慢慢的對C語言有點感覺了,覺的它并沒有我想象中的那么難(可能是我學(xué)的淺,哈哈),再加上老師和同學(xué)的幫助,使我對C語言有了更深的體會。我現(xiàn)在不僅能寫一些不太復(fù)雜的程序,還基本上能看懂別的同學(xué)們寫的程序,這一點真的使我開心不已。你要知道,從一個完全不懂——到現(xiàn)在能有基礎(chǔ)和同學(xué)一起交流——到自己完成一個程序——到明白,這么一個過程是多么的快樂,怎是一個“爽”字了的?。?!
當(dāng)然學(xué)習(xí)中是有很多困難的,大多數(shù)小的困難我都一一克服了,覺得自己還不錯,但是學(xué)到真正困難的數(shù)組、指針、結(jié)構(gòu)體的時候,我被它們所征服過,敵人實在太兇殘了!起初同學(xué)們都說它們難還沒有什么感覺,現(xiàn)在始終嘗到滋味了!最讓我感覺失敗也是最失落的一次是在做小學(xué)生計算機系統(tǒng)教學(xué)輔助系統(tǒng)的程序時,要用到函數(shù)調(diào)用、結(jié)構(gòu)體等知識點時,真的不知道怎么將它們運用到自己的程序里去??匆妱e的同學(xué)都做的七七八八,再看看自己做的七零八落,心里真是著急。本來打算在下午上機搞定,但是一開機看著自己七零八落的程序,氣就不打一處來,馬上關(guān)機-拎包-走人。這一刻我被兇殘的敵人俘虜了!
回到宿舍,把書本的知識重新復(fù)習(xí)了一遍,由于信心拾了回來,學(xué)的很快,看了幾遍,書里的知識已能完全掌握了,特別是書里的程序都能讀明白!第二天,重新披馬上陣,這次準(zhǔn)備充足,終把兇殘的攔路虎給干掉了!開心……
通過學(xué)習(xí),又使我基本掌握了一個新的知識,特別是學(xué)習(xí)的經(jīng)歷,其間遇到的困難和怎么樣克服困難,都成了我寶貴的財富!當(dāng)然,還要感謝老師和同學(xué)們的幫助,在我最茫然的時候,幫我重拾信心。
在今后的學(xué)習(xí)中,我會好好利用這些寶貴的財富,在學(xué)習(xí)的道路上披荊斬棘,為成為一位成功的程序員不懈努力?。?!
鏈接地址:http://m.jqnhouse.com/p-6562438.html