c语言宿舍管理系统代码
以下是一个简单的C语言宿舍管理系统的代码示例,包括添加宿舍、删除宿舍、查询宿舍和显示所有宿舍的功能。这是一个基本的示例,你可以根据实际需求进行扩展和改进。
c复制代码#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_DORMS 100 #define MAX_NAME_LENGTH 50 typedef struct { char name[MAX_NAME_LENGTH]; int capacity; int occupied; } Dorm; Dorm dorms[MAX_DORMS]; int dormCount = 0; void addDorm(char* name, int capacity) { if (dormCount >= MAX_DORMS) { printf("No more space for dorms!\n"); return; } strcpy(dorms[dormCount].name, name); dorms[dormCount].capacity = capacity; dorms[dormCount].occupied = 0; dormCount++; printf("Dorm added successfully!\n"); } void deleteDorm(char* name) { int i; for (i = 0; i < dormCount; i++) { if (strcmp(dorms[i].name, name) == 0) { break; } } if (i == dormCount) { printf("Dorm not found!\n"); return; } for (; i < dormCount - 1; i++) { dorms[i] = dorms[i + 1]; } dormCount--; printf("Dorm deleted successfully!\n"); } void queryDorm(char* name) { int i; for (i = 0; i < dormCount; i++) { if (strcmp(dorms[i].name, name) == 0) { printf("Dorm Name: %s\n", dorms[i].name); printf("Capacity: %d\n", dorms[i].capacity); printf("Occupied: %d\n", dorms[i].occupied); return; } } printf("Dorm not found!\n"); } void displayAllDorms() { int i; printf("List of dorms:\n"); for (i = 0; i < dormCount; i++) { printf("Dorm Name: %s\n", dorms[i].name); printf("Capacity: %d\n", dorms[i].capacity); printf("Occupied: %d\n", dorms[i].occupied); printf("\n"); } } int main() { int choice; char dormName[MAX_NAME_LENGTH]; int capacity; while (1) { printf("\n*** Dorm Management System ***\n"); printf("1. Add Dorm\n"); printf("2. Delete Dorm\n"); printf("3. Query Dorm\n"); printf("4. Display All Dorms\n"); printf("5. Exit\n"); printf("Enter your choice: "); scanf("%d", &choice); switch (choice) { case 1: printf("Enter dorm name: "); scanf("%s", dormName); printf("Enter dorm capacity: "); scanf("%d", &capacity); addDorm(dormName, capacity); break; case 2: printf("Enter dorm name to delete: "); scanf("%s", dormName); deleteDorm(dormName); break; case 3: printf("Enter dorm name to query: "); scanf("%s", dormName); queryDorm(dormName); break; case 4: displayAllDorms(); break; case 5: printf("Exiting dorm management system...\n"); exit(0); default: printf("Invalid choice!\n"); } } return 0; }
这个代码示例使用了结构体来存储宿舍的信息,包括宿舍名称、容量和已入住人数。它提供了添加宿舍、删除宿舍、查询宿舍和显示所有宿舍的功能。你可以根据需要扩展
这个宿舍管理系统,例如增加入住和退房的功能,修改宿舍的容量,以及进行错误处理和用户输入验证。以下是一个扩展后的版本,包括了入住和退房功能:
c复制代码#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #define MAX_DORMS 100 #define MAX_NAME_LENGTH 50 typedef struct { char name[MAX_NAME_LENGTH]; int capacity; int occupied; } Dorm; Dorm dorms[MAX_DORMS]; int dormCount = 0; void addDorm(char* name, int capacity) { if (dormCount >= MAX_DORMS) { printf("No more space for dorms!\n"); return; } strcpy(dorms[dormCount].name, name); dorms[dormCount].capacity = capacity; dorms[dormCount].occupied = 0; dormCount++; printf("Dorm added successfully!\n"); } void deleteDorm(char* name) { int i; for (i = 0; i < dormCount; i++) { if (strcmp(dorms[i].name, name) == 0) { break; } } if (i == dormCount) { printf("Dorm not found!\n"); return; } for (; i < dormCount - 1; i++) { dorms[i] = dorms[i + 1]; } dormCount--; printf("Dorm deleted successfully!\n"); } bool checkDormExists(char* name) { int i; for (i = 0; i < dormCount; i++) { if (strcmp(dorms[i].name, name) == 0) { return true; } } return false; } bool checkDormCapacity(char* name) { int i; for (i = 0; i < dormCount; i++) { if (strcmp(dorms[i].name, name) == 0) { if (dorms[i].occupied < dorms[i].capacity) { return true; } else { printf("Dorm is full!\n"); return false; } } } return false; } void checkOut(char* name) { int i; for (i = 0; i < dormCount; i++) { if (strcmp(dorms[i].name, name) == 0) { if (dorms[i].occupied > 0) { dorms[i].occupied--; printf("Check out successful!\n"); } else { printf("No one to check out!\n"); } return; } } printf("Dorm not found!\n"); } void checkIn(char* name) { if (!checkDormExists(name)) { printf("Dorm not found!\n"); return; } if (!checkDormCapacity(name)) { return; } int i; for (i = 0; i < dormCount; i++) { if (strcmp(dorms[i].name, name) == 0) { dorms[i].occupied++; printf("Check in successful!\n"); return; } } } void queryDorm(char* name) { int i; for (i = 0; i < dormCount; i++) { if (strcmp(dorms[i].name, name) == 0) { printf("Dorm Name: %s\n", dorms[i].name); printf("Capacity: %d\n", dorms[i].capacity); printf("Occupied: %d\n", dorms[i].occupied); return; } } printf("Dorm not found!\n"); } void displayAllDorms() { int i; printf("List of dorms:\n"); for (i = 0;