c语言课程设计案例精编第八章酒店客房管理系统vc实现_c课程设计案例精编

2020-02-27 其他范文 下载本文

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("------------

精心收集

精心编辑

精致阅读

如需请下载!

《c语言课程设计案例精编第八章酒店客房管理系统vc实现.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
c语言课程设计案例精编第八章酒店客房管理系统vc实现
点击下载文档
相关专题 c课程设计案例精编 管理系统 第八章 课程设计 c课程设计案例精编 管理系统 第八章 课程设计
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文