設計目的
1、加深學生對該課程基礎知識和基本理論的理解和掌握,培養學生綜合運用所學知識獨立
分析和解決問題的能力;
2、培養學生在計算機軟硬件開發、理論計算、查閱資料等方面的能力,使學生逐步樹立正
確的設計思想;
3、加強理論聯系實際,培養學生科學嚴謹、實事求是的工作作風和勇于探索的創新精神。
任務描述
為了提高學生編程能力,請設計一款人機猜數游戲程序。該程序主要功能要求如下:
1、游戲開始時,先由計算機“想”一個四位數,然后讓人猜這個四位數是多少。
猜數時,計算機先判斷輸入的四位數猜對幾個數字,并且在猜對的這些數字中有幾個位置是對的,將統計情況顯示出來供猜數人參考;猜數人可據此提示繼續猜數,直到猜對為止。2、猜對后,計算機顯示本輪猜數一共猜了幾次以及獲得的分數;
分數計算公式如下:
次數<=3 計100分
5<次數<=10 計60分
3<次數<=5 計80分
10<次數計0分
3、一輪猜數游戲結束后,可重復玩,直到不想再玩為止:
4、開始每輪猜數游戲時,要保證計算機“想”的數和前面“想”的數不同;
5、游戲結束后,可查看每輪猜數歷史記錄(顯示每次計算機“想”的數,人猜數所用次數
和得分)
設計要求
1、要求按照分析、設計、編碼、調試和測試的軟件開發過程獨立完成本任務;
2、應用模塊化編程思想。系統的各項功能分別用函數編寫,并通過主函數調用實現其所有功
能。
3、系統完成的各項功能要求設計成一個菜單。開始運行程序時,先顯示主菜單,然后用戶通過菜單項選擇操作完成相應操作。例如以下菜單形式:猜數游戲查看歷史2竹退出系統請選擇[11213]:
源碼
void display_menu()
{
? ? puts("1、猜數游戲");
? ? puts("2、查看歷史");
? ? puts("3、退出系統");
? ? puts("請選擇[1/2/3]: ");
}
int get_choise()
{
? ? int i;
? ? CLS;
? ? display_menu();
? ? scanf("%d", &i);
? ? CLS;
? ? return i;
}
void game()
{
? ? int flag = 1;
? ? while (flag)
? ? {
? ? ? ? int num = get_random();
? ? ? ? int step = 0;
? ? ? ? puts("我準備好了一個數字,快來猜猜看吧!");
? ? ? ? int g_num = -1;
? ? ? ? while (g_num != num)
? ? ? ? {
? ? ? ? ? ? if (g_num != -1)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? printf(g_num > num ? "大了" : "小了");
? ? ? ? ? ? }
? ? ? ? ? ? step++;
? ? ? ? ? ? puts("請輸入數字:");