C语言:学生宿舍管理系统
(难度系数:3级) (附加清屏操作)
设计一个学生宿舍管理程序。该程序应该具有以下功能: (1)录入学生宿舍信息;
(2)修改、删除学生宿舍信息;
(3)统计当前未住学生宿舍的个数并显示宿舍编号; (4)统计当前空闲的男生、女生床位数;
(5)按宿舍编号由小到大显示已住学生的宿舍信息; (6)分别显示男生、女生有空床位的宿舍信息;
(7)按宿舍编号、可住人数、空床数、宿舍性质(男生还是女生)等信息进行查询,若查询信息不存在,输出没找到的信息。 题目要求:
(1)按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序,即在程序中加入异常处理,检查用户输入数据的有效性,以保证程序的健壮性; (2)宿舍信息应该包括宿舍编号、可住人数、空床数、宿舍性质等;
(3)为各项操作功能设计一个菜单,应用程序运行后,先显示这个菜单,然后用户通过菜单选项选则所需进行的操作项目,菜单要界面友好、清晰;
(4)将所有宿舍信息存储在一个文件中,并实现文件的读写操作,即将输入的数据以文件的形式存盘,将原来已经存盘的文件读入内存,进行管理; (5)应保证测试用例测试程序的各种边缘情况。 输入要求:
应用程序运行后,在屏幕上显示一个菜单。用户可以根据需要,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。 输出要求:
(1)应用程序运行后,在屏幕上显示一个菜单。
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
代码: #include\#include\#include\#include\
#define max 2 //最大容量
1 / 21
//#define k 6 //每个宿舍最多可住人数
typedef struct node{ int num; int ke; int empty; int yi;
int sex; //1-女 0-男 //struct node *next;
}doc; //宿舍信息应该包括宿舍编号、可住人数、空床数、宿舍性质等;
//int q=0; //已入住的房间数-1 doc dcm[max];
void a() //1.录入学生宿舍信息 { int q;
printf(\现在执行录入学生宿舍信息\\n\for(q=0;q printf(\请输入要录入的宿舍个数:\\n\ // // scanf(\ 2 / 21 // while(j<=0) // { // // // } // else // while(j>0) \ } dcm[q].empty=dcm[q].ke-dcm[q].yi; printf(\请输入宿舍性质(0代表男宿舍,1代表女宿舍):\\n\ 3 / 21 printf(\输入错误!请重新输入:\scanf(\ { printf(\请输入该宿舍的宿舍号:\\n\scanf(\ printf(\请输入该宿舍的最大住人数:\\n\scanf(\ printf(\请输入该宿舍的已住人数:\\n\scanf(\while(dcm[q].yi>dcm[q].ke) { printf(\输入错误!已住人数大于最大入住人数!\\n请重新输入: scanf(\