C语言课程设计-酒店客房管理系统说明书

更新时间:2023-04-29 03:34:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

*******************

实践教学

*******************

兰州理工大学

计算机与通信学院

2010年春季学期

计算机语言课程设计

题目:宾馆客房管理系统

专业班级:

姓名:

学号:

指导教师:

成绩:

目录

摘要.................................................. 错误!未定义书签。前言.................................................. 错误!未定义书签。正文.................................................. 错误!未定义书签。

1. 问题描述....................................... 错误!未定义书签。

2. 需求分析....................................... 错误!未定义书签。

3. 系统总体设计............................... 错误!未定义书签。

4. 详细设计....................................... 错误!未定义书签。

5. 系统测试....................................... 错误!未定义书签。

6. 软件使用说明书........................... 错误!未定义书签。总结.................................................. 错误!未定义书签。参考文献.............................................. 错误!未定义书签。致谢.................................................. 错误!未定义书签。附件Ⅰ部分原程序代码 ................... 错误!未定义书签。

摘要

宾馆客房管理系统是以客房管理业务为背景,设计开发的一套软件。该程序主要实现对宾馆的业务流程进行管理,具有浏览,增加和删除功能,方便管理。同时实现把保存在文件中的数据读出,依次存放在一个列表中,再被列表行行操作来实现相应的功能。在用户退出时再把列表中的内容保存回文本文件中。

同时,这一套系统也是应该数据库原理,在数据结构管理的基础上,应用C语言创编的源程序。其调用函数共分七个大的模块。在编制好程序之后,要对程序进行相应的调试,并且进行测试,以验证程序的正确性与可用性。调试及测试时,通过相关信息,充分验证程序的可用性。本程序通篇均用C语言写成,具有很高的严密性,测试应用宾馆实例,具有很高的真实性与可靠性,这一点也充分验证了C语言在现代社会当中的实用性及普遍性。

关键词:源程序代码;宾馆客房管理系统;链表。

1

前言

在竞争激烈的现代市场中,随处都可用到系统,程序。可见,一套完整的系统对人们的生活显得尤为重要。当然,这些最主要的还是应用于与人们息息相关的宾馆等住宿情况当中。尤其是暑假即将来临之际,人们出行的机率在日益升高。为此,设计一套完整的宾馆客房管理系统对实现宾馆的系统管理显得尤为重要。

随着我国经济的迅速发展,人们的生活水平有了显著提高,假日经济和旅游经济已成为人们消费的热点。各地也把旅游业当作本地经济发展的重要支柱之一,从而促进了宾馆酒店业的快速发展。同时,随着宾馆酒店越来越多,人们的要求越来越高,宾馆酒店业的竞争也愈来愈激烈。如何在激烈的竞争中生存发展,是每一个宾馆酒店必须面临的问题。对宾馆的经营状况起决定作用的是宾馆的服务管理水平。如何利用先进的管理手段,提高宾馆的管理水平,已成为宾馆酒店业发展的当务之急。面对信息时代的机遇和挑战,利用科技手段提高企业管理无疑是一条行之有效的途径。虽然计算机管理并不是宾馆管理走向成功的关键元素,但它可以最大限度地发挥准确、快捷、高效等作用,对宾馆的服务管理提供强有力的支持。因此,采用全新的计算机网络和宾馆管理系统,已成为提高宾馆的管理效率、改善服务水准的重要手段之一。在某种意义上,宾馆客房管理方面的信息化已成为现代化宾馆的重要标志。

2

正文

1问题描述

随着改革开放步伐的加快,我国服务业取得了巨大的发展。而宾馆是我国的改革开放过的程中起步最早的、开拓发展最快、收效最为明显、市场化程度高的服务行业之一。据统计,宾馆业目前网点总量已达300万家以上,宾馆数量的迅猛增长,是宾馆必须面临的问题。对宾馆的经营状况起决定作用的是宾馆的服务管理水平。如何得用先进的管理手段,提高宾馆的管理水平,已成为宾馆行业的当务之急。面对信息时代的机遇和挑战,得用科技手段提高企业管理无疑是一条行之有效的途径。虽然计算机管理并不是宾馆管理走向成功的关键元素,但它可以最大限度地发挥准确、快捷、高效等作用,对宾馆的服务管理提供有力的支持。因此,采用全新的计算机网络和宾馆管理系统,已成为提高宾馆管理效率、改善服务水准的重要手段之一。

2需求分析

