FILE* 二進制讀寫)typedef struct {
char ID[20], name[20], gender[10], dormitory[4];
} Student;
typedef struct {
char ID[4], gender[10];
int max_num, current_num;
} Dormitory;
兩個文件:樓棟名(宿舍信息)、樓棟名學生(學生信息)。操作需同步更新兩文件,大量使用 fseek、ftell、rewind 定位。
fseek 修改文件中間記錄,未處理好指針位置恢復與記錄長度固定問題。純控制台菜單,無 GUI,課程作業因「用戶體驗差」未獲高分。
main() → 菜單循環 → switch 10 功能 create() // 新建樓棟文件 insert_dorm() // 錄入宿舍 insert_stu() // 錄入學生,同步更新宿舍當前人數 change() // 單人調換宿舍 exchange() // 雙人互換宿舍 check_out() // 退宿(置零記錄) numsearch()/namesearch()/dormnumsearch() // 多維查詢 display() // 智能分配(找未滿宿舍)
memset 整結構體導致殘留數據。