完整版C语言毕业课程设计宾馆住宿系统.docx
- 文档编号:8003712
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:33
- 大小:37.83KB
完整版C语言毕业课程设计宾馆住宿系统.docx
《完整版C语言毕业课程设计宾馆住宿系统.docx》由会员分享,可在线阅读,更多相关《完整版C语言毕业课程设计宾馆住宿系统.docx(33页珍藏版)》请在冰豆网上搜索。
完整版C语言毕业课程设计宾馆住宿系统
华中科技大学计算机科学与技术学院
《C语言程序设计》课程设计
实验报告
题目:
宾馆住宿信息管理系统
专业:
班级:
学号:
姓名:
成绩:
指导教师:
完成日期:
20年10月1日
宾馆管理住宿系统
一实验目的:
1、进一步掌握和利用C语言进行程设计的能力;
2、进一步理解和运用结构化程设计的思想和方法;
3、初步掌握开发一个小型实用系统的基本方法;
4、学会调试一个较长程序的基本方法;
5、学会利用流程图或N-S图表示算法;
6、掌握书写程设计开发文档的能力(书写课程设计报告);
二实验要求:
1、只能使用C语言,源程序要有适当的注释,使程序容易阅读。
2、要有用户界面。
要求至少采用简易菜单;鼓励采用文本菜单界面甚至采用图形菜单界面。
3、必须使用结构和十字交叉链表等数据结构。
4、使用文件保存数据。
5、至少输出一份报表(屏幕输出即可),鼓励自行增加新功能。
功能要求(宾馆住宿信息管理系统):
对宾馆所有客房的住宿信息进行管理,主要包括客房基本信息、客户住宿信息。
包含功能:
客房基本信息录入。
允许对已经录入的数据重新进行编辑、修改,各种基本数据的插入、删除,基于各种数据的查询、统计计算。
宾馆住宿信息其它方面的统计(自行确定)。
三实验内容:
程序概况
本程序采用文本菜单界面,程序数据结构采用三个方向的十字链表来处理的。
具有对客房基本信息,客户信息的新建、修改、插入、删除、查找、查看、统计、保存、载入等功能。
程序虽简单,但具有完整的功能。
程序模块示意图
1)主程序流程图
2)主要数据结构图
程序数据结构采用三个方向的十字链表来处理的。
程序详细介绍
主要数据结构:
typedefstructkehuxinxi{
charname[20];*客户姓名*
charid[20];*客户ID*
charsex;*性别*
chartelephone[20];*电话*
charroom[10];*房间号*
chartime[12];*入住时间*
floatyingshou;*应付费用*
floatshishou;*实际费用*
charshouyinyuan[20];*收银员*
structkehuxinxi*next;
}kehu,*Pkehu;
客户信息包含客户姓名,ID,性别,房间号,入住时间,应付费用,实际费用,收银员的资料。
typedefstructkefangxinxi{
charnum[10];*房间号*
charzhonglei;*类别*
inttimes;*入住次数*
floatjiage;*价格*
structkefangxinxi*next;
PkehuRecord;
}fangjian,*Pfangjian;
客房信息里包含房间号,房间类别,入住次数,房间价格资料。
typedefstructkefangzhonglei{
charzhonglei;*类别*
intshuliang;*房间数*
Pfangjianfirst;
structkefangzhonglei*next;
}fangjianzhonglei,*Pfangjianzhonglei;
房间种类包含房间类别和房间数目资料。
各函数功能介绍(为方便阅读理解程序,函数名用汉语拼音代替)
intxiangdaohejiemian(intfunction,Pfangjianzhonglei*pRST);
绘制功能选择界面
intCollect(int(*Comp)(void*,void*),intnum);
按照Comp规则收集前num个信息
intjiyushijian(void*,void*);
按照次数规则
intjiyujiage(void*,void*);
按照价格规则
int(char**szTitles,intnum);
获取菜单
introom);
获取一个房间信息
introom);
写入客房信息
intxierukehuxinxi(FILE*pf,Pkehucustom);
写入客户信息
intpRF);
修改房间信息
intCollect(int(*Comp)(void*,void*),intnum);
按照Comp规则收集前num个信息
intjiyushijian(void*,void*);
按照次数规则
intjiyujiage(void*,void*);
按照价格规则
intDisplay(void);
intGet_Info(char**szTitles,char**buffer,intnum);
intzhanxiankehu(PkehupCu);
intzhanxiankefang(PfangjianpRF);
显示客房客户信息
intpRF);
获得客房信息
*Qsort*
voidQsort(void**array,intlow,int[20];*收银员*
structkehuxinxi*next;
}kehu,*Pkehu;
typedefstructkefangxinxi{
charnum[10];*房间号*
charzhonglei;*类别*
inttimes;*入住次数*
floatjiage;*价格*
structkefangxinxi*next;
PkehuRecord;
}fangjian,*Pfangjian;
typedefstructkefangzhonglei{
charzhonglei;*类别*
intshuliang;*房间数*
Pfangjianfirst;
structkefangzhonglei*next;
}fangjianzhonglei,*Pfangjianzhonglei;
typedefstruct{
fangjian**Buffer;
intBufsize;*缓冲区大小*
}Buf;
typedefstruct{
intleft;
inttop;
intright;
intbottom;
}Rect;*矩形区域,一个好东西*
*Guide*
intxiangdaohejiemian(intfunction,Pfangjianzhonglei*pRST);
*tools*
intCollect(int(*Comp)(void*,void*),intnum);*按照Comp规则收集前num个信息*
intjiyushijian(void*,void*);*按照次数规则*
intjiyujiage(void*,void*);*按照价格规则*
int(char**szTitles,intnum);
*fun_fun*
introom);*获取一个房间*
introom);
intxierukehuxinxi(FILE*pf,Pkehucustom);
intpRF);*修改房间信息*
intCollect(int(*Comp)(void*,void*),intnum);*按照Comp规则收集前num个信息*
intjiyushijian(void*,void*);*按照次数规则*
intjiyujiage(void*,void*);*按照价格规则*
intDisplay(void);
intGet_Info(char**szTitles,char**buffer,intnum);
intzhanxiankehu(PkehupCu);
intzhanxiankefang(PfangjianpRF);
intpRF);
intBuf_Clear(void);
intBuf_Fill_Tree(PfangjianzhongleipRST_temp);
*Qsort*
voidQsort(void**array,intlow,int0;
}
intBuf_Fill_Tree(PfangjianzhongleipHead)
{
PfangjianpRoom;
for(pRoom=pHead->first;pRoom;pRoom=pRoom->next)
Buf_Room.Buffer[Buf_Room.Bufsize++]=pRoom;
return0;
}
int1;
else
return0;
}
introom)
{
if(!
feof(pf))
fread(room,sizeof(fangjian),1,pf);
if(!
feof(pf))
return1;
else
return0;
}
int1;
else
return0;
}
intxierukefang(FILE*pf,Pfangjianzhongleisub_tree)
{
returnfwrite(sub_tree,sizeof(fangjianzhonglei),1,pf);
}
intxierukefangxinxi(FILE*pf,Pfangjianroom)
{
returnfwrite(room,sizeof(fangjian),1,pf);
}
intxierukehuxinxi(FILE*pf,Pkehucustom)
{
returnfwrite(custom,sizeof(kehu),1,pf);
}
inttianjiazhonglei(PfangjianzhongleipRST)
{
char*szTitles="HowmanyRooms?
";
inti,num;
PfangjianzhongleipRST2;
for(i=0;pRST;pRST=pRST->next,i++)
pRST2=pRST;
pRST2->next=(Pfangjianzhonglei)malloc(sizeof(fangjianzhonglei));
pRST=pRST2->next;
printf("%s",szTitles);
scanf("%d",&num);
0;
}
#defineIR_X100
#defineIR_Y100
#defineIR_CX100
#defineIR_C20
inttianjiakefang(PfangjianzhongleipRST)
{
constchar*szRoom="Whatisthetype?
";
charBuf[BUFSIZE];
intnum,i;
PfangjianzhongleipRST2;
PfangjianpRF;
Buf[0]='\0';
printf("%s",szRoom);
scanf("%d",&num);
for(i=1,pRST2=pRST;i
;
if(!
pRST2)
return0;
pRF=pRST2->first;
pRST2->shuliang++;
while(pRF->next)
pRF=pRF->next;
pRF->next=(Pfangjian)malloc(sizeof(fangjian));
pRF=pRF->next;
0;
}
#defineIC_Y160
#defineIC_Y2220
inttianjiakehu(PfangjianzhongleipRST)
{
constchar*szTree="Whatisthetype?
";
constchar*szRoom="Whichroom";
constchar*szName="Thename";
charRoom[BUFSIZE];
inttype,i;
PfangjianzhongleipRST2;
PfangjianpRF;
PkehupCu;
printf("%s",szTree);
scanf("%d",&type);
printf("%s",szRoom);
scanf("%s",Room);
for(i=1,pRST2=pRST;pRST2->zhonglei!
=type+'0';pRST2=pRST2->next,i++)
;
if(!
pRST2)
return0;
pRF=pRST2->first;
while(!
strcmp(pRF->num,Room)&&pRF)
pRF=pRF->next;
if(!
pRF)
return0;
pCu=pRF->Record;
while(pCu->next)
pCu=pCu->next;
pCu->next=(Pkehu)malloc(sizeof(kehu));
pCu=pCu->next;
pCu->next=NULL;
pRF->times++;
0;
}
intsousuokefangzhonglei(PfangjianzhongleipRST)
{
constchar*szTree="Whichtype?
";
constchar*szError="Can'tfindtheType";
charBuf[BUFSIZE];
inttype;
Buf[0]='\0';
printf("%s",szTree);
scanf("%d",&type);
while(pRST){
if(pRST->zhonglei==type+'0'){
Buf_Clear();
Buf_Fill_Tree(pRST);
Display();
return1;
}
pRST=pRST->next;
}
getch();
return0;
}
intsousuokefangxinxi(PfangjianzhongleipRST)
{
constchar*szTree="Whichtype?
";
constchar*szRoom="Pleaseinputthedoorplate";
constchar*szError[]={"Can'tfindtheType",
"Can'tfindtheRoom"};
charBuf2[BUFSIZE];
inttype,room;
PfangjianpRF;
printf("%s",szTree);
scanf("%d",&type);
printf("%s",szRoom);
scanf("%d",&room);
while(pRST){
if(pRST->zhonglei==type+'0'){
pRF=pRST->first;
while(pRF){
if(!
strcmp(pRF->num,Buf2)){
zhanxiankefang(pRF);
return1;
}*if*
pRF=pRF->next;
}*while*
printf("%s\n",szError[1]);
return0;
}*if*
pRST=pRST->next;
}*while*
printf("%s\n",szError[0]);
getch();
return0;
}
intsousuokehu(PfangjianzhongleipRST)
{
constchar*szName="Thename?
";
constchar*szError="Can'tfindtheone";
charBuf[BUFSIZE];
PfangjianpRF;
PkehupCu;
Buf[0]='\0';
printf("%s",szName);
scanf("%s",Buf);
while(pRST){
pRF=pRST->first;
while(pRF){
pCu=pRF->Record;
while(pCu){
if(!
strcmp(pCu->name,Buf)){
zhanxiankehu(pCu);
return0;
}
elsepCu=pCu->next;
}
pRF=pRF->next;
}*while*
pRST=pRST->next;
}*while*
printf("%s",szName);
getch();
return0;
}
intshanchuzhonglei(Pfangjianzhonglei*pRST)
{
constchar*szTree="Whichtype?
";
constchar*szError="Can'tfindtheType";
charBuf[BUFSIZE];
PfangjianzhongleipRST2,pRST3;
inttype;
Buf[0]='\0';
printf("%s",szTree);
scanf("%d",&type);
pRST2=(*pRST);
if(pRST2->zhonglei==type+'0'){
(*pRST)=pRST2->next;
free(pRST2);
return0;
}*改变头指针*
pRST3=pRST2->next;
while(pRST3){
if(pRST3->zhonglei==type+'0'){
pRST2->next=pRST3->next;
free(pRST3);*删去pRST3*
return1;
}
}
printf("%s",szError);
getch();
return0;
}
intshanchukefang(Pfangjianzhonglei*pRST_pRF,pRF2;
PfangjianzhongleipRST;
inttype;
pRST=(*pRST_0;
}
pRF2=pRF;
pRF=pRF->next;
while(pRF){
if(!
strcmp(pRF->num,Buf)){
pRF2->next=pRF->next;
free(pRF);
pRST->shuliang--;
return1;
}*if*
pRF2=pRF;
pRF=pRF->next;
}*while*
printf("%s",szError[1]);
return0;
}*if*
pRST=pRST->next;
}*while*
printf("%s",szError[0]);
getch();
return0;
}
intshanchukehu(Pfangjianzhonglei*pRST_pRF;
PkehupCu,pCu2;
PfangjianzhongleipRST;
pRST=(*pRST_0;
}
pCu2=pCu;
pCu=pCu->next;
while(pCu){
if(!
strcmp(pCu->name,Buf)){
pCu2->next=pCu->next;
free(pCu);
return0;
}*if*
pCu2=pCu;
pCu=pCu->next;
}
pRF=pRF->next;
}*while*
pRST=pRST->next;
}*while*
getch();
return0;
}
intxiugaikefangzhonglei(PfangjianzhongleipRST)
{
constchar*szTree="Whichtype?
";
constchar*szRoom="Pleaseinputthedoorplate";
constchar*szError[]={"Can'tfindtheType",
"Can'tfindtheRoom"};
charBuf[BUFSIZE];
PfangjianpRF;
inttype;
Buf[0]='\0';
printf("%s",szTree);
scanf("%d",&type);
printf("%s",szRoom);
scanf("%s",Buf);
while(pRST){
if(pRST->zhonglei==type+'0'){
pRF=pRST->first;
while(pRF){
if(!
strcmp(pRF->num,Buf)){
xiugaikefangxinxi(pRF);
return1;
}*if*
pRF=pRF->next;
}*while*
printf("%s",szError[1]);
return0;
}*if*
pRST=pRST->next;
}*while*
printf("%s",szError[0]);
getch();
return0;
}
intxiugaikehu(PfangjianzhongleipRST)
{
constchar*szName="Thename?
";
constchar*szError="Can'tfindtheone";
charBuf[BUFSIZE];
PfangjianpRF;
PkehupCu;
Buf[0]='\0';
printf("
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 语言 毕业 课程设计 宾馆 住宿 系统