高级程序设计客房管理系统.docx

上传人:b****9 文档编号:25252214 上传时间:2023-06-06 格式:DOCX 页数:30 大小:327.85KB
下载 相关 举报
高级程序设计客房管理系统.docx_第1页
第1页 / 共30页
高级程序设计客房管理系统.docx_第2页
第2页 / 共30页
高级程序设计客房管理系统.docx_第3页
第3页 / 共30页
高级程序设计客房管理系统.docx_第4页
第4页 / 共30页
高级程序设计客房管理系统.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

高级程序设计客房管理系统.docx

《高级程序设计客房管理系统.docx》由会员分享,可在线阅读,更多相关《高级程序设计客房管理系统.docx(30页珍藏版)》请在冰豆网上搜索。

高级程序设计客房管理系统.docx

高级程序设计客房管理系统

高级语言程序设计报告

 

题目:

客房管理系统

报告目录

 

1.题目要求...................................................................................

2.需求分析....................................................................................

3.总体分析....................................................................................

4.详细分析....................................................................................

5.系统模块图................................................................................

6.上机操作...................................................................................

7.小结...........................................................................................

8.源代码...........................................................................................

 

 

1.题目要求

试设计一客房管理系统,使之能提供以下功能:

(1)系统以菜单方式工作

(2)客户信息登记功能

(3)客户信息统计功能

(4)客户信息查询功能

(5)客户信息修改功能

(6)显示入住费用(自选)

[提示]

建立客户信息结构体,结构体成员包括身份证号、姓名、性别、年龄等

建立客房信息结构体,包括房间号、价格、

建立时间结构体,包括年、月、日

 

2.需求分析

(1)实现用户登记功能,要提供结构体的输入操作;

(2)实现统计功能,要提供相应的统计操作;

(3)实现查询功能,要提供查找操作;

(4)实现修改功能,要提供修改操作;

(5)显示入住费用

(6)另外还要提供键盘式菜单实现功能选择。

 

3.总体分析

整个客房管理系统被设计为用户登记模块、统计模块、查询模块和修改模块、显示费用模块。

4.详细分析

数据结构采用结构体,设计如下结构体:

时间结构体:

structdate

{

intmonth;

intday;

intyear;}final;

客房结构体与客户信息结构体嵌套使用:

structhotel

{

intprice;

introom_ID;

structclient

{

charname[20];

intsex;

intage;

charID_card[20];

intcount;

structdatestart;

}personal;}room[M];

(1)用户登记模块提示用户输入自身信息以及客房信息,把数据存入room数组中。

(2)统计模块设置计数器,顺序遍历room数组来实现。

实现对房客数的统计。

(3)查询模块通过基本查找算法查找room数组。

可以按房间号、用户姓名、居民身份证查询。

(4)修改模块采用基本查找算法在数组中找到要修改的数据,直接更改。

(5)显示入住费用模块根据客户输入的信息计算总费用

5.系统模块图

 

6.上机操作

(1)进入客房管理系统初界面

(2)进入主菜单

(3)登记入住信息

 

(4)进入统计界面

 

(5)进入查询菜单

按房间号查询:

按姓名查询:

 

按身份证号查询:

 

(6)进入修改菜单

 

修改客户信息:

修改客房信息:

(7)显示入住费用

(7)退出界面

还有两个公共函数模块,一个是保存函数,使用文件指针,把数据保存在文件中,还有一个就是输出函数,把用户相关信息通过调用函数输出。

voidsave()//保存函数

{

FILE*fp;

inti;

if((fp=fopen("客房管理.txt","w+"))==NULL)//打开输出文件“客房管理.txt”

{printf("cannotopenfile\n");

exit(0);

}

for(i=0;i

{

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

=1)

printf("filewriteerror\n");

fflush(fp);

}

fclose(fp);//关闭文件

}

intshuchu(intq)

