c语言酒店管理程序设计报告

时间:2024.4.27

目 录

摘 要 ................................................................................................................... 4

课程设计任务书………………………………………………………………...4

1 软件需求分析说明书 ....................................................................................... 6

1.1登记入住信息 ......................................................................................... 6

1.2客房状态查询 ........................................................................................... 6

1.3住户信息查询 ........................................................................................... 6

1.4结账退房系统 ........................................................................................... 6

2 系统分析与设计 ............................................................................................... 7

2.1软件的数据(结构)设计 ....................................................................... 7

2.1软件的算法设计 ....................................................................................... 8

2.2.1软件模块图 ...................................................................................... 8

2.2.2程序流程图 ...................................................................................... 8

3 程序代码 ......................................................................................................... 10

4程序调试及修改记录 ...................................................................................... 18

5输入数据及输出结果………………………………………………………..18

6实训收获及心得……………………………………………………………..18

1

摘 要

随着个人计算机的的普及,越来越多的重复性工作被交由计算机来完成。在这种大趋势下,传统的纸质档案管理方式已不适应现代服务业的发展。数字化的管理成为酒店等行业的必要条件。酒店客房管理的电脑化对于优化员工工作效率、降低成本及改善服务质量等方面都有十分积极的作用。

本程序是用于酒店客房管理的软件。它可以实现定退房业务处理,用户信息的记录、查询及房间状态管理等功能。虽然比较简陋但已具备应用程序的雏形。

本程序运用Microsoft Visual C++编译器编写,涉及C语言的文件读写,结构数组运用及字符串函数相关知识。

关键词:数字化管理 酒店客房管理 C语言

课程设计任务书

c语言酒店管理程序设计报告

2

3

c语言酒店管理程序设计报告

1 软件需求分析说明书

1.1登记入住信息

登记并记录顾客姓名

登记并记录顾客的证件类型及号码

显示现有空置房间

选择所需要的房间并更改房间状态信息

计算并记录住房费

由于本软件针对操作员设计,所以界面应尽可能简单明了。住房及顾客信息由于涉及多种类型的数据,因此应用结构数组处理。用文件记录相关数据。

1.2客房状态查询

分别显示已入住客房与空置客房

读取住房信息文件的内容并判断分类,借此可以清晰明了的显示客房状态。

1.3住户信息查询

查询顾客所租房房号

查询顾客住房费用

顾客可以通过输入自己的姓名来查询个人的住房信息。

1.4结账退房系统

退房

更新所退房间状态

删除退房用户记录

显示账单

顾客可以输入姓名来完成退房操作,房间状态将更改为未入住。系统将删除该用户信息记录并读取生成账单。

4

2 系统分析与设计

2.1软件的数据(结构)设计

本软件运用了C语言文件的读取与写入功能,各文件的作用如下:

count.txt:用于存储房客数量,内部存储一个int*数据。

room.txt:用于存储房间信息,内部依次存储:

房间状态char*(1位) 房间号char*(4位) 房间类型char*(1位) 房间描述char*(6位) 房间日租金int* 房间月租金int*。

customer.txt:用于存储房客信息,内部依次存储:

姓名char* 证件类型char* 证件号码int* 房间号char*(4位) 房租int*

5

2.2软件的算法设计

2.2.1软件模块图

c语言酒店管理程序设计报告

c语言酒店管理程序设计报告

2.2.2程序流程图

登记入住信息:

6

客房状态查询

c语言酒店管理程序设计报告

显示入住费用:

7

c语言酒店管理程序设计报告

3程序代码

#include<stdio.h>

#include<string.h> //在使用中要用到的字符串都包含在本文件中

#include<stdlib.h> //exit()函数就包含在此文件中 #define M 81

int z[81]={0}; //定义一个数组存放使用的房间的标记的信息,且初始化为0

int j,s; //定义两个全局变量

FILE *fp; //定义一个指向文件的指针变量 struct date

{int month;

int day;

int year;

}final;

struct hotel

{int price;

int room_ID;

struct client

{char name[20];

int sex;

int age;

char ID_card[20];

int count;

struct date start;

}personal;

}room[M]; //定义全局结构体变量,且里面又调用两个结构体

//声明刷新函数fflush( fp),且指向指针变量指向的位置 void save();

void search_situ( ); //声明查看客房入住情况函数

void regist_infor( ); //声明客房登记入住函数

void modify_infor( ); //声明客房信息修改函数函数

