iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
自我挑戰組

NodeJS with MongoDB專案開發系列 第 11

day 11 Node.js解決籃球命中率程式

  • 分享至 

  • xImage
  •  

我們使用node.js的程式來紀錄球員的命中率,來協助球員提高他們的命中率

首先我們使用javascript來寫

// 引入 Node.js 內建的 readline 模組,用於從命令列讀取使用者輸入
const readline = require('readline');

// 創建 readline 介面
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

// 初始化投籃次數和命中次數
let 總投籃次數 = 0;
let 命中次數 = 0;

// 提示使用者輸入投籃次數和命中次數
rl.question('請輸入總投籃次數:', (總次數) => {
  rl.question('請輸入命中次數:', (成功次數) => {
    // 將使用者輸入的字串轉換為數字
    總投籃次數 = parseInt(總次數);
    命中次數 = parseInt(成功次數);

    // 檢查使用者輸入是否有效
    if (isNaN(總投籃次數) || isNaN(命中次數)) {
      console.log('請輸入有效的數字。');
    } else if (總投籃次數 < 0 || 命中次數 < 0 || 命中次數 > 總投籃次數) {
      console.log('投籃次數和命中次數必須是非負整數,且命中次數不能超過投籃次數。');
    } else {
      // 計算命中率
      const 命中率 = (命中次數 / 總投籃次數) * 100;
      console.log(`命中率為:${命中率.toFixed(2)}%`);
    }

    // 關閉 readline 介面
    rl.close();
  });
});

這個程式會提示使用者輸入總投籃次數和命中次數,然後計算並顯示命中率。程式會檢查使用者輸入的有效性,確保投籃次數和命中次數都是非負整數,且命中次數不能超過投籃次數。
1.我們首先引入了Node.js內建的readline模組,這個模組用於處理命令列的輸入和輸出。
2. 創建一個readline介面,設定input為標準輸入(使用者的命令列輸入),output為標準輸出(顯示訊息給使用者)。
3. 初始化兩個變數總投籃次數命中次數,它們分別用於存儲使用者輸入的總投籃次數和命中次數。
4. 使用rl.question函數來向使用者發出提示,要求他們輸入總投籃次數和命中次數。這兩個提示都是非同步的,所以我們使用回調函數來處理使用者的輸入。
5. 在第一個回調函數中,我們將使用者輸入的總次數轉換為整數並存儲在總投籃次數變數中。
6. 在第二個回調函數中,我們將使用者輸入的成功次數轉換為整數並存儲在命中次數變數中。
7. 接下來,我們對使用者輸入的有效性進行檢查。我們確保總投籃次數命中次數都是有效的非負整數,並且命中次數不超過總投籃次數
8. 如果使用者輸入有效,我們計算命中率。命中率計算公式為:(命中次數 / 總投籃次數) * 100。我們將計算結果以百分比形式顯示,並使用toFixed函數將小數點後的位數限制為兩位。
9. 最後,我們使用console.log將命中率顯示給使用者。
10. 當所有操作完成後,我們使用rl.close()來關閉readline介面,結束程式的執行。


上一篇
day 10 Node.js應用程式
下一篇
day 12mongo db專案開發
系列文
NodeJS with MongoDB專案開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言