- 最後登錄
- 2023-3-4
- 在線時間
- 1 小時
- 註冊時間
- 2008-9-27
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5031647
- 帖子
- 575
- 積分
- 196 點
- 潛水值
- 14681 米
| 所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。 如果是想練習C++特性的話,可以用class來做這題。
也就是說,做一個GaussNumber物件出來。
可以先定義出我們要的功能在 gauss.h 中:
- #ifndef GAUSSNUMBER
- #define GAUSSNUMBER
- #include <string>
- #define GAUSS_MAXLENGTH 6
- class GaussNumber
- {
- private:
- int N; //數字長度(允許區間:[2,GAUSS_MAXLENGTH])
- int count; //已猜次數
- char num[GAUSS_MAXLENGTH]; //亂數產生的數字放這邊
- public:
- //建構函數
- GaussNumber(int n=4);
-
- //操作
- void reset(); //重置遊戲狀態
- void gauss(std::string& g,int &A,int &B); //猜數字,將結果存在A跟B
-
- //查詢資料
- int getGaussCount(); //回傳已猜次數
- int getLength(); //回傳猜數字長度
- };
- #endif
複製代碼 然後主程式 main.cpp 就可以這樣寫:
- #include <iostream>
- #include "Gauss.h"
- int main()
- {
- int howManyShouldPick,A,B;
- std::cout<<"How many:";
- std::cin>>howManyShouldPick;
- GaussNumber G(howManyShouldPick);
- std::string myGauss;
- if(G.getLength()<0)
- {
- std::cout<<"Error";
- return 0;
- }
- do
- {
- std::cout<<"Gauss("<<G.getGaussCount()+1<<")";
- std::cin>>myGauss;
- G.gauss(myGauss,A,B);
- std::cout<<A<<'A'<<B<<"B\n";
- }while(A<howManyShouldPick);
- return 0;
- }
複製代碼 最後我們還需要把 gauss.h 中的內容實作出來
寫在 gauss.cpp 中:(這邊細節就由您來完成了)
- #include "Gauss.h"
- #include <cstdlib>
- GaussNumber::GaussNumber(int n)
- {
- //建構函數,檢查正確的 n 值,儲存在 N 後初始化
- }
- void GaussNumber::reset()
- {
- //將 count 重置
- //重新取亂數
- }
- void GaussNumber::gauss(std::string& g,int &A,int &B)
- {
- //根據輸入的資料 g 判斷有幾 A 幾 B
- }
- int GaussNumber::getGaussCount()
- {
- return count;
- }
- int GaussNumber::getLength()
- {
- return N;
- }
複製代碼
... |
|