void modify_one( ); //声明修改客房信息函数中的修改个人函数 void modify_hotel( ); //声明修改客房信息函数中的修改客房函数 void disp_money( ); //声明显示入住费用函数

int main()

{

8

int menu(); //声明主菜单函数

void print_star();

void print_message();

printf("\n\n\n\n\n");

print_star();

printf("\n");

print_message();

printf("\n");

print_star();

menu(); //把主菜单用函数来实现

save();

return 0;

}

void print_star()

{int i;

for(i=1;i<30;i++)

printf("\t*");

}

void print_message()

{

printf("\t\t\t\t欢迎入住**酒店\n");

}

menu()

{

int n;

do

{

printf("\n");

printf("\t\t*********************菜单********************\n\n\n"); printf("\t\t\t\t1:查看客房入住情况\n\n\n");

printf("\t\t\t\t2:登记入住信息\n\n\n");

printf("\t\t\t\t3:修改客房信息\n\n\n");

printf("\t\t\t\t4:显示入住费用\n\n\n");

printf("\t\t\t\t5:退出\n\n\n");

printf("\t\t\t\t6:返回\n\n\n");

printf("\t\t*********************菜单********************\n"); printf("\n\n\t\t\t 请选择输入选项[1\\2\\3\\4\\5\\6]:\n");

scanf("%d",&n);

while(n<1||n>6)

{printf("请重新输入选项!");

9

scanf("%d",&n);}

switch(n)

{

case 1:search_situ();break; //调用查看函数

case 2:regist_infor();break; //调用登记函数

case 3:modify_infor();break; //调用修改函数

case 4:disp_money();break; //调用显示入住费用函数

case 5:exit(0);

case 6:break;

}

}while(n!=6);

scanf("%d",&n);

return 0;

}

void search_situ( ) //查看函数

{

int g,count=0;

for(g=1;g<=80;g++)

{

if(z[g]==0)

++count;

else

if(z[g]==1)

printf("\n正在使用的房间号:%d",g);

}

printf("\n\n未使用的房间数:%d",count); //通过循环输出未使用的房间数

printf("\n\n");

printf("\n请输入需查询的房间号:\n"); //查询输入的房间号的信息,且输出该房间的相关信息

scanf("%d",&s);

if(z[s]==1)

{printf("姓名:%s",room[s].personal.name);

printf("\n性别(其中:1表示男,2表示女!):%d",room[s].personal.sex);

printf("\n年龄:%d",room[s].personal.age);

printf("\n身份证号:%s",room[s].personal.ID_card);

printf("\n入住年份:%d",room[s].personal.start.year);

printf("月:%d",room[s].personal.start.month);

printf("日:%d",room[s].personal.start.day);

printf("\n房间号:%d",room[s].room_ID);

printf("\n客房单价:%d",room[s].price);

10

printf("\n入住人数:%d",room[s].personal.count);

menu();

}

else

printf("该房间未被使用!");

save(); //调用保存函数

}

void regist_infor( ) // 登记函数

{

printf("请输入登记相关信息:\n");

printf("\n房间号:");

scanf("%d",&j);

room[j].room_ID=j;

printf("\n姓名:");

scanf("%s",&room[j].personal.name);

printf("\n性别(其中:1表示男,2表示女!):");

scanf("%d",&room[j].personal.sex);

printf("\n年龄:");

scanf("%d",&room[j].personal.age);

printf("\n身份证号:");

scanf("%s",&room[j].personal.ID_card);

printf("\n入住年份:");

scanf("%d",&room[j].personal.start.year);

printf("月:");

scanf("%d",&room[j].personal.start.month);

printf("日:");

scanf("%d",&room[j].personal.start.day);

printf("\n客房单价:");

scanf("%d",&room[j].price);

printf("请输入入住人数\n");

scanf("%d",&room[j].personal.count);

z[j]=1; //标记使用的房间为1

save();

}

void modify_infor( ) //修改函数

{

int r,m;

do

{

printf("\t\t\t *******************菜单******************\n\n\n");

11

printf("\t\t\t\t\t 1:修改客户信息\n\n\n");

printf("\t\t\t\t\t 2:修改客房信息\n\n\n");

printf("\t\t\t\t\t 3:menu()\n\n\n");

printf("\t\t\t\t\t4:退出\n\n\n");

printf("\t\t\t *****************************************\n\n\n"); printf("\t\t\t 请选择输入选项[1\\2\\3\\4]:\n");

scanf("%d",&m);

if(m<1||m>3)

{

r=1;getchar();

}

else r=0;

}while(r==1);

switch(m)

{

case 1:modify_one();break;

case 2:modify_hotel();break;

case 3:menu();

case 4:exit(0);

}

save();

}

