提示:C语言,管理系统
目录
一、设定内容
用C语言为学生宿舍管理人员编写一个宿舍管理软件。设某宿舍有:101,102,201,202四个房间,每个房间可住学生<=4人,链表存储结构:学号、姓名、房间号、后续指针,按房间号有序,实现学生的入住、退房和查询,按给定学号、姓名、房号查询。
二、概要设计
1. 功能模块:if—else 语句实现功能选择
2. 各个模块详细的功能描述:主函数运行后,程序提供给用户五个选项,用户可以选定入住信息和退房信息以及查询已有信息,使用说明和退出系统。
三、流程图
四、源程序
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#define N sizeof(struct DORMITORY)//宏定义,N为结构体变量所占内存的大小
struct DORMITORY {
int num; //房间号
char id[15]; //学号
char name[20]; //姓名
struct DORMITORY* next;//指针域
};
//使用 typedef 关键字来定义自己习惯的数据类型名称
//此处的意思为用dormitory来代替struct DORMITORY*
typedef struct DORMITORY* dormitory;
char set[16][15];//学号集合,避免出现学号重复
dormitory head; //链表头节点,不用来保存住宿记录,方便建立链表(头插法)
void menu(); //主菜单
void menu_query(); //信息查询菜单
void direction(); //使用说明
void checkIn(); //入住
void checkOut(); //退房
void print(); //打印全部信息
void findAll(); //查看全部信息
void findById(); //按学号查询
void findByName(); //按姓名查询
void findByNum(); //按宿舍号查询
void del(dormitory node); //删除一条住宿记录
void destroy(); //销毁链表
int repeated(char id[15]); //判断学号是否重复
dormitory create(); //创建一条住宿记录
int main() {
//初始化链表
head = (dormitory)malloc(N);
//利用结构体中的学号变量记录剩余房间总数
head->num = 16;
//利用字符数组变量id记录四个房间的剩余房间数,依次是101、102、201、202
head->id[0] = '4';
head->id[1] = '4';
head->id[2] = '4';
head->id[3] = '4';
head->next = NULL;
menu();
return 0;
}
void menu() { //主菜单
char t;
int flag = 1;
while(flag) {
system("cls"); //清屏, 然后输出新的内容
printf("+--------------------+\n");
printf("| 宿舍管理系统 |\n");
printf("+--------------------+\n");
printf("| 【1】入住 管理 |\n");
printf("| |\n");
printf("| 【2】退房 管理 |\n");
printf("| |\n");
printf("| 【3】信息 查询 |\n");
printf("|