{

printf("姓名:

%s",room[q].personal.name);

printf("\n性别(其中:

1表示男,2表示女!

):

%d",room[q].personal.sex);

printf("\n年龄:

%d",room[q].personal.age);

printf("\n身份证号:

%s",room[q].personal.ID_card);

printf("\n入住年份:

%d\t\t",room[q].personal.start.year);

printf("月:

%d\t\t",room[q].personal.start.month);

printf("日:

%d\t\t",room[q].personal.start.day);

printf("\n房间号:

%d",room[q].room_ID);

printf("\n客房单价:

%d",room[q].price);

printf("\n入住人数:

%d\n",room[q].personal.count);return0;

}

7.小结

经过两、三周的编程、调试、运行,总算是搞完了。

老师以前说过,做个课程设计会让你掉一层皮,这话一点也不假!

一个课程设计搞下来,原本不熟悉的知识模块经过不断的改错误、调试运行基本上非常熟悉啦。

果然还是上机操作好!

通过实践掌握C语言快一些。

其实C语言并不难,只要把程序分模块,然后再把模块串起来就行了。

我觉得自己的程序编的不是很好,虽然基本功能都实现了,可是还是需要完善。

比如说统计模块,我只统计了入住的房间数和未住的房间数,统计模块做的太简单,不怎么好。

不过,我自己添加了一个输出总费用的函数模块哦。

总之,通过这次课程设计,我真的学到了好多东西,最起码动手能力方面大大加强。

受益匪浅!

8.附上我的源程序

#include

#include

#include//在使用中要用到的字符串都包含在本文件中

#include//exit()函数就包含在此文件中

#defineM100

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

intj,s,i,w=0,h;//定义几个全局变量

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

structdate

{

intmonth;

intday;

intyear;

}final;

structhotel

{

intprice;

introom_ID;

structclient

{

charname[20];

intsex;

intage;

charID_card[20];

intcount;

structdatestart;

}personal;

}room[M];

intshuchu(intq);

voidsave();//声明保存函数

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

voidtongji();

voidchaxun();//声明查询入住情况函数

voidname();

voidroom_ID();

voidID_card();

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

voidxggr_one();//声明修改客房信息函数中的修改个人函数

voidxggr_s(intj);

voidxgkf();//声明修改客房信息函数中的修改客房函数

voidmoney();//声明显示入住费用函数

 

intmain()

{

intmenu();//声明主菜单函数

system("color01f");

printf("\t*********************************************************************\t");

printf("\t******************高级语言程序课程设计*************************\t\t\n");

printf("\t*******************客房管理信息系统****************************\t\t\n");

printf("\t********************三峡大学理学院*****************************\t\t\n");

printf("\t******************周红艳2010146107**************************\t\t\n");

printf("\t*******************happyeveryday!

*****************************\t\t\n");

printf("\t*************^_^****^_^******^_^*******^_^*********************\t\n");

printf("\t继续请按1,退出请按0。

");

scanf("%d",&i);

switch(i)

{

case1:

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

case0:

exit(0);}

save();

return0;

}

intmenu()//菜单函数

{

system("cls");system("color05f");

intn;

do

{

printf("\n");

printf("\t*********************欢迎登录客房信息管理系统****************\t\t\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]:

");

scanf("%d",&n);

while(n<1||n>6)

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

\n");

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

switch(n)

{

case1:

dengji();break;//调用登记函数

case2:

tongji();break;//调用统计函数

case3:

chaxun();break;//调用查询函数

case4:

xiugai();break;//调用修改函数

case5:

money();break;//调用入住费用函数

case6:

exit(0);

}

}while(n!

=6);

scanf("%d",&n);

return0;

}

 

voiddengji()//登记函数

{

system("cls");

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("请输入入住人数:

");

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

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

save();

printf("\n");

printf("1.继续输入信息2.主菜单3.退出");

printf("请输入选项:

\n");

scanf("%d",&i);

switch(i)

{

case1:

dengji();break;

case2:

menu();

case3:

exit(0);}

}

intshuchu(intq)

{

printf("姓名:

%s",room[q].personal.name);

printf("\n性别(其中:

1表示男,2表示女!

):

%d",room[q].personal.sex);

printf("\n年龄:

%d",room[q].personal.age);

printf("\n身份证号:

%s",room[q].personal.ID_card);

printf("\n入住年份:

%d\t\t",room[q].personal.start.year);

printf("月:

%d\t\t",room[q].personal.start.month);

printf("日:

%d\t\t",room[q].personal.start.day);

printf("\n房间号:

%d",room[q].room_ID);

printf("\n客房单价:

%d",room[q].price);

printf("\n入住人数:

%d\n",room[q].personal.count);return0;

}

 

voidtongji()//统计房客数量函数

{

system("cls");

intg,i=0,count=0;

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

{

if(z[g]==0)

++count;

else

if(z[g]==1)

{i++;

printf("\n正在使用的房间号:

%d\n",g);}

}

printf("\n未使用的房间数:

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

printf("\n已使用房间总数为:

%d。

\n",i);

printf("\n\n");

save();

printf("1.返回主菜单2.退出\n");

printf("请输入选项:

\n");

scanf("%d",&i);

switch(i)

{

case1:

menu();

case2:

exit(0);

}}

 

voidchaxun()//查询模块

{

system("cls");

inti;

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

printf("1.按房间号查询2.按姓名查询3.按身份证号查询4.主菜单5.退出\n");

printf("请输入选项:

");

scanf("%d",&i);

switch(i)

{case1:

room_ID();break;

case2:

name();break;

case3:

ID_card();break;

case4:

menu();break;

case5:

exit(0);

}

}

voidname()//按名字查询函数

{

charstr[10];

printf("\n请输入需查询的姓名:

");

scanf("%s",str);

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

if(strcmp(str,room[s].personal.name)==0)w=1,h=s;

if(w==1)shuchu(h);

elseprintf("没有您要查找的人!

\n");

save();

printf("1.继续按姓名查询2.返回查询菜单3.主菜单4.退出\n");

printf("请输入选项:

");

scanf("%d",&i);

switch(i)

{case1:

name();break;

case2:

chaxun();break;

case3:

menu();

case4:

exit(0);

}

}

voidroom_ID()//按房间号查询函数

{

inta;

printf("\n请输入需查询的房间号:

");//查询输入的房间号的信息,且输出该房间的相关信息

scanf("%d",&a);

for(s=0;s

if(a==room[s].room_ID)

if(z[s]==1)

{shuchu(s);

printf("\n");}

else

printf("该房间未被使用!

");

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

printf("1.继续按房间号查询2.返回查询菜单3.主菜单4.退出\n");

printf("请输入选项:

");

scanf("%d",&i);

switch(i)

{case1:

room_ID();break;

case2:

chaxun();break;

case3:

menu();

case4:

exit(0);

}

}

voidID_card()//按身份证号查询函数

{

charstr[20];

printf("\n请输入需查询的身份证号:

");

scanf("%s",str);

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

if(strcmp(str,room[s].personal.ID_card)==0)w=1,h=s;

if(w==1)shuchu(h);

elseprintf("没有此身份证号的人入住!

\n");

save();

printf("1.继续按身份证号查询2.返回查询菜单3.主菜单4.退出\n");

printf("请输入选项:

");

scanf("%d",&i);

switch(i)

{case1:

ID_card();break;

case2:

chaxun();break;

case3:

menu();

case4:

exit(0);

}}

 

voidxiugai()//修改信息函数

{

system("cls");

intk,m;

do

{

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

printf("\t\t\t\t\t1:

修改客户信息\n\n\n");

printf("\t\t\t\t\t2:

修改客房信息\n\n\n");

printf("\t\t\t\t\t3:

主菜单\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]:

");

scanf("%d",&m);k=m;

if(k<1||k>4)

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

");}}

while(k<1||k>4);

switch(m)

{case1:

xggr_one();break;

case2:

xgkf();break;

case3:

menu();

case4:

exit(0);

}

save();

}

voidxggr_one()/*****修改用户个人信息*****/

{

system("cls");

charb[20];

puts("请输入名字:

");

scanf("%s",b);

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

if(strcmp(b,room[s].personal.name)==0)w=1,h=s;

if(w==1)shuchu(h);

elseprintf("没有您要查找的人!

\n");

xggr_s(h);

save();

puts("1.返回修改菜单2.主菜单3.退出\n");

puts("请输入选项:

\n");

scanf("%d",&i);

switch(i)

{case1:

xiugai();break;

case2:

menu();

case3:

exit(0);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1