C语言程序设计-客房管理系统源码和报告(共27页).docx
《C语言程序设计-客房管理系统源码和报告(共27页).docx》由会员分享,可在线阅读,更多相关《C语言程序设计-客房管理系统源码和报告(共27页).docx(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C语言程序设计综合实验报告一、 需求分析编写一个客房管理系统,提供键盘式菜单实现功能选择,功能包括:用户登记、统计、查询和用户信息修改。软件平台:CODEBLOCKS二、整体设计整个客房管理系统被设计为用户登记模块、统计模块、查询模块和修改模块。数据以TXT格式存储,支持保存信息。三、 详细设计客房管理系统三 查询模块二 统计模块四 修改模块一 登记模块(1)用户登记模块 通过函数readfile读取txt文件信息到room数组,提示用户选择想要入住的房间号,判断是否已经被占用,若占用,重新选择房间号,若没有占用,提示输入登记信息,把数据存入Room数组中,通过sav
2、efile添加信息到txt。调用readfile函数读取txt信息读取用户输入的的房间号判断房间是否被占用是否提示用户输入登记信息调用savefile函数存储登记信息(2)统计模块 读取txt信息到结构体数组room,提示用户选择统计方式,设置计数器,顺序遍历Room数组,1、 计数器记录数组数,即总客房数2、 判断每一个数组中的结构体的时间是否和需要查询的日期相同,若相同,计数器加一调用readfile函数,读取信息选择统计方式2、按时间统计1、统计总客房数(3)查询模块 读取信息调用readfile函数,将信息读入room结构体数组中,提示用户选择查询方式,通过基本查找算法查找Room数组
3、。可以按房间号、价格、房间标记、用户姓名、居民身份证查询。选择统计方式按价格查询按身份证号查询按姓名查询按房间号查询每一个查询函数内部结构如下:遍历每一个结构体j判断是否和要查询的信息相同是调用打印函数,打印j结构体信息(4)修改模块 调用readfile函数,读取信息到room结构体数组,提示用户输入需要修改的房间号,采用基本查找算法在数组中找到要修改的数据,提示用户重新更改房间信息,最后将结构体数组重新写入文件保存。调用readfile(读取文件函数)输入需要查询的房间号遍历每一个结构体j判断是否是用户需要修改的房间号修改结构体j调用saveall函数,保存结构体数组四、 源代码#incl
4、ude #include #include #define M 80/客户结构体typedef struct client char name12; /姓名 int sex; /性别 int age; /年龄 char id20; /身份证号 int year; /入住时间 int month; int date;CLIENT;/客房结构体struct Hotelint roomid; int tel; /用户的话 int price; /价格 int sign; /默认标记为空房间 CLIENT client_list; /客户信息roomM;void Menu(); /目录界面void d
5、engji(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); s
6、canf(%d,&n); while(n!=1&n!=2&n!=3&n!=4) printf(请输入各选项对应的数字!n); scanf(%d,&n); 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( %c,&reply); while (reply=y|reply=Y); return 0;/系统目录void Me
7、nu() printf(*客房管理系统*n); printf( ttt 1登记n ); printf( ttt 2统计n ); printf( ttt 3查询n ); printf( ttt 4修改n ); printf(*n);/登记客户信息void dengji(struct Hotel room) int x,j,i,flag; char answer; do i=readfile(room); do flag=0; printf(输入您想入住的房间号:(三位数)n); scanf(%3d,&x); for(j=0;j0); roomi+1.roomid=x; printf(请输入您的电
8、话:(仅支持六位数号码)n); scanf(%d,&roomi+1.tel); printf(入住价格n); scanf(%d,&roomi+1.price); printf(请输入您的名字n); scanf(%s,roomi+1.client_list.name); printf(性别:(1表示女,0表示男)n); scanf(%d,&roomi+1.client_list.sex); printf(您的年龄:n); scanf(%d,&roomi+1.client_list.age); printf(您的id:n); scanf(%s,roomi+1.client_list.id); pr
9、intf( 请输入入住年月日(格式:2015 11 11)n); scanf(%4d%2d%2d,&roomi+1.client_list.year,&roomi+1.client_list.month,&roomi+1.client_list.date); savefile(room,i+1); printf(是否还要继续登记?(回复Y或y继续)n); scanf( %c,&answer); while(answer=Y|answer=y);/读取txt中的信息int readfile(struct Hotel room) FILE *fp; int i; if(fp=fopen(room.
10、txt,r)=NULL) printf(Failure to open score.txt!n); exit(0); for (i=0;!feof(fp);i+) fscanf(fp,%5d,&roomi.roomid); fscanf(fp,%6d,&roomi.price); fscanf(fp,%15d,&roomi.tel); fscanf(fp,%12s,roomi.client_list.name); fscanf(fp,%4d,&roomi.client_list.sex); fscanf(fp,%6d,&roomi.client_list.age); fscanf(fp,%20
11、s,roomi.client_list.id); fscanf(fp,%7d,&roomi.client_list.year); fscanf(fp,%5d,&roomi.client_list.month); fscanf(fp,%5d,&roomi.client_list.date); fclose(fp); return i;/保存结构体数组信息到文件void savefile(struct Hotel room,int i) FILE *fp; if(fp = fopen(room.txt,a)=NULL) printf(Failure to open score.txt!n); ex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 客房 管理 系统 源码 报告 27
限制150内