程序欢迎界面 查询子模式1 查询 数据输入 查 询 子 模 式 2 查 询 数 据输 入 主菜单界面 查询模式界面 管理模式界面 显示课设题目 退出界面 查询子模式3 查询子模式4 查询子模式5 管理子模式1 管理子模式2 管理子模式3 导入数据界面 查询数据输查询数据输入 管理数据输入 管理数据输入 管理数据输入 6
注:管理模式界面,查询模式界面都设有“返回上级菜单”功能。
4.2系统模块设计
1)系统欢迎界面:构造函数void welcome_menu(),实现课程设计名称、作者、指导老师、班级、联系方式的显示。
2) 菜单界面:构造函数int menu(),实现系统主菜单的显示。
3) 查询界面:构造函数void find_mode()。 4) 查询子模式1:构造函数void find_mode_1()。 5) 查询子模式2:构造函数void find_mode_2()。 6)查询子模式3:构造函数void find_mode_3()。 7)查询子模式4: 构造函数 void find_mode_4()。 8)查询子模式5: 应用函数 load_stustay()。 9) 管理界面:构建函数void govern_mode()。 10) 管理子模式1:构造函数 void govern_mode_1()。 11)管理子模式2:构造函数 void govern_mode_2()。 12)管理子模式3:构造函数 void govern_mode_3()。 13)显示课设题目:构造函数 void void list_menu();
14) 退出告别界面:构造函数void goodbye_menu(),实现在用户退出系统时,显示祝福语并声明版权。
5.详细设计
5.1数据结构设计
根据系统要求,系统中需要保存的数据信息,其结构如下:
注:n为1~10之间一确定的数。 数据项名称 数据项系统表示 数据类型 学生姓名 学生学号 p1->student_name p1->student_number 字符串 字符串 数据长度 20个字节 20个字节 备注 7
班级 入住时间 床位号 宿舍号 学生住宿信息更改保存标志全局变量 p1->classes p1->time p1->hostel_number write_stustay 字符串 字符串 整形 整形 20个字节 20个字节 4个字节 4个字节 4个字节 p1->bed_number 整形 根据系统要求,系统中需要保存的类别信息,其结构如下:
为了能实现不受限制的增加学生信息,采用链表的结构保存住宿信息,在增加学生的基本信息时,创建一个学生信息的节点,将其插入到链表中,示意图如下(用链表实现)。
学生信息1 学生信息学生信息学生信息为此,先声明一个类型为struct stustay的结构体,其成员为学生的住宿信息。然后通过对指针、链表、文件等数据结构的操作,实现对学生住宿信息的登入,修改,单次和多次查询。
其中,结构体定义分别如下: 学生住宿信息结构体
8
struct stustay { char name[20];
char student_number[20]; char classes[20]; char time[20]; int bed_number;
int hostel_number;
struct stustay *next;
};
5.2模块接口设计
1) 所有函数模块声明如下:
void welcome_menu(); void goodbye_menu(); int menu();
void find_mode(); int find_menu();
void find_mode_1(); void find_mode_2();
息。)*/
void find_mode_3(); void find_mode_4();
学生的住宿信息。)*/ void find_mode_5(); int govern_menu(); void govern_mode();
//学生姓名 //学号 //班级 //入住时间
//床位号
//宿舍号
/*欢迎界面菜单*/ /*告别页面菜单*/
/*主菜单*/
/*查询模式*/
/*查询模式菜单*/
/*查询子模式1(指定学号,显示住宿信息。)*/ /*查询子模式2(指定宿舍号,显示住宿信
/*查询子模式3(指定班级,显示住宿信息。)*/ /*查询子模式4(给定宿舍号和床位号,显示该
/**查询子模式5(显示所有学生信息)/ /*管理模式*/
/*管理模式菜单*/
9
void govern_mode_1(); void govern_mode_2(); void govern_mode_3();
void load_stustay();
void list_menu();
/*管理子模式1(能从键盘录入床位信息。)*/
/*管理子模式2(给定宿舍号、床位号,修改住宿信息。)*/ /*管理子模式3(给定宿舍号、床位号,删除住宿信息。)*/
/*导入学生住宿信息*/
/*显示课设题目菜单函数*/
void list_stustay(int n); int lookup_student();
/*显示学生住宿信息函数*/
/*查找学生住宿信息函数*/ /*查找学生住宿信息函数2*/
int lookup_student2(); int lookup_hostel(); int lookup_classes(); int show_time(void);
void rank();
/*查找宿舍信息函数*/
/*查找班级信息函数*/ /*显示进入系统时间的函数*/
/*排序函数*/
/*保存修改住宿信息函数*/ /*退出程序并保存函数*/
void save_stustay(); void exit0();
2) 并定义五个全局变量以及结构体指针:
1) /*链表操作所用结构体指针*/ struct stustay *head1=NULL,*p1,*p2,*p3; /*定义结构体指针head1 为头指针 p1 为输入数据缓存空间指针, p2为尾指针(用于操作学生住宿信息)*/
2) /*学生住宿信息更改保存标志全局变量*/ int write_stustay=0;
1) 主要模块的实现
10