C语言简易宾馆系统方案.docx
- 文档编号:10177368
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:41
- 大小:233.20KB
C语言简易宾馆系统方案.docx
《C语言简易宾馆系统方案.docx》由会员分享,可在线阅读,更多相关《C语言简易宾馆系统方案.docx(41页珍藏版)》请在冰豆网上搜索。
C语言简易宾馆系统方案
信息科学与工程学院课程设计报告书
专
业:
通信工程
课程设计名称:
《程序设计实践》
题
目:
简易宾馆客房管理系统
班
级:
设计
者:
学
号:
指导教师:
完成时间:
重庆交通大学信息科学与工程学院课程设计任务书
课程
程序设计实践
班级
指导教师
题目
简易宾馆客房管理系统
同组人数
1人(代码量不少于300行)
1•主要功能包括:
管理信息的录入、修改、增加、删除、查询、统计、输出
2•数据用文件存储;
3•主要操作采用菜单方式;
4•数据输入有容错功能(比如成绩:
0-100分,性别:
“男”、“女”,日期型数据年、月、日的限制等);
5.分别用链表和数组实现所要求的功能。
设计报告主要包括内容(参见后面的格式)
1•系统的功能需求及分析
2•数据结构及主要算法设计说明
3
报
告告要求
•系统总体结构
4•系统实现及主要代码
5.系统功能测试
6•设计体会
要求:
学生完成课程设计后,每个同学均应提交课程设计报告及软件;设计报告要求文字通畅,排版规范;
设计报告文字原则上不少于3000字(程序代码除外),并装订成册。
1•题目用黑体三号,段后距18磅(或1行),居中对齐;
2•标题用黑体四号,段前、段后距6磅(或0.3行);
3•正文用小四号宋体,行距为固定值“20”,程序代码用固定值“15”;
4•标题按“一”、“(
㈠”、“1”、“⑴”顺序编号。
上机时间安排
\星期周次、
-一一
二二二
-三
四
五
六
日
第17周
★
★
第18周
★
★
重庆交通大学信息学院课程设计评分表
序号
项目
评分标准及说明
评分
1
学生自评分(20%
按任务书的要求,学生根据任务完成情况及质量自我评分。
多人一组共同完成者,19-20分不超过1人,
17-18不超过2人,由组长评分(多人一组独立完成者按独立完成定)。
2
纪律及平时成绩
(10%
按规定时间到实验室完成实验及综合实验,每缺1次
实验扣2分,缺4次及以上不得分。
3
系统演示(功能)及答辩(40%
根据学生PPT汇报、系统演示及回答问题情况,由答辩组(老师)给出答辩等级(直接在此评分表中打
“2”),指导教师按等级相应分值打分
答辩等级
分值
A
39-40
A
38
A
36-37
B+
34-35
B
32-33
B-
30-31
C+
28-29
C
26-27
C-
24-25
D
0-23
4
项目设计报告
(30%
根据学生完成的项目设计报告书情况,由指导教师给定等级(直接在此评分表中打“2”)及成绩(特别提醒:
设计报告相同者均记0分)
答辩等级:
分值
A+
30
A
28-29
A-
27
B+
25-26
B
23-24
B-
21-22
C+
20
C
19
C-
18
D
0-17
指导教师:
总分:
简易宾馆客房管理系统
设计报告
一、系统的功能需求及分析
(一)设计要求:
1•主要功能包括:
管理信息的录入、修改、增加、删除、查询、统计、输出等;
2•数据用文件存储;
3•主要操作采用菜单方式;
4•数据输入有容错功能(比如成绩:
0-100分,性别:
“男”、“女”,日期型数据年、月、日的限制等);
5.分别用链表和数组实现所要求的功能。
(二)具体设计思路:
1.针对我设计的简易宾馆管理系统,其所需实现的具体功能如下:
(1)登记入住;
(2)信息修改;
(3)
记改找^
登嚳
住息息房
1234560
信息查找;
(4)退房登记;
(5)入住情况统计输出;
(6)
请选择输入』
基本数据文件存储;
2.对于要求的容错功能,主要是在如下地方:
(1)入住登记时判断输入客人身份证号码是否为18位;
(2)入住登记时判断输入电话号码是否为11位;
(3)入住登记时判断是否还有空房间;
(4)入住情况统计输出时判断是否入住客人;
(5)菜单选择的时候必须输入相应的数字(如输入8便会进行报错);
(6)选择房型的时候必须输入相信的数字(同上报错);
二、数据结构及主要算法设计说明
(一)数据结构
1.数组
所需要存储的基本信息为:
客人姓名,身份证号码,手机号码,入住天数,房号已入住房间数;
#defineNumber60〃共有房间60间
structinformation{
charname[20];〃客人姓名
charIDnumber[18];〃身份证号码
charphonenumber[11];//手机号码
intdays;//客人入住天数introomnumber;//客人入住房号Floatfee;//入住房费
}roooms;
structcheckedroom{
informationrooms[Number];
intbigNum;//总统房房号
intsglNum;//普通房房号
intdblNum;//豪华房房号
intallnum;//已入住房间数};
2.链表:
structbroominformation//总统房链表建立{
charbname[13];
charbIDnumber[19];
charbphonenumber[12];
floatbfee;
intbdays;
intbroomnumber;
structbroominformation*next;
};
structdroominformation//豪华房链表建立{
chardname[13];
chardIDnumber[19];
chardphonenumber[12];
floatdfee;
intddays;
intdroomnumber;
structdroominformation*next;
};
structsroominformation//普通房链表建立{
charsname[13];
charsIDnumber[19];
charsphonenumber[12];
floatsfee;
intsdays;
intsroomnumber;
structsroominformation*next;
};
3.菜单:
voidMenu(){
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");printf("§§\n");
printf("§简易宾馆管理系统§\n");
printf("§§\n");
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
printf(”
11.
入住登记
I\n");
printf(”
I2.
信息修改
I\n");
printf(”
I3.
信息查找
I\n");
printf(”
I4.
退房登记
I\n");
printf(”
I5.
入住情况统计输出
I\n");
printf(”
I6.
基本数据文件存储
I\n");
printf("
I0.
退出系统
I\n");
printf(”=====================\n");
printf(”请选择输入:
");
}
(二)主要算法设计说明
系统总体结构
(一)总模块图
简易宾馆管理系统
登记入住客人信息
入住客人信息修改
入住客人信息查找
kJI
退
入
基
房
住
本
登
情1
数
记
况
据
删
统
文
除
计
件
信
输
存
息
出
储
(二)子模块图
1.入住登记
选择客人入住房型,输入入住客人相关信息,如姓名、身份证号码、手机号码、入住天数,输出房费、房号。
并且在输入时需要输入正确的号码位数
2•信息修改
修改指定客人的信息,首先输入联系人的姓名,然
房型选择
后对其入住登记时填入的信息。
3.查找信息
输入想要查找的客人的姓名,然后会按格式输出所查找的联系人的信息。
4.其他模块
退房登记:
输入客人的姓名,然后退房登记,相当于将客人的信息从管理系统总删除,房间的的总数就会减少;
入住情况统计输出:
将宾馆客房入住情况按格式输出;基本数据文件存储:
将文件存储在指定的位置。
四、系统实现及主要代码
(一)数组
1.主函数:
at伯证号阳
AttIDAig烂克找
rt
■
Hi
乌悅证号吗
手机号旧
■
人住天魏
输A姓合
voidmain()
{
intcho=0,sel;
myroom.bigNum=0;
myroom.sglNum=40;
myroom.dblNum=20;
myroom.allnum=0;
while
(1)
{
Menu();
scanf("%d",&cho);
if(cho<0||cho>7)
printf("您的选择有误,请重新选择!
\n");
elseif(myroom.allnum==Number)
printf("客房已全部入住!
\n");
else
switch(cho)
{
case0:
exit(0);
case1:
{
printf(”入住房型选择:
\n1.总统房(Y388.0/天)2.豪华房(Y288.0/天)3.
普通单间(Y188.0/天)\n");
scanf("%d",&sel);
if(sel<0||sel>3)
printf("选择错误,请重新选择!
\n");
else
switch(sel)
{
case1:
biginputInformation();break;
case2:
dblinputInformation();break;
case3:
sglinputInformation();break;
}
}break;
case2:
reviseinformation();break;
case3:
searchinformation();break;
case4:
deleteInformation();break;
case5:
outList();break;
case6:
break;
}
}
}
2.登记入住函数:
voidbiginputInformation()//房型为总统房的房间登记入住
{
intpn;
while
(1)
{
if(myroom.bigNum==20)
{
printf("总统房已全部入住,请选择其他房型!
\n");
return;
}
{
printf("客人姓名:
");scanf("%s",&myroom.rooms[myroom.bigNum].name);
while
(1)
printf("身份证:
");
scanf("%s",&myroom.rooms[myroom.bigNum].IDnumber);
intm;m=strlen(myroom.rooms[myroom.bigNum].IDnumber);
if(m!
=18)
printf("您的输入有误,请重新输入!
\n");else
break;
}
while
(1)
{
printf("客人电话号码:
");scanf("%s",&myroom.rooms[myroom.bigNum].phonenumber);intn;
n=strlen(myroom.rooms[myroom.bigNum].phonenumber);
if(n!
=11)
printf("您的输入有误,请重新输入!
\n");else
break;
}
printf("入住天数:
");scanf("%d",&myroom.rooms[myroom.bigNum].days);
myroom.rooms[myroom.bigNum].fee=myroom.rooms[myroom.bigNum].days*388.0;printf(”应收金额为:
Y%10.2f\n",myroom.rooms[myroom.bigNum].fee);
myroom.rooms[myroom.bigNum].roomnumber=myroom.bigNum+1001;
printf("入住房间房号:
%d",myroom.rooms[myroom.bigNum].roomnumber);
}
myroom.bigNum++;
myroom.allnum++;
printf("\n");
printf("继续入住下一总统房?
\n");
printf("1:
继续;0:
退出\n");
scanf("%d",&pn);
if(pn==0)break;
}
}
voiddblinputInformation()//房型为豪华房的房间登记入住
{
intpn;
while
(1)
{
if(myroom.dblNum==40)
{
printf("豪华房已全部入住,请选择其他房型!
\n");
return;
}
{
printf("客人姓名:
");scanf("%s",&myroom.rooms[myroom.dblNum].name);while
(1)
{
printf("身份证:
");scanf("%s",&myroom.rooms[myroom.dblNum].IDnumber);intm=strlen(myroom.rooms[myroom.dblNum].IDnumber);if(m!
=18)
printf("您的输入有误,请重新输入!
\n");
else
break;
}
while
(1)
printf("客人电话号码:
");
scanf("%s",&myroom.rooms[myroom.dblNum].phonenumber);
intn;n=strlen(myroom.rooms[myroom.dblNum].phonenumber);
if(n!
=11)
printf("您的输入有误,请重新输入!
\n");else
break;
}
printf("入住天数:
");scanf("%d",&myroom.rooms[myroom.dblNum].days);
myroom.rooms[myroom.dblNum].fee=myroom.rooms[myroom.dblNum].days*288.0;printf(”应收金额为:
Y%10.2f\n",myroom.rooms[myroom.dblNum].fee);
myroom.rooms[myroom.dblNum].roomnumber=myroom.dblNum+2001;
printf("入住房间房号:
%d",myroom.rooms[myroom.dblNum].roomnumber);
}
while
(1)
{
if(myroom.sglNum==60)
{
printf("普通房已全部入住,请选择其他房型!
\n");
return;
}
{
printf("客人姓名:
");scanf("%s",&myroom.rooms[myroom.sglNum].name);
while
(1)
{
printf("身份证:
");scanf("%s",&myroom.rooms[myroom.sglNum].IDnumber);intm=strlen(myroom.rooms[myroom.sglNum].IDnumber);
if(m!
=18)
printf("您的输入有误,请重新输入!
\n");
else
break;
}
while
(1)
{
printf("客人电话号码:
");scanf("%s",&myroom.rooms[myroom.sglNum].phonenumber);
intn;n=strlen(myroom.rooms[myroom.sglNum].phonenumber);
if(n!
=11)
printf("您的输入有误,请重新输入!
\n");
else
break;
}
printf("入住天数:
");scanf("%d",&myroom.rooms[myroom.sglNum].days);
myroom.rooms[myroom.sglNum].fee=myroom.rooms[myroom.sglNum].days*188.0;
printf(”应收金额为:
Y%10.2f\n",myroom.rooms[myroom.sglNum].fee);
myroom.rooms[myroom.sglNum].roomnumber=myroom.sglNum+3001;
printf("入住房间房号:
%d",myroom.rooms[myroom.sglNum].roomnumber);
}
myroom.sglNum++;
myroom.allnum++;
printf("\n继续入住下一普通房?
\n1:
继续;0:
退出\n");
scanf("%d",&pn);
if(pn==0)break;
}
}
3.查找函数:
intsearch(charrname[])
{
for(inti=0;i { if(strcmp(rname,myroom.rooms[i].name)==0) returni; } for(i=20;i { if(strcmp(rname,myroom.rooms[i].name)==0) returni; } for(i=40;i { if(strcmp(rname,myroom.rooms[i].name)==0) returni; } i=-1; returni; } 4.修改信息函数: voidreviseinformation() { charrname[20]; printf("请输入要修改客人的姓名: "); scanf("%s",rname); inti=search(rname); if(i==-1) { printf("未找到该客人! \n"); } else { printf("客人姓名: "); scanf("%s",myroom.rooms[i].name); while (1) printf("身份证: "); scanf("%s",myroom.rooms[i].IDnumber);intm=strlen(myroom.rooms[i].IDnumber); if(m! =18) \n"); \n"); printf("您的输入有误,请重新输入! else break; } while (1) { printf("客人电话号码: ");scanf("%s",myroom.rooms[myroom.bigNum].phonenumber); intn;n=strlen(myroom.rooms[myroom.bigNum].phonenumber);if(n! =11) printf("您的输入有误,请重新输入! else break; } printf("入住天数: ");scanf("%d",&myroom.rooms[i].days); if(i>=0&&i<=19){ myroom.rooms[i].fee=myroom.rooms[i].days*388.0; printf(”应收金额为: Y%d\n",myroom.rooms[i].fee); } elseif(i>=20&&i<=39) { myroom.rooms[i].fee=myroom.rooms[i].days*288.0;printf("应收金额为: Y%d\n",myroom.rooms[i].fee); } elseif(i>=40&&i<=59) { myroom.rooms[i].fee=myroom.rooms[i].days*188.0;printf("应收金额为: Y%d\n",myroom.rooms[i].fee); } } return; } 5.退房函数: voiddeleteInformation() { charname[20]; printf("请输入要退房的客人姓名: "); scanf("%s",name); inti=search(name); if(i==-1) { printf("未找到该客人! \n"); } else { if(i<=19&&i>=0) { for(intj=i+1;j {myroom.rooms[j-1]=myroom.rooms[j]; } myroom.bigNum--;myroom.allnum--; } elseif(i>=20&&i<=39) { for(intj=i+1;j {myroom.rooms[j-1]=myroom.rooms[j]; } myroom.dblNum--;myroom.allnum--; } elseif(i>=40&&i<=59) { for(intj=i+1;j {myroom.rooms[j-1]=myroom.rooms[j]; } myroom.sglNum--;myroom.allnum--; } } return; } 6.统计输出函数: voidoutList() { if(myroom.allnum==0) { printf("\n还没有客人入住! \n\n"); } else { printf("宾馆房间入住情况\n"); printf("〓〓〓〓〓〓
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 简易 宾馆 系统 方案