c语言课程设计案例精编第八章酒店客房管理系统vc实现_c课程设计案例精编
c语言课程设计案例精编第八章酒店客房管理系统vc实现由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c课程设计案例精编”。
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
c语言课程设计案例精编第八章酒店客房管理系统vc
实现
#include #include #include #include //#include //#include
#define TRUE 1 #define FALSE 0
#define N 200
/*定义酒店客房的最大数量,用户可自行设置*/
/*与room记录格式化输出有关的宏定义*/ #define HEADER1 “| Number |Price| E_F| C_Name |
C_IC
|
Date
|CNum|C_AP| n” #define FORMAT1
“|%-10s|%5d|%4d|%-10s|%10s|%4d-%2d-%2d|%4d|%4d|n” #define DATA1
lll->num,lll->price,lll->empty_flag,lll->client_name,lll->client_ic,lll->client_date.da_year,lll->client_date.da_mon,lll->client_date.da_day,lll->client_
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
numdays,lll->client_ap
/*与member记录格式输出有关的宏定义*/ #define HEADER2 “|
Number
|
Name
| Sex|Age |
IC
|
Tele
| n” #define FORMAT2 “|%-12s|%-10s|%-4s|%4d|%15s|%15s|n” #define DATA2
lll->data.num,lll->data.name,lll->data.sex,lll->data.age,lll->data.ic,lll->data.tele
int saveflag=0;
//是否需要存盘的全局标志变量
//分别保存客房文件或会员文件中的记录条int count1=0, count2;数
struct date {
int da_year;int da_mon;int da_day;}sysTime;int currentYear;/*保存当前年份*/
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
int currentMonth;/*保存当前月份*/ int currentDay;/*保存当前日期*/
/*定义与客房有关的数据结构*/ typedef struct room
/*标记为room*/ { char
num[15];
/*客房编号*/ int
price;
/*客房价格*/ int
empty_flag;
/*客房空闲标记,1表示空闲,0表示未空闲*/ char
client_name[15];/*顾客姓名*/ char
client_ic[20];
/*顾客身份证号*/ struct date client_date;/*顾客入住日期*/ int
client_numdays;
/*顾客入住天数*/ int
client_ap;
/*顾客预付款advance payment(ap)入住时,除了房费,另收压金至少100元,即ap>=price*client_numdays+100*/ }ROOM;ROOM GR[N];
//定义客房结构数组
/*定义与会员有关的数据结构*/
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
typedef struct member
/*标记为member*/ { char num[15];
/*会员编号*/ char name[15];
/*会员姓名*/ char sex[4];
/*会员性别M或F,Male:男性,Female:女性*/ int age;
/*会员年龄*/ char ic[20];
/*会员身份证号*/ char tele[15];
/*会员联系电话*/ };
/*定义每条会员记录的数据结构,标记为:member_node*/ typedef struct member_node { struct member data;
/*数据域*/ struct member_node *next;
/*指针域*/ }Member_Node,*Member_Link;
/*Member_Node为member_node类型的结构变量,*Member_Link为member_node类型的指针变量*/ Member_Node *p2,*r2;//定义会员记录指针变量 Member_Link ll;//定义会员指针链表
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
/******************************↓函数声明↓******************************/
//room相关
int AddRoom(ROOM tp[],int n);
//fucntion1 void QueryRoom(ROOM tp[],int n);//fucntion2 void ModifyRoom(ROOM tp[],int n);//fucntion3 int DelRoom(ROOM tp[],int n);void SortRoom(ROOM tp[],int n);
//function4 //function5 void CountRoom(ROOM tp[],int n);//function6 void SaveRoom(ROOM tp[],int n);
//member相关
void AddMember(Member_Link l);
//function7 void QueryMember(Member_Link l);//function8 void ModifyMember(Member_Link l);//function9 void DelMember(Member_Link l);void SortMember(Member_Link l);
//function10 //function11 void CountMember(Member_Link l);//function12 void SaveMember(Member_Link l);//R&R
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
void RegisterRoom(ROOM tp[],int n,Member_Link ll);void ReturnRoom(ROOM tp[],int n,Member_Link ll);
/******************************↑函数声明↑******************************/
//function13 //function14 /******************************************************************* 作用:用于定位数组中符合要求的记录,并返回保存该记录的数组元素下标值
参数:findme[]保存要查找的具体内容;nameornum[]保存按什么在数组中查找;********************************************************************/ int LocateRoom(ROOM tp[],int n,char findme[],char nameornum[]){ int i=0;if(strcmp(nameornum,“num”)==0)/*按客房编号查询*/ {
while(i
{
if(strcmp(tp[i].num,findme)==0)/*若找到findme客房编号的客
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
房记录*/
return i;
i++;
} } else if(strcmp(nameornum,“name”)==0)/*按顾客姓名查询已入住客房*/ {
while(i
{
if(strcmp(tp[i].client_name,findme)==0)/*若找到findme 顾客姓名的客房记录*/
return i;
i++;
} } return-1;/*若未找到,返回一个整数-1*/ }
/************************************************************* 作用:用于定位会员链表中符合要求的节点,并返回指向该节点的指
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
针
参数:findme[]保存要查找的具体内容;nameornum[]保存按什么查找;
在单链表l中查找;**************************************************************/ Member_Node* LocateMember(Member_Link l,char findme[],char nameornum[])
{
Member_Node *r;
if(strcmp(nameornum,“num”)==0)/*按会员编号查询*/
{
r=l->next;
while(r)
{
if(strcmp(r->data.num,findme)==0)/*若找到findme值的会员编号*/
return r;
r=r->next;
} } else if(strcmp(nameornum,“name”)==0)/*按会员姓名查询*/
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
{
r=l->next;
while(r)
{
if(strcmp(r->data.name,findme)==0)
/*若找到findme值的会员姓名*/
return r;
r=r->next;
} } return 0;/*若未找到,返回一个空指针*/ }
/***********倒计时函数***********/ void countdown(int i){
for(;i>0;i--){
Sleep(1000);printf(“bb”);
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
}
} printf(“%d”,i);Sleep(1000);printf(“n”);/*输入字符串,并进行长度验证(长度
char n[255];
do{
printf(notice);/*显示提示信息*/
scanf(“%s”,n);/*输入字符串*/
if(strlen(n)>(size_t)lens)
{
printf(“exceed the required length!n”);
} /*进行长度校验,超过lens值重新输入*/
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
}while(strlen(n)>(size_t)lens);
strcpy(t,n);/*将输入的字符串拷贝到字符串t中*/ }
/*判断是否是闰年函数*/ int isLeapyear(int year){
/*闰年的判断:(1)year被4整除,并且year不被100整除
或(2)year被4整除,并且year被400整除*/
if(year%4==0&&year%100||year%400==0)
return 1;
else
return 0;}
unsigned char* GetPaword(unsigned char*pw){
unsigned char ch;int i=0, hx_flag;
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
while(i
ch =(unsigned char)getch();hx_flag =TRUE;
if(ch == 'r')
//ch == 'r' ch == 13
我说老是实现不了回车结束, == 用成 = 了
=_=||
{
pw[i++]=0;
//0-->null......p[0]=null;
break;
}
else if(ch >= 32 && ch
{
pw[i++]=ch;
}
else if(ch == 8 && i> 0)/*退格键*/
{
pw[i--] = 0;
hx_flag = FALSE;
精心收集
精心编辑
精致阅读
如需请下载!
//
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
putchar(ch);putchar(' ');putchar(ch);
} else hx_flag = FALSE;if(hx_flag)putchar('*');}
pw[i]=0;
//?-->解决数组显示乱码问题,MS注释掉依旧不乱码, 可能在判断回车时, 已经用了该语句
}
void menu(){ char ch;//function15中 保存y,Y,n,N return pw;int selectNum;
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
ROOM GR[N];
/*定义客房结构数组*/
//printf(“n”);system(“cls”);printf(“[ROOM]
[Member]
[R&R]
//用笨方法:space, 不用tab printf(”1.Add
7.Add
13.Register
printf(“2.Query
8.Query
14.Return
printf(”3.Modify
9.Modify
15.Exit
printf(“4.Delete
10.Delete
printf(”5.Sort
11.Sort
printf(“6.Count
12.Count
//system(”pause“);
//暂停, 并显示”按任意键继续“
//Sleep(1000);loop: printf(”n“);printf(”enter a number to selcet the function: “);scanf(”%d“,&selectNum);
精心收集
精心编辑
精致阅读
如需请下载!
n”);n“);n”);n“);n”);n“);n”);
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
if(selectNum >15){
} switch(selectNum){
case 1: count1=AddRoom(GR,count1);break;case 2: QueryRoom(GR,count1);break;case 3: ModifyRoom(GR,count1);break;
//增加客房记录 printf(“no such a function, please try again!”);goto loop;
//查询客房服务 //修改客房记录
case 4: count1=DelRoom(GR,count1);break;//删除客房记录
case 5: SortRoom(GR,count1);break;
case 7: AddMember(ll);break;
//增加会员记录 //查询会员记录
//修改会员记录 case 6: CountRoom(GR,count1);break;
//排序客房记录 //统计客房记录
case 8: QueryMember(ll);break;
case 9: ModifyMember(ll);break;
case 10:DelMember(ll);break;
case 11:SortMember(ll);break;
case 12:CountMember(ll);break;
//删除会员记录 //排序会员记录 //统计会员记录
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
case 13:RegisterRoom(GR,count1,ll);break;case 14:ReturnRoom(GR,count1,ll);break;case 15:
//登记住宿
//退宿
{ system(“cls”);
printf(“n=====>Are you really exit the Hotel Guest Room Management System?(y/n):n”);
scanf(“%c”,&ch);
printf(“testn”);
if(ch=='y'||ch=='Y'){SaveRoom(GR,count1);SaveMember(ll);exit(0);}
}
精心收集
精心编辑
精致阅读
如需请下载!
}
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
}
/***************与客房相关的函数*******************/
/************** 1.增加客房记录 **************/ int AddRoom(ROOM tp[],int n){
char ch,flag=0,num[15];
int i;
system(“cls”);
while(1)/*一次可输入多条记录,直至输入客房编号为0的记录结点添加操作*/
{
while(1)/*输入客房编号,保证该客房编号没有被使用,若输入客房编号为00,则退出添加记录操作*/
{
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
stringinput(num,15,“input room number(pre '00'return menu):”);/*格式化输入客房编号并检验*/
flag=0;
if(strcmp(num,“00”)==0)/*输入为00,则退出添加操作,返回主界面*/
{menu();}
i=0;
while(i
{
if(strcmp(tp[i].num,num)==0)
{
flag=1;
break;
}
i++;
}
if(flag==1)/*提示用户是否重新输入*/
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
{
getchar();
printf(“=====>The number %s is existing,please try again(y/n)?”,num);
scanf(“%c”,&ch);
if(ch=='y'||ch=='Y')
continue;
else
return n;
}
else
{break;}
}
/*给客房记录赋值*/
strcpy(tp[n].num,num);/*将字符串num拷贝到tp[n].num中*/
printf(“Room Price:”);scanf(“%d”,&tp[n].price);
tp[n].empty_flag=1;/*客房空闲标记,1表示空闲,0表示未空闲*/
strcpy(tp[n].client_name,“”);/*顾客姓名*/
strcpy(tp[n].client_ic,“”);/*顾客身份证号*/
tp[n].client_date.da_year=0;/*顾客入住日期*/
tp[n].client_date.da_mon=0;
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
tp[n].client_date.da_day=0;
tp[n].client_numdays=0;/*顾客入住天数*/
tp[n].client_ap=0;/*顾客预付款初始为0,ap>=price*client_numdays+100*/
saveflag=1;
n++;
printf(“>>>>pre any key to start next record!”);
getchar();getchar();
}
return n;}
/************** 2.查询客房记录 **************/ void QueryRoom(ROOM tp[],int n)/*按客房编号或入住顾客姓名查询*/ {
int select;/*1:按客房编号查,2:按入住顾客姓名查,其他:返回主界面(菜单)*/
char searchinput[20];/*保存用户输入的查询内容*/
int p=0;
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
if(n
{
system(“cls”);
printf(“=====>No Room Record!n”);
getchar();getchar();
return;
}
system(“cls”);
cprintf(“=====>1 Search by room number =====>2 Search by client name”);
cprintf(“please choice[1,2]:”);
scanf(“%d”,&select);
if(select==1)
/*按客房编号查询*/
{
stringinput(searchinput,15,“input the existing room number:”);
p=LocateRoom(tp,n,searchinput,“num”);/*在数组tp中查找编号为searchinput值的元素,并返回该数组元素的下标值*/
if(p!=-1)/*若p!=-1*/
{printf(“--------------”);
printf(“Room Number:%s”,tp[p].num);
printf(“Room Price:%d”,tp[p].price);
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
printf(“Room Empty_flag(1:Empty):%d”,tp[p].empty_flag);
printf(“Client_name:%s”,tp[p].client_name);
printf(“Client_ic:%s”,tp[p].client_ic);
printf(“Client_date:%d-%d-%d”,tp[p].client_date.da_year,tp[p].client_date.da_mon,tp[p].client_date.da_day);
printf(“Client_numdays:%d”,tp[p].client_numdays);
printf(“Client_ap:%d”,tp[p].client_ap);
printf(“--------------”);
printf(“pre any key to return”);
getchar();getchar();
}
else
{printf(“=====>Not find this room!n”);getchar();getchar();}
}
else if(select==2)/*按入住顾客姓名查询*/
{
stringinput(searchinput,15,“input the existing client name:”);
p=LocateRoom(tp,n,searchinput,“name”);
if(p!=-1)
{ printf(“--------------”);
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
printf(“Room Number:%s”,tp[p].num);
printf(“Room Price:%d”,tp[p].price);
printf(“Room Empty_flag(1:Empty):%d”,tp[p].empty_flag);
printf(“Client_name:%s”,tp[p].client_name);
printf(“Client_ic:%s”,tp[p].client_ic);
printf(“Client_date,%d-%d-%d”,tp[p].client_date.da_year,tp[p].client_date.da_mon,tp[p].client_date.da_day);
printf(“Client_numdays:%d”,tp[p].client_numdays);
printf(“Client_ap:%d”,tp[p].client_ap);
printf("------------
精心收集
精心编辑
精致阅读
如需请下载!