针对某宾馆的位置、面积、职工人数、宾馆所设有的标间、双人间、套间等,间数、床位数、同时能接待的人数,宾馆里所拥有的设备,如电话、电梯、空调、现代消防设施、大小餐厅、停车场、会议室,同时提供的代购火车票,飞机票,汽车票等各种辅助服务项目。对该宾馆在发展过程中意识到要想在竞争中取得优势,必须首先提高经营管理,而提高经营管理最重要的保证就是信息技术。宾馆应审时度势,针对宾馆内部管理需求和宾馆酒店业的发展前景,决定首先在客房管理上采用计算机技术。客房管理系统主要实现客房的租借管理等,将客户信息和情况统一归入到数据库,可以实现客房的有效监控,为租借管理提供方便的管理窗口,同时有利于寻找客户或者协助治安管理。

所以,据该宾馆的具体情况,研制开发了"宾馆客房管理系统",系统的主要功能设计有:

(1)基础信息程序设计:客房信息类别、员工信息设计、挂账单位信息。

3

(2)客房前台程序设计:客房预定、住宿登记、宿费提醒、退宿结账。

(3)查询统计管理设计:客房查询、房态查询、预定房查询、住宿查询、退宿查询、

(4)挂账管理:挂账查询、客人结款、

(5)系统初始设计:本单位定义、业务部门定义.

更具体来说管理系统分两大块:数据库的后台管理和前台客房住宿情况的管理

后台管理包括以下部分:

客房信息的输入:包括客房的大小级别、房间设备、预设租金等信息。

3系统总体设计

4

这是一个宾馆客房管理系统的总体设计,其中涉及到程序需要用到的各种函数。

首先,进入该系统,进入主菜单函数,会出现各个功能列表,即相关函数。首先运行输入函数,若不运行输入函数,则进入下一个模块,进入修改函数,修改相关信息,若不修改,则进入下一个环节-----查询函数,查询信息,否则运行下一个函数-----运算函数。若要运行删除函数,则退出运算函数,最后可进入统计函数,进行统计。统计完毕之后,则自动退出系统函数,退出系统。

在运行完每个子函数之后均可返回主菜单函数,再次实现循环运行。

4详细设计

(1)修改客房信息的流程图

5

(2)查询客房情况流程图

(3)输入客房情况(enter)

(输入客房号)

(可输入相关客房信息)

(输入能住的人数)

设置:有人(have)

打印(name)

(Sex)

(Time)

(Cost)

无人(null)

输入相关信息后,返回主菜单,或退出系统。

6

(4)客房费用(cost)

输出(请输入客房号码)

If(!(info=find(nember)))

Printf(“\t没找到\n”);

找到相关客房,则

Printf(“\t如果退房时间在12:00后按一天时间计算\n”);退主菜单,或退出系统。

(5)删除指定客房

输出(请输入指定客房号码)

Scanf(“%s”,&number);

Info=find(number);

if(start==info),

start->prior=0;

否则

删除指定客房

(6)统计客房情况(tongji)

输出(统计未住客房号码输入1

已住客房号码输入2)

Scanf(“%d”,&c);

如果给c的初始值赋为1,则运行info=start;

输出(客房号码)

Count++;

Info=info->next;

输出(共有未住客房%d个)

继续运行,并输出(共有已住客房%d个)

(7)退出系统(tuichu)

7

输出(建议您最好存盘如果存盘输入1

不存输入2)

If(c==1)save();

If(c==2)

输出(谢谢您使用本系统)

Exit(0);-----退出该系统。

。5软件测试

6软件使用说明书

这是一套典型的宾馆管理系统,首先单击进入主菜单,系统会自动提示“请选择功能”,并同时出现功能列表,

它们依次是:

“1 输入客房情况”

“2修改客房情况”

“3 查询客房费用”

“4 客户费用”

“5 删除指定客房”

“6 统计客房情况”

“7 退出系统”。

该系统共包括以上这七种功能,若要进行其一,只需选择功能前面的数字,即可进入该功能子菜单。然后就可以按照系统提示的功能依次进行操作,若操作完毕,即返回主菜单或退出系统。

8

总结

通过对“宾馆客房管理系统“的程序设计,我更深刻地了解了软件开发的重要性,同时,我解决实际问题的能力也得到了提高。

我所设计的宾馆客房管理系统是以宾馆客房管理业务为背景的,通过调研和分析现有的宾馆管理模式和已有的管理软件,我建立了一套完整的系统模型。先从整体框架入手,编写一份结构模型,从而绘制一份完整的程序流程图,再根据流程图确定要调用的函数及总体数据结构,完成系统的程序编写,编写出宾馆客房管理程序。最后进行程序调试并进行测试工作,经测试,充分验证了该程序的正确性。

