一、
課程設計的目的 ...........................................2
二、
設計的內容與要求 .........................................2
三、
總體設計 .................................................2
四、
詳細設計 .................................................3
五、
調試與測試 ....................... ........................9
六、
課程設計的總結 ...........................................12
七、
附錄 .....................................................13 3
在本次的課程設計中,由我和肖玉閆合作完成,我主要負責編寫程序。
對于流程圖我主要負責:產生隨機數函數,成績判斷函數,用戶輸入函數,排序函數,比較函數。
一、
課程設計的目的
1. 鞏固和加深學生對 C 語言課程的基本知識的理解和掌握 2. 掌握 C 語言編程和程序調試的基本技能 3. 利用 C 語言進行基礎的軟件設計 4. 提高運用 C 語言解決實際問題的能力
二、
設計的內容與要求
1. 隨機產生一個五位數,且沒有重復數字 2. 猜數是給出大小提示 3. 記錄猜數的次數,最后給出評分
三.總體設計
(1)整個猜數游戲分為 3 個模塊:
1.開始游戲; 2.幫助界面,介如何進行游戲; 3.退出游戲。
(2)算法描述:
1.主函數 main():清屏之后運行 fun 函數; 2.隨機數函數 rn():產生一個沒有重復數字的五位隨機數; 3.排序函數 choise():對數組進行排序; 4.用戶輸入函數 input():用戶可以輸入一個五位數; 5.比較函數 compare():對用戶輸入的五位數與系統產生的五位數進行比較; 6.成績函數 grade():根據用戶輸入的次數進行打分; 7.歡迎界面函數 welcome():打印出一個歡迎界面; 8.選擇執行函數 fun():根據用戶的選擇來執行對應的功能;
四.詳細設計
數據的組織描述,系統控制流程圖,程序的代碼的對應解釋。
main()函數 清屏 打印歡迎界面 getch() fun() 結束
rn 函數 int b,d;long int c; unsigned long int a;int array[5] a 接收產生的隨機數;c=a 將 c 的各個位上的數字放入數組 array[5]中 用 choise 函數對 array 進行排序 判斷 array 數組的各個數是否相同 是 return a 否 結束
choise 函數(int *num,int n) int j,k; i=1 k=num[i];j=i-1j>0&&num[i]>k? 是 num[j+1]=num[j]; j--; num[j+1]=k 否 結束
input 函數(long int a) int c=0;long int b 輸出打印相應提示 輸出打印次數:c+1; 用戶輸入五位數,用 b 接收; c++; b=0? compare(a,b)=1? 否 是 是 retun c 結束 否 c>67? 給出失敗提示; gc(); 是 fun 函數
compare 函數(long int a,long int b) int c a<b? a>b? a=b? 給 出 大于提示; c=0 給 出 小于提示; c=0 給 出 等于提示; c=1 return c 結束 是 是 是 否 否 否
grade 函數(int num) int grade=o num<4? num<8? num<68? grade=100-10*(num-1) grade=80-5*(num-4) grade=60-(num-7) 根據用戶輸入次數給出提示 是 結束 否 是 否 是
五,調試與測試
調試 1. 在編程當中,由于要書寫大量的程序,所以經常出現一些小錯誤; 2. 對變量的定義有時會出現錯誤,比如將 long int 型寫成 int 型; 3. 最重要的是函數的應用,函數應該應用得當,否則會出現很大的錯誤。
測試
開始界面:
菜單:
六. 課程設計的總結
通過這個課程設計,我們更加牢固的掌握了書本上的知識,并對于以前并不熟悉的知識有了更加深刻的了解。在完成此次課程設計的過程中,雖然花費了大量的精力,但帶給我更多的收獲。C 語言是一門實踐課,可以說只有自己親手操作,才能感受到他的魅力。
此次編程設計中,涉及到許多書上沒有的知識,而我通過此次設計掌握了這些知識。輸入與調試程序是相當枯燥的,但構思和完善程序的過程是相當有趣的,無論怎么樣,當你親手完成了一個程序時,還是相當有成就感的。
此次任務的完成,也體現了同學之間的團結精神,實踐是檢驗真理的唯一標準,沒有實踐,就不會發現和深刻體會他的真實存在。只有通過檢驗的真理,在自己的心里,才會認可他的真實性。理論與實際的相結合才能真正把握所學和所掌握的知識。同時培養了我們的團隊精神,使我們懂得了團隊的重要性。在今后的學習工作中我們將會更好的發揮團隊精神。
總的來說,C 語言是一門非常有趣的學科,可以通過人為的設計而讓電腦來輔助性的做一些機械的東西。在今后的學習過程中,我也將更加的認真學習 C 語言,希望能在今后完成設計出一個屬于自己的有意思的程序。
參考書目
] [1] 《標準 C C 》 語言基礎教程英文版》< < 第四版 >[M], ,( ( 美) ) 布朗森著出版 社:電子工業出版社
2006年
附錄:
程序清單 #include <stdio.h> #include <math.h> #include <stdlib.h> #include <time.h> int i; long int rn(); void fun(); void gc(); int input(long int); void grade(int); int welcome(); int compare(long int,long int); void choise(int *,int);
void main() {
system("cls");
printf("\n\n\n\t\t* * * * * * * * welcome * * * * * * * *");
printf("\n\n\n");
printf("\t\t\tmaker: xiachao
xiaoyuyan");
printf("\n\n\n\t\t\tuse enter to be continue");
getch();
fun(); }
void fun() {
int b,s,g;
long int a;
system("cls");
s=welcome();
if(s==1)
{
system("cls");
a=rn();
b=input(a);
grade(b);
gc();
}
if(s==2)
{
system("cls");
printf("\n\n\n\n\n");
printf("\t ---------------------------------------------------------\n");
printf("\t|game rules:
|\n");
printf("\t|
|\n");
printf("\t|input your number(10000--99999),it will compare to the
|\n");
printf("\t|
|\n");
printf("\t|system"s number(10000--99999),and the number doesn"t have|\n");
printf("\t|
|\n");
printf("\t|same digit.
|\n");
printf("\t|
|\n");
printf("\t|if your number as same as system,your win,else try again.|\n");
printf("\t|
|\n");
printf("\t ---------------------------------------------------------");
gc();
}
if(s==3)
{
printf("\n\n\t\t\tThanks for your using.\n");
printf("\t\t\t\tBye Bye!");
getch();
exit(0);
} }
long int rn() {
int b,d;
long int c;
unsigned long int a;
int array[5];
time_t t;
time(&t);
srand(t);
loop1:a=10000+rand() % 90000;
c=a;
for(i=0;i<5;i++)
{
array[i]=c%10;
c=c/10;
}
choise(array,5);
b=array[0];
for(i=1;i<5;i++)
{
if(b==array[i])
goto loop1;
else
b=array[i];
}
return a; }
void choise(int *num,int n) {
int j,k;
for(i=1;i<n;i++)
{
k=num[i];
j=i-1;
while((j>=0)&&(num[j]>k))
{
num[j+1]=num[j];
j--;
}
num[j+1]=k;
} }
int compare(long int a,long int b) {
int c;
if(a>b)
{
printf("\t\t\tneed greater!");
printf("( >%ld )\n",b);
c=0;
}
if(a<b)
{
printf("\t\t\tneed less!");
printf("( <%ld )\n",b);
c=0;
}
if(a==b)
{
printf("\t\t\tIt"s true!\n");
c=1;
}
return c; }
int input(long int a) {
int c=0;
long int b;
printf("\n\n\n\n\n");
printf("\t\t\tplease input your number:\n");
printf("\t\t\tinput 0 back to main menu.");
loop2:printf("\n\t\t\ttimes %d:",c+1);
scanf("%ld",&b);
c++;
if(c>67)
{
printf("\t\tyou are lose!");
gc();
}
if(b==0)
fun();
else
if(compare(a,b)!=1) goto loop2;
return c; }
void grade(int num) {
int grade=0;
printf("\t\t\tyou use %d times\n",num);
if(num<4)
grade=100-10*(num-1);
else if(num<8)
grade=80-5*(num-3);
else if(num<68)
grade=60-(num-7);
printf("\t\t\tyour grade is %d",grade);
switch(num)
{
case 1:printf("\tyou are so lucky!!!");
break;
case 2:case 3:case 4:printf("\tlucky!");
break;
case 5:case 6:case 7:case 8:case 9:printf("\tgreat!");
break;
case 10:case 11:case 12:case 13:case 14:case 15:case 16:
printf("\tgood!");
break;
case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:
printf("\tjust so so.");
break;
default:
printf("\tmaybe you can better.");
} }
int welcome() {
int s;
printf("\n\n\n\n");
printf("\t\t********************************************\n");
printf("\t\t*
*\n");
printf("\t\t*
welcome paly the game!
*\n");
printf("\t\t*
*\n");
printf("\t\t* input 1: start the game
*\n");
printf("\t\t* input 2: help information
*\n");
printf("\t\t* input 3: quit the game
*\n");
printf("\t\t********************************************\n");
printf("\t\tplease select: ");
scanf("%d",&s);
return s; } void gc() {
int a;
printf("\n\n\t\tinput 1: quit the game;\tinput 2: back to menu.\n");
printf("\n\t\tplease select : ");
scanf("%d",&a);
if(a==1)
exit(0);
if(a==2)
{
system("cls");
fun();
}
if(a!=1&&a!=2)
{
printf("\t\tinput error!check your input!\n\n");
gc();
} }
推薦訪問: 語言 實驗 報告上一篇:稅務系統干部述職述廉報告2020
下一篇:數據挖掘WEKA實驗報告
同志們:今天這個大會,是市委全面落實黨要管黨、從嚴治黨要求的一項重大舉措,也是對縣市區委書記履行基層黨建工作第一責任人情況的一次集中檢閱,同時是對全市基層黨建工作的一次再部署、再落實的會議。前面,**
***年,我認真履行領班子、帶隊伍、抓黨員、保穩定的基層黨建工作思路,以學習貫徹習近平新時代中國特色社會主義思想和黨的十九大歷次全會精神為主線,以市局基層黨建工作考核細則為落腳點,落實全面從嚴治黨主體
根據會議安排,現將2022年履行抓基層黨建工作職責情況報告如下:一、履職工作特色和亮點1 突出政治建設,著力在思想認識上提高。牢固樹立抓黨建就是抓政績的理念,以“黨建工作抓引領、社區治理求突破,為民服
2022年以來,在**黨委的正確領導下,堅持以習近平新時代中國特色社會主義思想為指導,深入學習宣傳貫徹黨的二十大精神,以黨建工作為統領,扎實開展夯實“三個基本”活動,以“四化四力”行動為抓手,聚力創建
各位領導,同志們:根據會議安排,現就2022年度抓基層黨建工作情況匯報如下:一、主要做法及成效(一)強化政治引領。一是不斷強化理論武裝。堅持通過黨組會、中心組學習會和“三會一課”,第一時間、第一議題學
2022年度抓基層黨建工作述職報告按照黨委工作部署,現將本人2022年度抓基層黨建工作情況報告如下:一、2022年度抓基層黨建工作情況(一)旗幟鮮明講政治將旗幟鮮明講政治放在全局發展首要位置,積極開展
2022年,是我在數計系黨總支書記這個新崗位上度過的第一個完整的工作年度。回首一年來在校黨委的正確領導下,與數計系領導班子和全體師生共同走過的日子,艱辛歷歷在目,收獲溫潤心田。作為黨總支書記,我始終牢
按照考核要求,現將本人一年來,作為統戰部長履行職責、廉潔自律等方面情況報告如下:一、著眼增強政治素質,不斷深化理論學習堅持把旗幟鮮明講政治作為履職從政的第一位要求,帶領統戰系統干部堅決擁護“兩個確立”
**年,緊緊圍繞黨工委、管委會的決策部署,全體人員團結協作、凝心聚力,緊扣黨工委“**”基本工作思路,全力開拓進取,認真履職盡責,圓滿完成各項工作任務。一、個人思想政治狀況檸檬文苑www bgzjy
按照縣委關于開展抓基層黨建述職評議會議的有關要求,經請示縣委組織部同意,今天,我們在此召開2022年度基層黨組織書記抓基層黨建述職評議會議。1 首先,請**黨委書記,**同志述職。**黨委能夠主動研究