返回列表 發帖

[專題實作] 超級金頭腦 (二)

本帖最後由 葉桔良 於 2022-10-29 16:58 編輯

備註:若課堂上未能完成,當作業!

設計遊戲 "超級金頭腦",
讓使用者計算兩個範圍介於51~99之隨機亂數的和.
參考作法如下:

1. 要有一個起始畫面, 顯示標題與遊戲規則


2. 參賽人數


3. 參賽者姓名


4. 請就位的訊息


5. 測驗中畫面


6. 排名
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4. using namespace std;
  5. int main()
  6. {
  7.         int people;  //設定人數
  8.         srand(time(NULL));
  9.         cout<<"*** 超級金頭腦 v1.0 ***"<<endl<<endl;
  10.     cout<<"遊戲規則: 電腦隨機出題, 比賽誰能在最短的時間內算對三題!"<<endl<<endl;
  11.     cout<<"有幾位挑戰者? ";
  12.     cin>>people;
  13.     string name[people];
  14.     int time[people];
  15.         for(int i=0;i<people;i++)
  16.         {
  17.                 system("cls");
  18.                 cout<<"第 "<<i+1<<" 位挑戰者你好, 請輸入你的大名: ";
  19.                 cin>>name[i];       
  20.                 cout<<name[i]<<"同學請就位!";
  21.                 system("pause");
  22.                 system("cls");
  23.                 int right=0;
  24.                 int answer;                    // 使用者輸入的答案
  25.                 time[i] = 0;
  26.                 while(right<3)
  27.         {
  28.             int x=rand()%49+51;        // 設定題目_被加數
  29.             int y=rand()%49+51;        // 設定題目_加數  
  30.             int ans_c=x+y;             // 正確答案
  31.             cout<<x<<" + "<<y<<" = ";  // 顯示題目
  32.             int t1=clock();
  33.             cin>>answer;
  34.             int t2=clock();
  35.             int pass=t2-t1;
  36.             if(answer==ans_c)
  37.             {
  38.                 cout<<"答對了! 本題花了"<<pass<<"毫秒思考!"<<endl;
  39.                 right = right + 1;
  40.                         }
  41.                         else
  42.                 cout<<"答錯了! "<<"正確答案是. "<<ans_c<<"本題花了"<<pass<<"毫秒思考!"<<endl;  
  43.             time[i] = time[i] + pass;   
  44.                         cout<<endl;
  45.         }
  46.         cout<<name[i]<<"同學總共花了"<<time[i]<<"秒!"<<endl;
  47.         }
  48.         for(int i=0;i<people-1;i++)
  49.         {
  50.             for(int j=i+1;j<people;j++)       
  51.             {
  52.                     if(time[i]>time[j])
  53.                     {
  54.                             string tmp1 = name[i];
  55.                             name[i] = name[j];
  56.                             name[j] = tmp1;
  57.                             int tmp2 = time[i];
  58.                             time[i] = time[j];
  59.                             time[j] = tmp2;
  60.                         }
  61.                 }
  62.         }
  63.         for(int i=0; i<people; i++)
  64.         cout<<"第"<<i+1<<"名\t"<<name[i]<<"\t"<<time[i]<<"毫秒"<<endl;
  65.     cout<<endl;
  66.     system("pause");
  67.     return 0;
  68. }
複製代碼
本帖隱藏的內容需要回復才可以瀏覽

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

返回列表