上一周刚开始设计程序时,我还是没有一丝头绪,甚至不知道该做些什么,但经过一周的努力,我找到了自己的设计方向,凭着自己所学的知识和自己所了解的东西,在老师的悉心指导下,完成各项任务。虽然有许多时候感到困难重重,甚至没有信心,但自己的付出也总算有了回报。我相信,我的努力会得到老师的承认和大家的认同,并且我也会以此为基础,更深入地学好这门课程。

通过这次做课程设计,我学到了许多以前没有学到的东西,认识了许多自己以前没有认识到的问题。通过这段时间的学习,我更深刻地感受到设计程序是我们的一门必修课。

9

参考文献

[1] 王萍.面向对象程序设计. 北京:清华大学出版社,2002.9

[2] 徐孝凯.面向对象程序设计实验.北京:中央广播电视大学出版社,2003.8

[3] 邵维忠.杨芙清. 面向对象的系统分析. 北京:清华大学出版社,1998.8

[4] 郑人杰.殷人昆等. 实用软件工程. 北京:清华大学出版社,1997.4

[5] 谭浩强. C程序设计(第二版). 北京:清华大学出版社,1999.6

[6] 谭浩强. C语言程序设计教程(第二版). 北京:高等教育出版社,1997 .9

[7] 杨路明. C/C++程序设计教程. 湖南:湖南科技出版社,2001.5

[8] 赵建强. 机床挂轮计算程序. 机械与电子,1994.4

[9] 赵建强. 利用微机计算棉纤维长度指标. 纤维标准与检验,1994.4

[10] 赵建强. 利用微机计算梳片法长度指标. 苎麻纺织科技,1994..7

10

致谢

通过这一段时间的学习﹑分析,并同老师的交流,锻炼了我分析问题的能力,同时培养了我解决实际问题的能力。如果没有老师的耐心讲解,我不会认识到自已的不足;如果没有老师的热心提示,我不会发现自已的问题所在;如果没有教师的热情帮助,我不会顺利地完成学习任务。为此,我衷心地感谢老师在这一段时间的悉心指导,同时谢谢老师这段时间的付出与努力,使我对这门课充满了浓厚的兴趣,我更应该感谢学校给我们提供了这样的条件和机会,使我对C语言这门课有了更深的认识,为此,我真诚地道一声:谢谢你们!

11

附件Ⅰ部分原程序代码

#include"stdio.h"

#include"stdlib.h"

struct home

{char roomNO[20];

char name[20];

char sex[10];

char person[10];

char time[10];

char contain[10];

char money[10];

struct home *next;

struct home *prior;

}list_entry;

struct home *start;

struct home *last;

void search1();

main()

{

int b;

struct home *info;

start=0;

for(;;){

switch(menu_select()){

case 1:enter();break;

case 2:alter();break;

case 3:search();break;

case 4:cost();break;

case 5:delete();break;

case 6:tongji();break;

case 7:tuichu();

}

}

}

menu_select()

{

int c;

printf("\t\t=========================================================\n");

12

printf("\t\t=========================================================\n"); printf("\t\t==== 宾馆客房管理系统 ====\n"); printf("\t\t==== 请选择功能 ====\n"); printf("\t\t==== 1 输入客房情况 ====\n"); printf("\t\t==== 2 修改客房情况 ====\n"); printf("\t\t==== 3 查询客房情况 ====\n"); printf("\t\t==== 4 客房费用 ====\n"); printf("\t\t==== 5 删除指定客房 ====\n"); printf("\t\t==== 6 统计客房情况 ====\n"); printf("\t\t==== 7 退出系统 ====\n"); printf("\t\t=========================================================\n"); printf("\t\t=========================================================\n"); do{

printf(" 请按数字选择\n");

scanf("%d",&c);getchar();

}while(c<0||c>10);

return c;

}

enter()

{struct home *info,*dls_store(); char s[10]; char a[10]="have";

for(;;)

{

info=malloc(sizeof(list_entry));

if(info==0)

{printf(" 内存已用完\n");

return;

}

inputs(" \t客房号码 \n",info->nember,10);

if(!info->nember[0]) break;

inputs(" \t能住的人数\n",info->contain,10);

inputs(" \t有人输入have无人输入null\n",info->person,10);

if(!strcmp(a,info->person)){

inputs("\t姓名:\n",info->name,10);

inputs("\t姓别:\n",info->sex,10);

inputs("\t住入时间:\n",info->time,10);

}

inputs(" \t有人时输入时间无人输入\n",info->time,10);

inputs(" \t输入客房费用\n",info->money,10);

start=dls_store(info,start);

}

}

inputs(prompt,s,count)

char *prompt;

char *s;

13

int count;

{

char p[255];

do{

printf(prompt);

gets(p);

if(strlen(p)>count)

printf(" 太长啦\n ");

}while(strlen(p)>count);

strcpy(s,p);

}

