期末專題報告 11128137 蕭宇呈 === 內容說明 --- 將 **人員雇用程式進行修改** 1. 原程式碼說明 製作人員招募選單,可以展示以下功能: (1) Show list of positions to be hired // Show numbersin a rOW (2) Show list of already hired positions (Sort by number) (3) Show list of already hired positions (Sort by name) (4) Hire a person / Input number and name to set a position (5) Fire a person / Input number to fire a person 2. 修改程式之說明 製作一個類似的選單,讓用戶能夠查看可購買和不可購買的食物,以及訂購和取消食物訂單。 其包含以下選項: (1) Show available foods (2) Show unavailable foods (3) Order food (4) Cancel food order 後面將細節介紹。 程式架構說明 --- 這個程式碼是一個簡單的食物訂購系統,它具有以下功能: 1. **struct Food** 結構 這個結構定義了食物的屬性,包括編號 (number)、可用性 (isAvailable)、名稱 (name)、價格 (price) 和庫存量 (stock)。每個食物都用一個 struct Food 的實例來表示。 2. **showAvailableFoods** 函式 該函式用於顯示可用的食物清單。它遍歷 foods 數組並檢查每個食物的可用性。如果一個食物是可用的,它就會顯示食物的編號、名稱和價格。 3. **showUnavailableFoods** 函式 該函式用於顯示不可用的食物清單。它遍歷 foods 數組並檢查每個食物的可用性。如果一個食物是不可用的,它就會顯示食物的編號、名稱和價格。 4. **orderFood** 函式 該函式用於訂購食物。它接受用戶輸入的食物編號和名稱。然後,它檢查食物的可用性和庫存量。如果食物可用且有庫存,它將更新食物的狀態,將其設為不可用,並減少庫存量。最後,它會顯示已訂購的食物的名稱和價格。 5. **cancelFoodOrder** 函式 該函式用於取消已訂購的食物。它接受用戶輸入的食物編號。然後,它檢查食物的可用性。如果食物是已訂購的,它將更新食物的狀態,將其設為可用,並增加庫存量。 6. **Main** 函式 該函式是程式的入口點。它初始化 foods 數組,設置每個食物的屬性。然後,它進入一個循環,允許用戶選擇不同的功能。根據用戶的選擇,它調用相應的函式來顯示可用或不可用的食物清單,訂購食物或取消訂單。循環在用戶輸入 0 時結束。 結果呈現 --- ### 執行結果: **剪輯影片並使用Youtube上傳成果執行過程** 網址: -[期末成果執行過程](https://youtu.be/Y9-QLRnoTBs) (內有附帶說明) #### Header檔:food.h ![](https://hackmd.io/_uploads/rysi_Zjv2.png) #### 函式1:showAvailableFoods.c ![](https://hackmd.io/_uploads/BkX2O-own.png) #### 函式2:showUnavailableFoods.c ![](https://hackmd.io/_uploads/SyFhO-sw3.png) #### 函式3:orderFood.c ![](https://hackmd.io/_uploads/SkZau-iPh.png) #### 函式4:cancelFoodOrder.c ![](https://hackmd.io/_uploads/SkUpO-iPh.png) #### 主函式:Main.c ![](https://hackmd.io/_uploads/rJVujWsv3.png) ![](https://hackmd.io/_uploads/BJ7YoZsvn.png) 總結 --- #### What Did I Do 現代許多店家(例火鍋店、速食餐廳...等)幾乎入內都可以不用跟店員接觸,因為靠著自助點餐、線上刷卡、機器人做餐兼送餐,這因此讓我也希望做一個簡單的線上選單,他可以幫我提顧客查看可點、不可點餐點,並且查看價錢,並且還能去點餐及刪除不需要的餐點。 其中,我透過 **1.提出檔頭 2.分離函式** 的函式去使我的程式碼頁面,減少寫程式時的眼花撩亂及簡潔。 #### What Dificulties Did I Face 1. 對於建立檔頭、分離函式的不熟悉,需要去複習先前學習紀錄。 2. 對於該如何提供選單呈現的內容,需要去考慮邏輯是否正確能使消費者使用。 3. 對於該如何提供更完整系統,如庫存顯示、輸入資訊異常...等需要去更加學習精進。 #### References 1. -[王老師教學頻道](https://www.youtube.com/@user-bf2my2mc6h) 2. -[Chat GPT](https://chat.openai.com/) 一下HackMD學期學習紀錄 --- #### 本篇網址 -[期末專案網址](https://hackmd.io/@ViiAQr3WSjqUjpx4MQrN9w/中原電機_11128137蕭宇呈_計概期末專案) #### 專案學習紀錄 1. -[寫出人員招募程式(無分函式、檔頭)](https://hackmd.io/@ViiAQr3WSjqUjpx4MQrN9w/第一次) 2. -[讀檔、存檔](https://hackmd.io/@ViiAQr3WSjqUjpx4MQrN9w/第二次) 3. -[終端機使用](https://hackmd.io/@ViiAQr3WSjqUjpx4MQrN9w/第三次) #### 指標學習紀錄 1. https://hackmd.io/@ViiAQr3WSjqUjpx4MQrN9w/11128137_0508HW 2. https://hackmd.io/@ViiAQr3WSjqUjpx4MQrN9w/BykqFSDHn