《C语言程序设计》综合实验报告
一、需求分析
编写一个客房管理系统,提供键盘式菜单实现功能选择,功能包括:用户登记、统计、查询和用户信息修改。 软件平台:CODEBLOCKS
二、整体设计
整个客房管理系统被设计为用户登记模块、统计模块、查询模块和修改模块。数据以TXT格式存储,支持保存信息。
三、详细设计
(1)用户登记模块 一 客房管理系统 二 三 四 统修登查通过函数readfile读取txt文件信息到room数组,提示用户选择想要入住的房计改记询模模间号,判断是否已经被占用,若占用,重新选择房间号,若没有占用,提示输入模模块块块块登记信息,把数据存入Room数组中,通过savefile添加信息到txt。
(2)统计模块
调用savefile函数存储登记信息
判断房间是否被占用 否 提示用户输入登记信息 是 调用readfile函数读取读取用户输入的的房间号 读取txt信息到结构体数组room,提示用户选择统计方式,设置计数器,顺序遍历Room数组,
1、计数器记录数组数,即总客房数
2、判断每一个数组中的结构体的时间是否和需要查询的日期相同,若相同,计数器加一
1、统计总客房数 调用readfile函数,读取信息 选择统计方式 2、按时间统计 (3)查询模块 调用readfile函数,将信息读入room结构体数组中,提示用户选择查询方式,通过基本查找算法查找Room数组。可以按房间号、价格、房间标记、用户姓名、居民身份证查询。
读取信息
选择统计方式 按房间号查询 按价格查询 按姓名查询 按身份证号查询 每一个查询函数内部结构如下:
遍历每一个结构体j
(4)修改模块
判断是否和要查询
是 的信息相同调用打印函数,打印j
结构体信息
调用readfile函数,读取信息到room结构体数组,提示用户输入需要修改的
房间号,采用基本查找算法在数组中找到要修改的数据,提示用户重新更改房间信息,最后将结构体数组重新写入文件保存。
判断是否是用户需要修改结构体j 修改的房间号 调用saveall函数,保存结构体数组 调用readfile(读取文件函数) 输入需要查询的房间号 遍历每一个结构体j 四、源代码
#include
typedef struct client {
char name[12]; //姓名 int sex; //性别 int age; //年龄
char id[20]; //身份证号 int year; //入住时间 int month; int date; }CLIENT; //客房结构体 struct Hotel {
int roomid;
int tel; //用户的话 int price; //价格
int sign; //默认标记为空房间 CLIENT client_list; //客户信息
}room[M];
void Menu(); //目录界面
void dengji(struct Hotel room[]);
void savefile(struct Hotel room[],int i); int readfile(struct Hotel room[]); void tongji(struct Hotel room[]); void chaxun(struct Hotel room[]);
void printmessage(struct Hotel room[],int n); void xiugai(struct Hotel room[]); //主函数 int main() {
int n; char reply; Menu(); do{
printf(\请输入选项对应的数字:\\n\ scanf(\
while(n!=1&&n!=2&&n!=3&&n!=4) {
printf(\请输入各选项对应的数字!\\n\ scanf(\ }
switch (n) {
case 1:
dengji(room); break; case 2:
tongji(room); break; case 3:
chaxun(room); break; case 4:
xiugai(room); break; }
printf(\是否还要进入其它选项?(回复Y或y继续)\\n\ scanf(\
}while (reply=='y'||reply=='Y'); return 0; }
//系统目录 void Menu() {
printf(\客房管理系统***************************\\n\ printf( \————登记\\n\
printf( \————统计\\n\