void modify_one() //修改个人信息函数

{

int q;

char a[20];

printf("\n请选择您要修改的个人选项\n");

printf("1:姓名 2:性别(其中:1表示男,2表示女!) 3:年龄 4:身份证号 5:入住年份 6:入住月份 7入住日 8:入住人数\n");

printf("\t请选择输入选项[1\\2\\3\\4\\5\\6\\7\\8]:\n\b\b");

scanf("%d",&q);

switch(q)

{

int t,p;

char k;

case 1:printf("请输入新名字\n");

for(t=0;t<20;t++)scanf("%s",&a[t]);

strcpy(room[j].personal.name,a);break;

case 2:printf("请选择新性别(其中:1表示男,2表示女!)\n"); scanf("%d",&k);room[j].personal.sex=k;break;

case 3:printf("请输入新年龄\n");

scanf("%d",&p);room[j].personal.age=p;break;

12

case 4:printf("请输入新身份证号\n");

scanf("%d",&p);room[j].personal.ID_card[20]=p;break;

case 5:printf("请输入新年份\n");

scanf("%d",&p);room[j].personal.start.year=p;break;

case 6:printf("请输入新月份\n");

scanf("%d",&p);room[j].personal.start.month=p;break;

case 7:printf("请输入新日子\n");

scanf("%d",&p);room[j].personal.start.day=p;break;

case 8:printf("请输入新入住人数\n");

scanf("%d",&p);room[j].personal.count=p;break;

}

menu();

}

void modify_hotel() //修改客房信息函数

{

int l;

printf("\n\t\t\t\t请选择您要修改的客房信息\n\n");

printf("\t\t\t\t1:房间号\n\n \t\t\t\t2:客房单价\n\n \t\t\t\t3:入住人数\n\n \t\t\t\t4:返回\n\n");

printf("\t\t\t请选择输入选项[1\\2\\3\\4]:\n\b\b");

scanf("%d",&l);

switch(l)

{

case 1:printf("请输入旧房号\n");

scanf("%d",&j);

printf("请输入新房号\n");

scanf("%d",&s);

strcpy(room[s].personal.name,room[j].personal.name);

room[s].personal.sex=room[j].personal.sex;

room[j].personal.sex=0;

room[s].personal.age=room[j].personal.age;

room[j].personal.age=0;

strcpy(room[s].personal.ID_card,room[j].personal.ID_card); room[s].personal.start.year=room[j].personal.start.year; room[j].personal.start.year=0;

room[s].personal.start.month=room[j].personal.start.month; room[j].personal.start.month=0;

room[s].personal.start.day=room[j].personal.start.day;

room[j].personal.start.day=0;

room[s].room_ID=s;

room[s].price=room[j].price;

room[s].personal.count=room[j].personal.count;

13

z[s]=1; z[j]=0; break;

case 2:printf("请输入房号\n");

scanf("%d",&s);

printf("请输入新单价\n");

scanf("%d",&s);room[s].price=s;break;

case 3:printf("请输入房号\n");

scanf("%d",&s);

printf("请输入新入住人数\n");

scanf("%d",&s);

room[s].personal.count=s;break;

case 4:break;

}

save();

menu();

}

void disp_money( ) //显示入住费用函数 {

int i,sum;

printf("请输入房间号;\n");

scanf("%d",&room[j].room_ID);

printf("\n入住年份:%d",room[j].personal.start.year); printf("月:%d",room[j].personal.start.month); printf("日:%d",room[j].personal.start.day);

printf("房间单价为:");

printf("%d",room[j].price);

printf("\n请输入退房时间:\n");

printf("请输入年份:");

scanf("%d",&final.year);

printf("请输入月份:");

scanf("%d",&final.month);

printf("请输入日:");

scanf("%d",&final.day);

printf("\n请输入住房天数:\n");

scanf("%d",&i);

sum=room[j].price*i;

printf("总费用sum=%d\n",sum);

save();

menu();

}

void save() //保存函数

14

{

FILE *fp;

int i;

if((fp=fopen("客房管理.txt","w+"))==NULL) //打开输出文件"客房管理.txt" {printf("cannot open file\n");

exit(0);

}

for(i=0;i<M;i++)

{

if(fwrite((&room[i]), sizeof(room[M]),1,fp)!=1)

printf("file write error\n");

fflush(fp);

}

fclose(fp); //关闭文件

}

15

c语言酒店管理程序设计报告

