一、
課程設(shè)計(jì)的目的 ...........................................2
二、
設(shè)計(jì)的內(nèi)容與要求 .........................................2
三、
總體設(shè)計(jì) .................................................2
四、
詳細(xì)設(shè)計(jì) .................................................3
五、
調(diào)試與測(cè)試 ....................... ........................9
六、
課程設(shè)計(jì)的總結(jié) ...........................................12
七、
附錄 .....................................................13 3
在本次的課程設(shè)計(jì)中,由我和肖玉閆合作完成,我主要負(fù)責(zé)編寫(xiě)程序。
對(duì)于流程圖我主要負(fù)責(zé):產(chǎn)生隨機(jī)數(shù)函數(shù),成績(jī)判斷函數(shù),用戶輸入函數(shù),排序函數(shù),比較函數(shù)。
一、
課程設(shè)計(jì)的目的
1. 鞏固和加深學(xué)生對(duì) C 語(yǔ)言課程的基本知識(shí)的理解和掌握 2. 掌握 C 語(yǔ)言編程和程序調(diào)試的基本技能 3. 利用 C 語(yǔ)言進(jìn)行基礎(chǔ)的軟件設(shè)計(jì) 4. 提高運(yùn)用 C 語(yǔ)言解決實(shí)際問(wèn)題的能力
二、
設(shè)計(jì)的內(nèi)容與要求
1. 隨機(jī)產(chǎn)生一個(gè)五位數(shù),且沒(méi)有重復(fù)數(shù)字 2. 猜數(shù)是給出大小提示 3. 記錄猜數(shù)的次數(shù),最后給出評(píng)分
三.總體設(shè)計(jì)
(1)整個(gè)猜數(shù)游戲分為 3 個(gè)模塊:
1.開(kāi)始游戲; 2.幫助界面,介如何進(jìn)行游戲; 3.退出游戲。
(2)算法描述:
1.主函數(shù) main():清屏之后運(yùn)行 fun 函數(shù); 2.隨機(jī)數(shù)函數(shù) rn():產(chǎn)生一個(gè)沒(méi)有重復(fù)數(shù)字的五位隨機(jī)數(shù); 3.排序函數(shù) choise():對(duì)數(shù)組進(jìn)行排序; 4.用戶輸入函數(shù) input():用戶可以輸入一個(gè)五位數(shù); 5.比較函數(shù) compare():對(duì)用戶輸入的五位數(shù)與系統(tǒng)產(chǎn)生的五位數(shù)進(jìn)行比較; 6.成績(jī)函數(shù) grade():根據(jù)用戶輸入的次數(shù)進(jìn)行打分; 7.歡迎界面函數(shù) welcome():打印出一個(gè)歡迎界面; 8.選擇執(zhí)行函數(shù) fun():根據(jù)用戶的選擇來(lái)執(zhí)行對(duì)應(yīng)的功能;
四.詳細(xì)設(shè)計(jì)
數(shù)據(jù)的組織描述,系統(tǒng)控制流程圖,程序的代碼的對(duì)應(yīng)解釋。
main()函數(shù) 清屏 打印歡迎界面 getch() fun() 結(jié)束
rn 函數(shù) int b,d;long int c; unsigned long int a;int array[5] a 接收產(chǎn)生的隨機(jī)數(shù);c=a 將 c 的各個(gè)位上的數(shù)字放入數(shù)組 array[5]中 用 choise 函數(shù)對(duì) array 進(jìn)行排序 判斷 array 數(shù)組的各個(gè)數(shù)是否相同 是 return a 否 結(jié)束
choise 函數(shù)(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 否 結(jié)束
input 函數(shù)(long int a) int c=0;long int b 輸出打印相應(yīng)提示 輸出打印次數(shù):c+1; 用戶輸入五位數(shù),用 b 接收; c++; b=0? compare(a,b)=1? 否 是 是 retun c 結(jié)束 否 c>67? 給出失敗提示; gc(); 是 fun 函數(shù)
compare 函數(shù)(long int a,long int b) int c a<b? a>b? a=b? 給 出 大于提示; c=0 給 出 小于提示; c=0 給 出 等于提示; c=1 return c 結(jié)束 是 是 是 否 否 否
grade 函數(shù)(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) 根據(jù)用戶輸入次數(shù)給出提示 是 結(jié)束 否 是 否 是
五,調(diào)試與測(cè)試
調(diào)試 1. 在編程當(dāng)中,由于要書(shū)寫(xiě)大量的程序,所以經(jīng)常出現(xiàn)一些小錯(cuò)誤; 2. 對(duì)變量的定義有時(shí)會(huì)出現(xiàn)錯(cuò)誤,比如將 long int 型寫(xiě)成 int 型; 3. 最重要的是函數(shù)的應(yīng)用,函數(shù)應(yīng)該應(yīng)用得當(dāng),否則會(huì)出現(xiàn)很大的錯(cuò)誤。
測(cè)試
開(kāi)始界面:
菜單:
六. 課程設(shè)計(jì)的總結(jié)
通過(guò)這個(gè)課程設(shè)計(jì),我們更加牢固的掌握了書(shū)本上的知識(shí),并對(duì)于以前并不熟悉的知識(shí)有了更加深刻的了解。在完成此次課程設(shè)計(jì)的過(guò)程中,雖然花費(fèi)了大量的精力,但帶給我更多的收獲。C 語(yǔ)言是一門(mén)實(shí)踐課,可以說(shuō)只有自己親手操作,才能感受到他的魅力。
此次編程設(shè)計(jì)中,涉及到許多書(shū)上沒(méi)有的知識(shí),而我通過(guò)此次設(shè)計(jì)掌握了這些知識(shí)。輸入與調(diào)試程序是相當(dāng)枯燥的,但構(gòu)思和完善程序的過(guò)程是相當(dāng)有趣的,無(wú)論怎么樣,當(dāng)你親手完成了一個(gè)程序時(shí),還是相當(dāng)有成就感的。
此次任務(wù)的完成,也體現(xiàn)了同學(xué)之間的團(tuán)結(jié)精神,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),沒(méi)有實(shí)踐,就不會(huì)發(fā)現(xiàn)和深刻體會(huì)他的真實(shí)存在。只有通過(guò)檢驗(yàn)的真理,在自己的心里,才會(huì)認(rèn)可他的真實(shí)性。理論與實(shí)際的相結(jié)合才能真正把握所學(xué)和所掌握的知識(shí)。同時(shí)培養(yǎng)了我們的團(tuán)隊(duì)精神,使我們懂得了團(tuán)隊(duì)的重要性。在今后的學(xué)習(xí)工作中我們將會(huì)更好的發(fā)揮團(tuán)隊(duì)精神。
總的來(lái)說(shuō),C 語(yǔ)言是一門(mén)非常有趣的學(xué)科,可以通過(guò)人為的設(shè)計(jì)而讓電腦來(lái)輔助性的做一些機(jī)械的東西。在今后的學(xué)習(xí)過(guò)程中,我也將更加的認(rèn)真學(xué)習(xí) C 語(yǔ)言,希望能在今后完成設(shè)計(jì)出一個(gè)屬于自己的有意思的程序。
參考書(shū)目
] [1] 《標(biāo)準(zhǔn) C C 》 語(yǔ)言基礎(chǔ)教程英文版》< < 第四版 >[M], ,( ( 美) ) 布朗森著出版 社:電子工業(yè)出版社
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();
} }
推薦訪問(wèn): 語(yǔ)言 實(shí)驗(yàn) 報(bào)告同志們:今天這個(gè)大會(huì),是市委全面落實(shí)黨要管黨、從嚴(yán)治黨要求的一項(xiàng)重大舉措,也是對(duì)縣市區(qū)委書(shū)記履行基層黨建工作第一責(zé)任人情況的一次集中檢閱,同時(shí)是對(duì)全市基層黨建工作的一次再部署、再落實(shí)的會(huì)議。前面,**
***年,我認(rèn)真履行領(lǐng)班子、帶隊(duì)伍、抓黨員、保穩(wěn)定的基層黨建工作思路,以學(xué)習(xí)貫徹習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想和黨的十九大歷次全會(huì)精神為主線,以市局基層黨建工作考核細(xì)則為落腳點(diǎn),落實(shí)全面從嚴(yán)治黨主體
根據(jù)會(huì)議安排,現(xiàn)將2022年履行抓基層黨建工作職責(zé)情況報(bào)告如下:一、履職工作特色和亮點(diǎn)1 突出政治建設(shè),著力在思想認(rèn)識(shí)上提高。牢固樹(shù)立抓黨建就是抓政績(jī)的理念,以“黨建工作抓引領(lǐng)、社區(qū)治理求突破,為民服
2022年以來(lái),在**黨委的正確領(lǐng)導(dǎo)下,堅(jiān)持以習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想為指導(dǎo),深入學(xué)習(xí)宣傳貫徹黨的二十大精神,以黨建工作為統(tǒng)領(lǐng),扎實(shí)開(kāi)展夯實(shí)“三個(gè)基本”活動(dòng),以“四化四力”行動(dòng)為抓手,聚力創(chuàng)建
各位領(lǐng)導(dǎo),同志們:根據(jù)會(huì)議安排,現(xiàn)就2022年度抓基層黨建工作情況匯報(bào)如下:一、主要做法及成效(一)強(qiáng)化政治引領(lǐng)。一是不斷強(qiáng)化理論武裝。堅(jiān)持通過(guò)黨組會(huì)、中心組學(xué)習(xí)會(huì)和“三會(huì)一課”,第一時(shí)間、第一議題學(xué)
2022年度抓基層黨建工作述職報(bào)告按照黨委工作部署,現(xiàn)將本人2022年度抓基層黨建工作情況報(bào)告如下:一、2022年度抓基層黨建工作情況(一)旗幟鮮明講政治將旗幟鮮明講政治放在全局發(fā)展首要位置,積極開(kāi)展
2022年,是我在數(shù)計(jì)系黨總支書(shū)記這個(gè)新崗位上度過(guò)的第一個(gè)完整的工作年度。回首一年來(lái)在校黨委的正確領(lǐng)導(dǎo)下,與數(shù)計(jì)系領(lǐng)導(dǎo)班子和全體師生共同走過(guò)的日子,艱辛歷歷在目,收獲溫潤(rùn)心田。作為黨總支書(shū)記,我始終牢
按照考核要求,現(xiàn)將本人一年來(lái),作為統(tǒng)戰(zhàn)部長(zhǎng)履行職責(zé)、廉潔自律等方面情況報(bào)告如下:一、著眼增強(qiáng)政治素質(zhì),不斷深化理論學(xué)習(xí)堅(jiān)持把旗幟鮮明講政治作為履職從政的第一位要求,帶領(lǐng)統(tǒng)戰(zhàn)系統(tǒng)干部堅(jiān)決擁護(hù)“兩個(gè)確立”
**年,緊緊圍繞黨工委、管委會(huì)的決策部署,全體人員團(tuán)結(jié)協(xié)作、凝心聚力,緊扣黨工委“**”基本工作思路,全力開(kāi)拓進(jìn)取,認(rèn)真履職盡責(zé),圓滿完成各項(xiàng)工作任務(wù)。一、個(gè)人思想政治狀況檸檬文苑www bgzjy
按照縣委關(guān)于開(kāi)展抓基層黨建述職評(píng)議會(huì)議的有關(guān)要求,經(jīng)請(qǐng)示縣委組織部同意,今天,我們?cè)诖苏匍_(kāi)2022年度基層黨組織書(shū)記抓基層黨建述職評(píng)議會(huì)議。1 首先,請(qǐng)**黨委書(shū)記,**同志述職。**黨委能夠主動(dòng)研究