👉博__主👈:米碼收割機
👉技__能👈:C++/Python語言
👉公眾號👈:測試開發自動化【獲取源碼+商業合作】
👉榮__譽👈:阿里云博客專家博主、51CTO技術博主
👉專__注👈:專注主流機器人、人工智能等相關領域的開發、測試技術。
系列文章目錄
目錄
- 系列文章目錄
- 一、設計要求
- 二、運行結果
- 2.1 添加設備
- 2.2 顯示設備信息
- 2.3 查詢設備信息—設備名稱
- 2.4 查詢設備信息—部門
- 2.5 設備排序
- 2.6 退出系統
- 代碼分析
一、設計要求
-
功能描述:
- 設備管理系統用于管理公司或組織的各種設備信息,包括設備的編號、名稱、領用人、所屬部門、數量、購買時間和價格等。
- 功能包括顯示所有設備信息、查詢設備信息、添加設備、刪除設備和排序設備。
-
數據存儲:
- 設備信息應該以結構體數組的形式存儲在內存中,每個結構體包含一個設備的所有信息。
- 設備信息應該可以從文件中加載,并且在程序運行期間對設備信息的修改應該能夠保存到文件中。
-
界面設計:
- 系統應該提供一個菜單界面,用于用戶選擇不同的功能。
- 菜單應該清晰明了,包括顯示所有設備信息、查詢設備信息、添加設備、刪除設備、排序設備和退出系統等選項。
👉👉👉 源碼獲取 關注【測試開發自動化】公眾號,回復 “設備” 獲取。👈👈👈
-
功能設計:
-
顯示所有設備信息:將所有設備的信息按照指定格式顯示在屏幕上。
-
查詢設備信息:用戶可以選擇按設備名稱或所屬部門進行查詢,查詢結果應該顯示所有符合條件的設備信息。
-
添加設備:用戶可以逐步輸入新設備的各項信息,系統應該能夠將新設備添加到設備列表中。
-
刪除設備:用戶輸入要刪除的設備編號,系統應該能夠根據編號刪除對應的設備信息。
-
排序設備:根據購買時間對設備信息進行排序,排序結果應該按照購買時間的先后順序顯示。
👉👉👉 源碼獲取 關注【測試開發自動化】公眾號,回復 “設備” 獲取。👈👈👈
-
二、運行結果
2.1 添加設備
2.2 顯示設備信息
👉👉👉 源碼獲取 關注【測試開發自動化】公眾號,回復 “設備” 獲取。👈👈👈
2.3 查詢設備信息—設備名稱
2.4 查詢設備信息—部門
👉👉👉 源碼獲取 關注【測試開發自動化】公眾號,回復 “設備” 獲取。👈👈👈
2.5 設備排序
2.6 退出系統
👉👉👉 源碼獲取 關注【測試開發自動化】公眾號,回復 “設備” 獲取。👈👈👈
代碼分析
-
數據結構:
-
代碼中使用了結構體
Device
來表示設備信息,包括設備編號、名稱、領用人、所屬部門、數量、購買時間和價格等字段。 -
設備信息以結構體數組
devices
的形式存儲,同時用整型變量device_count
記錄當前設備數量。typedef struct {int id;char name[50];char owner[50];char department[50];int quantity;char purchase_date[20];double price; } Device;
👉👉👉 源碼獲取 關注【測試開發自動化】公眾號,回復 “設備” 獲取。👈👈👈
-
-
文件操作:
-
load_devices_from_file
函數用于從文件中加載設備信息,采用文件流方式讀取文件內容,并將讀取到的設備信息存儲到devices
數組中。 -
save_devices_to_file
函數用于將當前的設備信息保存到文件中,采用文件流方式寫入設備信息到文件。void load_devices_from_file(const char* filename) {FILE* file = fopen(filename, "r");if (file == NULL) {printf("無法打開文件。\n");return;}while (fscanf(file, "%d %49s %49s %49s %d %19s %lf",&devices[device_count].id,devices[device_count].name,devices[device_count].owner,devices[device_count].department,&devices[device_count].quantity,devices[device_count].purchase_date,&devices[device_count].price) != EOF) {device_count++;}fclose(file); }
👉👉👉 源碼獲取 關注【測試開發自動化】公眾號,回復 “設備” 獲取。👈👈👈
-
-
菜單功能:
-
display_menu
函數用于顯示系統菜單,提供了顯示所有設備信息、查詢設備信息、添加設備、刪除設備、排序設備和退出系統等選項。 -
main
函數通過循環結構提供了菜單選擇功能,根據用戶輸入的選項調用相應的功能函數。void display_menu() {printf("\n設備管理系統\n");printf("1. 顯示所有設備信息\n");printf("2. 查詢設備信息\n");printf("3. 添加設備\n");printf("4. 刪除設備\n");printf("5. 排序設備\n");printf("0. 退出系統\n"); }
-
-
功能實現:
-
display_all_devices
函數用于顯示所有設備信息,遍歷設備數組并將每個設備的信息輸出到控制臺。 -
query_device
函數用于根據用戶輸入的設備名稱或所屬部門查詢設備信息,輸出符合條件的設備信息。 -
add_device
函數用于添加新設備,先接收用戶輸入的設備信息,然后將新設備添加到設備數組中。 -
delete_device
函數用于刪除指定編號的設備,根據用戶輸入的設備編號查找并刪除對應的設備信息。 -
sort_devices
函數用于根據購買時間對設備信息進行排序,采用qsort
函數實現。void display_all_devices() {printf("\n所有設備信息:\n");for (int i = 0; i < device_count; i++) {printf("ID: %d, 名稱: %s, 領用人: %s, 部門: %s, 數量: %d, 購買時間: %s, 價格: %.2f\n",devices[i].id,devices[i].name,devices[i].owner,devices[i].department,devices[i].quantity,devices[i].purchase_date,devices[i].price);} }
-
👉👉👉 源碼獲取 關注【測試開發自動化】公眾號,回復 “設備” 獲取。👈👈👈