四、程序调试及修改记录:

c语言酒店管理程序设计报告

错误就没有了,可以运行,运行结果如下:

五、输入数据及输出结果:

输入1

c语言酒店管理程序设计报告

输出未使用的房间数:80 请输入需查询的房间号,

16

输入2 输出请输入登记相关信息 房间号:20 姓名AA性别:1 年龄:18 身份证号:44xxxxxxxxxxxx

入住年份:2012 月:1 日:12 客房单价:

c语言酒店管理程序设计报告

20 请输入入住人数 行......

c语言酒店管理程序设计报告

输入3 查询入住费用:

17

六、实训收获及心得 通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。 运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。

致谢

此次的程序设计题目做的很是辛苦。由于本人基础很差,所以花费了大量的时间,但最后总算成功完成。这与老师的耐心指导是分不开的,同时我也在老师身上学到不少东西。因此特在此对我的任课老师表示感谢!同时也要感谢所有帮助过我的同学。

参考文献

[1]何钦铭 颜晖.《C语言程序设计》.高等教育出版社.20xx年

[2]谭浩强 张基温.《C语言程序设计教程》.高等教育出版社.20xx年

18

更多相关推荐:
《C语言程序设计》课程设计报告(小组)

东莞理工学院《C语言程序设计》课程设计题目:图书信息管理系统院系:电子工程学院专业:电子信息工程年级:20##班别:2班指导教师:##组长:##同组成员:##目录一、目的....................…

c语言课程设计报告

C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体设计四详细设计五运行结果六课程设计体会一实验目的1通过课程设计加深对结构化程序设...

C语言课程设计报告

河南理工大学计算机科学与技术学院课程设计报告20XX20XX学年第一学期课程名称C语言课程设计设计题目《小学算术运算测试》学生姓名学号专业班级计算机07-2班指导教师20XX年9月12日目录1.设计任务书21.…

C语言课程设计报告范例

C语言课程设计报告设计题目专业班级学号姓名任课老师时间目录一课程设计题目及所涉及知识点二课程设计思路及设计流程图三课程设计中遇到的难点及解决办法四小结五附录原程序2一课程设计题目及所涉及知识点一课程设计题目1基...

厦门理工学院11级C语言C语言程序设计课程设计报告

C语言程序设计课程设计报告20xx20xx学年第1学期题目专业班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录一课程设计的目的与要求1二方案实现与调试221掷骰子游戏222射击游戏323汽车...

C语言程序设计课程设计报告

C语言程序设计课程设计报告20xx20xx学年第1学期专业计算机科学与技术班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录一课程设计的目的与要求3二方案实现与调试321掷骰子游戏322汽车加...

c语言程序贪吃蛇课程设计报告

山东工商学院信电学院自动111班第一组贪吃蛇课程设计报告高级语言程序设计课程设计报告ExperimentDesigningreporter课程名称高级语言程序设计英文名称CProgramExperimentDe...

C语言课程设计报告书样本

海南大学三亚学院C语言程序设计课程设计贪吃蛇算法专业计算机科学与技术班级计科1001姓名杨凯文题目学号指导老师李春林目录C语言程序设计课程设计11程序要求32程序分析与设计33流程图44源程序清单45调试过程1...

C语言课程设计报告—人事管理系统

人事管理系统前言:现代计算机技术的发展为人们的学习、生活、工作提供了很大的帮助,各行各业都需要特定计算系统的运用,我们需要了解这些系统是怎么样为我们服务以及他们是怎样编辑出来的。我们需要学习C语言编程,根据课堂…

C语言课程设计报告(通讯录)

设计说明书通讯录系统起止日期20xx年01月03日至20xx年01月08日学班学成生姓名级号绩XXX指导教师签字计算机与通信学院20xx年01月08日一课题任务设计一个通讯录管理系统课题的主要任务是1对通讯录信...

C语言课程设计报告 扫雷

程序课程设计基础课程设计扫雷游戏院系计算机科学技术学院计算机科学与技术师范班级师计091设计者徐群杨松徐春辉杨雷刘安然学号3224312504指导教师黄绍义20xx年12月25日1目录1概述311研究的背景及意...

简单计算器C语言课程设计报告书

C语言课程设计报告书题目:简单计算器院系:班级:学号:姓名:一、课程设计目的1.巩固和加深C语言课程的基本知识的理解和掌握2.掌握C语言编程和程序调试的基本技能3.利用C语言进行基本的软件设计4.掌握书写程序设…

c语言程序设计课程设计报告(34篇)