iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
自我挑戰組

NodeJS with MongoDB專案開發系列 第 15

day 15 node.js飯店營運管理

  • 分享至 

  • xImage
  •  

飯店運營需要許多人力來完成運營,因此一個良好成好的node.js程式就能作為有效管理的工具

  • 添加客房:使用者可以輸入客房號碼,然後將其添加到客房列表中。
  • 預訂客房:使用者可以輸入客房號碼,如果客房存在並且尚未被預訂,則將其標記為已預訂。
  • 查看客房列表:程式將列出所有客房,顯示它們的狀態(可用或已預訂)。
  • 退出程式:使用者可以選擇退出程式。
    使用 readline 模組創建一個簡單的命令行界面,用戶可以通過終端輸入命令。
    客房號碼和預訂信息分別存儲在名為 rooms 和 reservations 的陣列中。
    程式首先顯示主菜單,列出上述的四個選項。
    使用者可以通過輸入對應的數字來選擇功能,然後程序會根據選擇執行相應的功能。
    將新的客房添加到 rooms 陣列,或者將客房標記為已預訂,並在需要時列出客房信息。
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

const rooms = []; // 用於存儲客房號碼的陣列
const reservations = []; // 用於存儲已預訂客房的陣列

function displayMenu() {
  console.log('歡迎來到酒店管理系統');
  console.log('1. 添加客房');
  console.log('2. 預訂客房');
  console.log('3. 查看客房列表');
  console.log('4. 退出');
}

function addRoom() {
  rl.question('請輸入客房號碼: ', (roomNumber) => {
    rooms.push(roomNumber); // 添加客房號碼到客房陣列
    console.log(`客房 ${roomNumber} 已添加`);
    displayMenu();
    selectOption();
  });
}

function bookRoom() {
  rl.question('請輸入客房號碼以預訂: ', (roomNumber) => {
    if (rooms.includes(roomNumber)) {
      reservations.push(roomNumber); // 標記客房為已預訂
      console.log(`客房 ${roomNumber} 已預訂`);
    } else {
      console.log(`客房 ${roomNumber} 不存在`);
    }
    displayMenu();
    selectOption();
  });
}

function listRooms() {
  console.log('客房列表:');
  for (const room of rooms) {
    const status = reservations.includes(room) ? '已預訂' : '可用';
    console.log(`客房號碼: ${room}, 狀態: ${status}`);
  }
  displayMenu();
  selectOption();
}

function selectOption() {
  rl.question('請選擇一個選項 (1/2/3/4): ', (option) => {
    switch (option) {
      case '1':
        addRoom();
        break;
      case '2':
        bookRoom();
        break;
      case '3':
        listRooms();
        break;
      case '4':
        console.log('感謝使用酒店管理系統,再見!');
        rl.close();
        break;
      default:
        console.log('無效選項,請重新選擇');
        displayMenu();
        selectOption();
        break;
    }
  });
}

displayMenu();
selectOption();

上一篇
day 14 Node.js with Mongo DB專案開發
下一篇
day 16 Node.js with Mongo DB開發
系列文
NodeJS with MongoDB專案開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言