1、高级程序设计客房管理系统 高级语言程序设计报告 题目:客房管理系统 报告目录1.题目要求.2.需求分析.3.总体分析.4.详细分析.5.系统模块图.6.上机操作.7.小结.8.源代码. 1.题目要求试设计一客房管理系统,使之能提供以下功能:(1) 系统以菜单方式工作(2) 客户信息登记功能(3) 客户信息统计功能(4) 客户信息查询功能(5) 客户信息修改功能(6) 显示入住费用(自选)提示 建立客户信息结构体,结构体成员包括身份证号、姓名、性别、年龄等 建立客房信息结构体,包括房间号、价格、 建立时间结构体,包括年、月、日2.需求分析(1)实现用户登记功能,要提供结构体的输入操作;(2)实现
2、统计功能,要提供相应的统计操作; (3)实现查询功能,要提供查找操作;(4)实现修改功能,要提供修改操作;(5)显示入住费用(6)另外还要提供键盘式菜单实现功能选择。 3.总体分析整个客房管理系统被设计为用户登记模块、统计模块、查询模块和修改模块、显示费用模块。 4.详细分析 数据结构采用结构体,设计如下结构体: 时间结构体: struct date int month; int day; int year; final;客房结构体与客户信息结构体嵌套使用: struct hotel int price; int room_ID; struct client char name20; int
3、sex; int age; char ID_card20; int count; struct date start; personal;roomM; (1) 用户登记模块 提示用户输入自身信息以及客房信息,把数据存入 room 数组中。 (2) 统计模块 设置计数器,顺序遍历 room 数组来实现。实现对房客数的统计。 (3) 查询模块 通过基本查找算法查找 room 数组。可以按房间号、用户姓名、居 民身份证查询。 (4) 修改模块 采用基本查找算法在数组中找到要修改的数据,直接更改。 (5)显示入住费用模块 根据客户输入的信息计算总费用5.系统模块图6.上机操作(1)进入客房管理系统初界
4、面(2)进入主菜单(3)登记入住信息(4)进入统计界面(5)进入查询菜单按房间号查询:按姓名查询:按身份证号查询:(6)进入修改菜单修改客户信息:修改客房信息:(7)显示入住费用(7)退出界面还有两个公共函数模块,一个是保存函数,使用文件指针,把数据保存在文件中,还有一个就是输出函数,把用户相关信息通过调用函数输出。void save() /保存函数 FILE *fp; int i;if(fp=fopen(客房管理.txt,w+)=NULL) /打开输出文件“客房管理.txt” printf(cannot open filen); exit(0); for(i=0;iM;i+) if(fwri
5、te(&roomi), sizeof(roomM),1,fp)!=1) printf(file write errorn); fflush(fp); fclose(fp); /关闭文件int shuchu(int q) printf(姓名:%s,roomq.personal.name); printf(n性别(其中:1表示男,2表示女!):%d,roomq.personal.sex); printf(n年龄:%d,roomq.personal.age); printf(n身份证号:%s,roomq.personal.ID_card); printf(n入住年份:%dtt,roomq.perso
6、nal.start.year); printf(月:%dtt,roomq.personal.start.month); printf(日:%dtt,roomq.personal.start.day); printf(n房间号:%d,roomq.room_ID); printf(n客房单价:%d,roomq.price); printf(n入住人数:%dn,roomq.personal.count);return 0;7.小结 经过两、三周的编程、调试、运行,总算是搞完了。老师以前说过,做个课程设计会让你掉一层皮,这话一点也不假!一个课程设计搞下来,原本不熟悉的知识模块经过不断的改错误、调试运行
7、基本上非常熟悉啦。果然还是上机操作好!通过实践掌握C语言快一些。其实C语言并不难,只要把程序分模块,然后再把模块串起来就行了。 我觉得自己的程序编的不是很好,虽然基本功能都实现了,可是还是需要完善。比如说统计模块,我只统计了入住的房间数和未住的房间数,统计模块做的太简单,不怎么好。不过,我自己添加了一个输出总费用的函数模块哦。 总之,通过这次课程设计,我真的学到了好多东西,最起码动手能力方面大大加强。受益匪浅!8.附上我的源程序 #include#include#include /在使用中要用到的字符串都包含在本文件中#include /exit()函数就包含在此文件中 #define M 1
8、00int z100=0; /定义一个数组存放使用的房间的标记的信息,且初始化为0 int j,s,i,w=0,h; /定义几个全局变量FILE *fp; /定义一个指向文件的指针变量struct dateint month;int day;int year;final;struct hotelint price;int room_ID;struct clientchar name20;int sex;int age;char ID_card20;int count;struct date start;personal;roomM; int shuchu(int q);void save();
9、 /声明保存函数void dengji( ); /声明客房登记入住函数void tongji();void chaxun( ); /声明查询入住情况函数void name();void room_ID( );void ID_card();void xiugai( ); /声明客房信息修改函数void xggr_one(); /声明修改客房信息函数中的修改个人函数void xggr_s(int j);void xgkf( ); /声明修改客房信息函数中的修改客房函数void money( ); /声明显示入住费用函数int main() int menu(); /声明主菜单函数 system(c
10、olor 01f); printf(t*t); printf(t*高级语言程序课程设计*ttn); printf(t*客房管理信息系统*ttn); printf(t*三峡大学理学院*ttn); printf(t* 周红艳 2010146107*ttn); printf(t*happy everyday!*ttn); printf(t*_*_*_*_*tn); printf(t继续请按1,退出请按0。); scanf(%d,&i); switch(i) case 1:menu();break; /把主菜单用函数来实现 case 0:exit(0); save(); return 0; int m
11、enu() /菜单函数 system(cls);system(color 05f); int n; do printf(n); printf(t*欢迎登录客房信息管理系统*ttn); printf(tt*菜单*nnn); printf(tttt1:登记入住信息nnn); printf(tttt2:统计入住信息nnn); printf(tttt3:查询客房入住情况nnn); printf(tttt4:修改信息nnn); printf(tttt5:显示入住费用nnn); printf(tttt6:退出nnn); printf(tt*菜单*n); printf(nnttt 请选择输入选项123456
12、:); scanf(%d,&n); while(n6) printf(请重新输入选项!n); scanf(%d,&n); switch(n) case 1:dengji();break; /调用登记函数 case 2:tongji();break; /调用统计函数 case 3:chaxun();break; /调用查询函数 case 4:xiugai();break; /调用修改函数 case 5:money();break; /调用入住费用函数 case 6:exit(0); while(n!=6); scanf(%d,&n); return 0;void dengji( ) / 登记函数
13、 system(cls); printf(请输入登记相关信息:n); printf(n房间号:); scanf(%d,&j); roomj.room_ID=j; printf(n姓名:); scanf(%s,&roomj.personal.name); printf(n性别(其中:1表示男,2表示女!):); scanf(%d,&roomj.personal.sex); printf(n年龄:); scanf(%d,&roomj.personal.age); printf(n身份证号:); scanf(%s,&roomj.personal.ID_card); printf(n入住年份:); s
14、canf(%d,&roomj.personal.start.year); printf(月:); scanf(%d,&roomj.personal.start.month); printf(日:); scanf(%d,&roomj.personal.start.day); printf(n客房单价:); scanf(%d,&roomj.price); printf(请输入入住人数:); scanf(%d,&roomj.personal.count); zj=1; /标记使用的房间为1 save(); printf(n); printf(1.继续输入信息 2.主菜单 3.退出); printf(
15、请输入选项:n); scanf(%d,&i); switch(i) case 1:dengji();break; case 2:menu(); case 3:exit(0); int shuchu(int q) printf(姓名:%s,roomq.personal.name); printf(n性别(其中:1表示男,2表示女!):%d,roomq.personal.sex); printf(n年龄:%d,roomq.personal.age); printf(n身份证号:%s,roomq.personal.ID_card); printf(n入住年份:%dtt,roomq.personal.
16、start.year); printf(月:%dtt,roomq.personal.start.month); printf(日:%dtt,roomq.personal.start.day); printf(n房间号:%d,roomq.room_ID); printf(n客房单价:%d,roomq.price); printf(n入住人数:%dn,roomq.personal.count);return 0;void tongji() /统计房客数量函数 system(cls); int g,i=0,count=0; for(g=1;g=M;g+) if(zg=0) +count; else
17、if(zg=1) i+; printf(n正在使用的房间号:%dn,g); printf(n未使用的房间数:%dn,count); /通过循环输出未使用的房间数 printf(n已使用房间总数为:%d。n,i); printf(nn); save(); printf(1.返回主菜单 2.退出n); printf(请输入选项:n); scanf(%d,&i); switch(i) case 1:menu(); case 2:exit(0); void chaxun() /查询模块 system(cls); int i; printf(ttt *菜单*nnn); printf(1.按房间号查询 2
18、.按姓名查询 3.按身份证号查询4.主菜单5.退出n); printf(请输入选项:); scanf(%d,&i); switch(i) case 1:room_ID() ;break; case 2:name();break; case 3:ID_card();break; case 4:menu();break; case 5:exit(0); void name() /按名字查询函数char str10;printf(n请输入需查询的姓名:);scanf(%s,str);for(s=0;s= M;s+)if(strcmp(str,rooms.personal.name)=0) w=1,h
19、=s;if(w=1) shuchu(h); else printf(没有您要查找的人!n); save(); printf(1.继续按姓名查询 2.返回查询菜单 3.主菜单4.退出n); printf(请输入选项:); scanf(%d,&i); switch(i) case 1:name();break; case 2:chaxun();break; case 3:menu(); case 4:exit(0); void room_ID( ) /按房间号查询函数 int a; printf(n请输入需查询的房间号:); /查询输入的房间号的信息,且输出该房间的相关信息 scanf(%d,&a
20、); for(s=0;sM;s+) if(a=rooms.room_ID) if (zs=1) shuchu(s); printf(n); else printf(该房间未被使用!); save(); /调用保存函数 printf(1.继续按房间号查询 2.返回查询菜单 3.主菜单4.退出n); printf(请输入选项:); scanf(%d,&i); switch(i) case 1:room_ID();break; case 2:chaxun();break; case 3:menu(); case 4:exit(0); void ID_card() /按身份证号查询函数 char st
21、r20; printf(n请输入需查询的身份证号:); scanf(%s,str); for(s=0;s= M;s+) if(strcmp(str,rooms.personal.ID_card)=0) w=1,h=s; if(w=1) shuchu(h); else printf(没有此身份证号的人入住!n); save(); printf(1.继续按身份证号查询 2.返回查询菜单 3.主菜单4.退出n); printf(请输入选项:); scanf(%d,&i); switch(i) case 1:ID_card();break; case 2:chaxun();break; case 3:
22、menu(); case 4:exit(0); void xiugai( ) /修改信息函数 system(cls); int k,m; do printf(ttt *菜单*nnn); printf(ttttt 1:修改客户信息nnn); printf(ttttt 2:修改客房信息nnn); printf(ttttt 3:主菜单nnn); printf(ttttt4:退出nnn); printf(ttt *nnn); printf(ttt 请选择输入选项1234:); scanf(%d,&m);k=m; if(k4) printf(请重新输入选项!);while(k4); switch(m)
23、case 1:xggr_one();break; case 2:xgkf();break; case 3:menu(); case 4:exit(0); save();void xggr_one() /*修改用户个人信息*/system(cls);char b20;puts(请输入名字:);scanf(%s,b);for(s=0;s=M;s+) if(strcmp(b,rooms.personal.name)=0) w=1,h=s; if(w=1) shuchu(h); else printf(没有您要查找的人!n); xggr_s(h) ; save(); puts( 1.返回修改菜单 2.主菜单 3.退出 n); puts( 请输入选项: n); scanf(%d,&i); switch(i) case 1:xiugai();break; case 2:menu(); case 3:exit(0);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1