如何使用C++編寫一個簡單的學生宿舍管理系統?
學生宿舍管理系統是一個可以方便管理學生宿舍信息的軟件系統。使用C++編寫一個簡單的學生宿舍管理系統不僅可以鍛煉編程技能,還可以提高對學生宿舍管理流程的理解和把握。本文將介紹如何使用C++編寫一個簡單的學生宿舍管理系統。
首先,我們需要定義學生宿舍的基本信息,包括學生姓名、學號、性別、聯系方式等。我們可以使用一個結構體來存儲這些信息,如下所示:
struct Student { string name; int id; string gender; string contact; };
登錄后復制
接下來,我們需要定義宿舍樓的基本信息,包括宿舍樓號、樓層數、每層宿舍房間數等。我們可以使用一個類來表示宿舍樓,如下所示:
class Dormitory { private: int number; int floors; int roomsPerFloor; vector<vector<Student>> rooms; public: // 構造函數 Dormitory(int n, int f, int r) { number = n; floors = f; roomsPerFloor = r; rooms.resize(floors, vector<Student>(roomsPerFloor)); } // 獲取宿舍樓號 int getNumber() { return number; } // 獲取樓層數 int getFloors() { return floors; } // 獲取每層宿舍房間數 int getRoomsPerFloor() { return roomsPerFloor; } // 獲取指定房間的學生信息 Student getStudent(int floor, int room) { return rooms[floor][room]; } // 更新指定房間的學生信息 void updateStudent(int floor, int room, Student student) { rooms[floor][room] = student; } };
登錄后復制
然后,我們可以定義一個學生宿舍管理系統類,包含學生宿舍樓的管理功能。我們可以使用一個向量來存儲不同的宿舍樓,如下所示:
class DormitoryManagementSystem { private: vector<Dormitory> dormitories; public: // 添加宿舍樓 void addDormitory(int number, int floors, int roomsPerFloor) { dormitories.push_back(Dormitory(number, floors, roomsPerFloor)); } // 獲取宿舍樓個數 int getDormitoryCount() { return dormitories.size(); } // 獲取指定宿舍樓對象 Dormitory getDormitory(int index) { return dormitories[index]; } // 獲取指定宿舍樓的房間數 int getRoomCount(int index) { return dormitories[index].getFloors() * dormitories[index].getRoomsPerFloor(); } // 獲取指定宿舍樓指定房間的學生信息 Student getStudent(int index, int floor, int room) { return dormitories[index].getStudent(floor, room); } // 更新指定宿舍樓指定房間的學生信息 void updateStudent(int index, int floor, int room, Student student) { dormitories[index].updateStudent(floor, room, student); } };
登錄后復制
最后,我們可以編寫一個主程序,來演示學生宿舍管理系統的使用。主程序可以提供菜單功能,包括添加宿舍樓、查看宿舍樓信息、添加學生信息、查看學生信息等。下面是一個簡單的主程序示例:
int main() { DormitoryManagementSystem system; int choice; do { cout << "1. 添加宿舍樓" << endl; cout << "2. 查看宿舍樓信息" << endl; cout << "3. 添加學生信息" << endl; cout << "4. 查看學生信息" << endl; cout << "0. 退出" << endl; cout << "請輸入選項:"; cin >> choice; switch (choice) { case 1: int number, floors, roomsPerFloor; cout << "請輸入宿舍樓號:"; cin >> number; cout << "請輸入樓層數:"; cin >> floors; cout << "請輸入每層宿舍房間數:"; cin >> roomsPerFloor; system.addDormitory(number, floors, roomsPerFloor); cout << "成功添加宿舍樓!" << endl; break; case 2: int index; cout << "請輸入要查看的宿舍樓索引:"; cin >> index; if (index >= 0 && index < system.getDormitoryCount()) { Dormitory dorm = system.getDormitory(index); cout << "宿舍樓號:" << dorm.getNumber() << endl; cout << "樓層數:" << dorm.getFloors() << endl; cout << "每層宿舍房間數:" << dorm.getRoomsPerFloor() << endl; cout << "總房間數:" << system.getRoomCount(index) << endl; } else { cout << "宿舍樓索引無效!" << endl; } break; case 3: int dormIndex, floor, room; string name, gender, contact; cout << "請輸入要添加學生的宿舍樓索引:"; cin >> dormIndex; if (dormIndex >= 0 && dormIndex < system.getDormitoryCount()) { cout << "請輸入學生所在樓層:"; cin >> floor; cout << "請輸入學生所在房間:"; cin >> room; cout << "請輸入學生姓名:"; cin >> name; cout << "請輸入學生性別:"; cin >> gender; cout << "請輸入學生聯系方式:"; cin >> contact; system.updateStudent(dormIndex, floor, room, {name, 0, gender, contact}); cout << "成功添加學生信息!" << endl; } else { cout << "宿舍樓索引無效!" << endl; } break; case 4: int dormIndex, floor, room; cout << "請輸入要查看學生的宿舍樓索引:"; cin >> dormIndex; if (dormIndex >= 0 && dormIndex < system.getDormitoryCount()) { cout << "請輸入要查看學生的樓層:"; cin >> floor; cout << "請輸入要查看學生的房間:"; cin >> room; Student student = system.getStudent(dormIndex, floor, room); cout << "學生姓名:" << student.name << endl; cout << "學生學號:" << student.id << endl; cout << "學生性別:" << student.gender << endl; cout << "學生聯系方式:" << student.contact << endl; } else { cout << "宿舍樓索引無效!" << endl; } break; case 0: break; default: cout << "無效選項,請重新輸入!" << endl; break; } cout << endl; } while (choice != 0); return 0; }
登錄后復制
通過以上代碼,我們可以實現一個簡單的學生宿舍管理系統。用戶可以根據菜單選項進行添加宿舍樓、查看宿舍樓信息、添加學生信息和查看學生信息等操作,從而方便地管理學生宿舍信息。
總結起來,使用C++編寫一個簡單的學生宿舍管理系統的關鍵步驟包括定義學生和宿舍樓的基本信息,編寫相關的類和函數,并設計主程序來演示系統的使用。通過編寫學生宿舍管理系統,我們可以提高對C++編程的理解和實踐能力,并同時提升對學生宿舍管理流程的掌握和應用能力。