struct home *dls_store(i,top)

struct home *i,*top;

{

static struct home *last=0;

struct home *old,*p;

if(last==0){

i->next=0;

i->prior=0;

last=i;

return i;

}

p=top;

old=0;

while(p){

if(strcmp(p->nember,i->nember)<0){

old=p;

p=p->next;

}

else{

if(p->prior){

p->prior->next=i;

i->next=p;

p->prior=i;

return top;

}

i->next=p;

i->prior=0;

p->prior=i;

return i;

}

}

old->next=i;

14

i->next=0;

i->prior=old;

last=i;

return start;

}

alter()

{

struct home *info,*find();

char roomNO[20]; char a[10]="have"; char c[10]="null"; int b;

printf(" \t如想查看客房情况输入1\n");

printf(" \t想修改输入2\n");

printf(" \t不想修改输入3\n");

scanf("%d",&b);

if(b==1)search();

if(b==2){

printf(" \t请输入要客房号码\n");

scanf("%s",nember);getchar();

if(!(info=find(nember)))printf("\t没找到\n");

else

{

display(info);printf("\t下面是修改项目\n");

if(!strcmp(a,info->person))

inputs("\t请输入null:\n",info->person,10);

if(!strcmp(c,info->person)){

inputs("\t请输入名字\n",info->name,10);

inputs("\t请输入性别\n",info->sex,10);

inputs("\t请输入时间\n",info->time,10);

}

}

}

if(b==3) return;

}

struct home *find(nember)

char *nember;

{ struct home *info;

info=start;

while(info){

if(!strcmp(nember,info->nember)) return info;

info=info->next;

}

printf(" \t没找到\n");

return (NULL);

15

}

display(info)

struct home *info;

{ char a[10]="have";

printf("\t客房号码: %s\n",info->nember);

printf("\t能住人数: %s\n",info->contain);

printf("\t无人住时显示null有人住时显示have:%s\n",info->person); if(!strcmp(a,info->person)){

printf("\t名字%s\n",info->name);

printf("\t性别%s\n",info->sex);

printf("\t时间%s\n",info->time);}

printf("\t客房每天费用: %s\n",info->money);

printf("\n");

}

search()

{

int b;

printf(" \t查询只定客房输入1\n");

printf(" \t查询已住客房输入2\n");

printf(" \t查询未住客房输入3\n");

printf(" \t返回主菜单请输入4\n");

do{

scanf("%d",&b);

switch(b){

case 1: search1();break;

case 2: search2();break;

case 3: search3();break;

case 4: return;

}

}while(b<1||b>5);

}

void search1()

{ char nember[10];

struct home *info,*find();

printf(" \t输入房号码\n");

scanf("%s",nember); getchar();

if(!(info=find(nember))) printf(" \t没找到\n");

else display(info);

}

16

search2()

{struct home *info;

char a[10]="have";

info=start;

while(info){

if(!strcmp(info->person,a))

display(info);

printf("\n");

info=info->next;

}

}

search3()

{struct home *info;

char b[10]="null";

info=start;

while(info){

if(!strcmp(b,info->person))

display(info);

printf(" \n ");

info=info->next;

}

}

save()

{

register int t,size;

struct home *info;

char *p;

FILE *fp;

if((fp=fopen("mlist","wb"))==0){

printf(" \t文件打不开\n");

17

exit(0);

}

printf("\t 正存入内存\n");

size=sizeof(list_entry);

info=start;

while(info){

p=(char*)info;

for(t=0;t

putc(*p++,fp);

info=info->next;

}

putc(EOF,fp);

fclose(fp);

printf("\t已存完\n");

}

cost()

{

char nember[10];

struct home *info;

printf(" \t请输入客房号码\n");

gets(nember);

if(!(info=find(nember)))printf("\t没找到\n");

else{ display(info);

printf(" \t如果退房时间在12:00后按一天时间计算\n"); }

}

delete()

{struct home *info,*find();

char nember[10];

printf(" \t请输入指定客房号码\n");

18

scanf("%s",&nember);

info=find(nember);

if(info){

if(start==info){

start=info->next;

if(start)

start->prior=0;}

else

last=0;

}

else

{

info->prior->next=info->next;

if(info!=last)

info->next->prior=info->prior;

else

last=info->prior;

}

free(info);

}

tuichu()

{

int c;

printf("\t建议您最好存盘如果存盘输入1不存输入2\n"); scanf("%d",&c);

if(c==1) save();

if(c==2){

printf("\t谢谢您使用本系统:\n");

exit(0);

19

本文来源:https://www.bwwdw.com/article/ac3q.html

Top