C语言旅馆信息管理系统.docx

上传人:b****8 文档编号:9614989 上传时间:2023-02-05 格式:DOCX 页数:17 大小:17.12KB
下载 相关 举报
C语言旅馆信息管理系统.docx_第1页
第1页 / 共17页
C语言旅馆信息管理系统.docx_第2页
第2页 / 共17页
C语言旅馆信息管理系统.docx_第3页
第3页 / 共17页
C语言旅馆信息管理系统.docx_第4页
第4页 / 共17页
C语言旅馆信息管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言旅馆信息管理系统.docx

《C语言旅馆信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言旅馆信息管理系统.docx(17页珍藏版)》请在冰豆网上搜索。

C语言旅馆信息管理系统.docx

C语言旅馆信息管理系统

/*

*

*题目:

旅店信息管理系统

*

*小组成员:

闫若琳戴雨晨马渊沐张子飞李闯

王浩崔以博孙浩浩李春普温健成

*/

#include<>

#include<>

#include<>

#include<>

#defineMIN1

#defineMAX30

#defineLENsizeof(structHotel)看旅店信息\n2.查看某一房间信息\n3.查看旅客信息\n");

printf("4.查找某一旅客信息\n5.旅客入住\n6.旅客换房\n7.旅客退房\n8.退出\n");

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

choice=getch();

switch(choice)

{

case'1':

out_information();break;

case'2':

search_number();break;

case'3':

show_all();break;

case'4':

search_name();break;

case'5':

regeist();break;

case'6':

change();break;

case'7':

fire();break;

case'8':

exit(0);break;

default:

printf("Error!

");break;

}

printf("\n\n请按任意键继续!

\n");

getch();

system("cls");

}while

(1);

return0;

}

voidout_information()//张子飞:

定义out_information函数,完成查看旅店信息功能

{

FILE*fp;

charch;

if((fp=fopen("","r"))==NULL)

{

printf("无法打开文件!

\n");

getch();

exit(0);

}

ch=fgetc(fp);

system("cls");

printf("\n\n\t\t\t旅店信息介绍:

(若没有信息请返回创建)");

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

while(ch!

=EOF)

{

putchar(ch);

ch=fgetc(fp);

}

fclose(fp);

}

voidsearch_number()//李春普、温健成:

定义search_number函数,用来完成查看某一房间的信息

{

charch[2];

introom_number;

structHotel*head,*pa;

head=load();

printf("\n请输入需要查看的房间序号:

(%d~%d):

",MIN,MAX);

scanf("%d",&room_number);

pa=head->next;

if(room_numberMAX)

{

printf("\a\nError!

");

return;

}

do

{

if(pa)

{

if(room_number==pa->room_number)//如果找到相应信息,则输出

{

printf("\n");

printf("roomnumber:

\t%d",pa->room_number);

printf("\n");

printf("name:

\t\t%s",pa->name);

printf("\n");

printf("sex:

\t\t%s",pa->sex);

printf("\n");

printf("ID:

\t\t%s",pa->ID);

printf("\n");

printf("paid:

\t\t%s",pa->paid);

printf("\n");

printf("%d%d%d",pa->inyear,pa->inmonth,pa->inday);

printf("\n");

printf("\n请选择是否继续查看信息(y/n):

\n");

scanf("%s",ch);

if((strcmp(ch,"Y")!

=0)&&(strcmp(ch,"y")!

=0))

{

return;

}

else

{

printf("\n请输入需要查看的房间序号:

(%d~%d):

",MIN,MAX);

scanf("%d",&room_number);

pa=head->next;

if(room_numberMAX)

{

printf("无此房间!

");

return;

}

continue;

}

}

pa=pa->next;

}

else

{

printf("\n该房间还没有旅客入住");

return;

}

}while

(1);

}

voidshow_all()//戴雨晨:

定义是show_all函数,用来显示所有旅客信息

{

structHotel*head,*pa;

head=load();

pa=head->next;

printf("\n所有入住旅客的信息如下:

\n");

while(pa)//显示所有的旅客信息

{

printf("\n");

printf("roomnumber:

\t%d",pa->room_number);

printf("\n");

printf("name:

\t\t%s",pa->name);

printf("\n");

printf("sex:

\t\t%s",pa->sex);

printf("\n");

printf("ID:

\t\t%s",pa->ID);

printf("\n");

printf("paid:

\t\t%s",pa->paid);

printf("\n");

printf("date:

\t\t%d%d%d",pa->inyear,pa->inmonth,pa->inday);

printf("\n");

pa=pa->next;

}

}

voidsearch_name()//马渊沐:

定义search_name函数,用来完成查看某一旅客的信息

{

charch[2];

charinname[20];//用数组inname[20]来储存需要查询的旅客name

structHotel*head,*pa;

head=load();

printf("\n请输入需要查看的旅客姓名:

");

scanf("%s",inname);

pa=head->next;

do

{

if(pa)

{

if(strcmp(inname,pa->name)==0)

{

printf("\n");

printf("roomnumber:

\t%d",pa->room_number);

printf("\n");

printf("name:

\t\t%s",pa->name);

printf("\n");

printf("sex:

\t\t%s",pa->sex);

printf("\n");

printf("ID:

\t\t%s",pa->ID);

printf("\n");

printf("paid:

\t\t%s",pa->paid);

printf("\n");

printf("date:

\t\t%d%d%d",pa->inyear,pa->inmonth,pa->inday);

printf("\n");

printf("\n请选择是否继续查看信息(y/n):

\n");

scanf("%s",ch);

if((strcmp(ch,"Y")!

=0)&&(strcmp(ch,"y")!

=0))

{

return;

}

else

{

printf("\n请输入需要查看的旅客姓名:

");

scanf("%s",inname);

pa=head->next;

continue;

}

}

pa=pa->next;

}

else

{

printf("\n没有查到该旅客的信息");

return;

}

}while

(1);

}

voidregeist()//闫若琳:

定义regeist函数实现入住功能

{

charch[2];

intnumber;

structHotel*head,*p1,*p2,*pa;

head=load();

pa=head->next;

printf("\n已入住房间:

\n");

while(pa)

{

printf("\n");

printf("roomnumber:

\t%d",pa->room_number);

pa=pa->next;

}

fclose(fp);

if((fp=fopen("","a+"))==NULL)

{

printf("无法打开文件!

\n");

getch();

exit(0);

}

head=NULL;

p1=(structHotel*)malloc(LEN);

p2=(structHotel*)malloc(LEN);

if((p1==NULL)||(p2==NULL))

{

printf("动态内存分配失败!

\n");

getch();

exit(0);

}

printf("\n请登记入住信息!

\n");

printf("请选择房间号(%d~%d):

",MIN,MAX);

scanf("%d",&number);

if(numberMAX)

{

printf("无此房间!

");

return;

}

p1->room_number=number;//在该房间没有旅客时,登记入住

printf("name:

\t");

scanf("%s",&p1->name);

printf("sex:

\t");

scanf("%s",&p1->sex);

printf("ID:

\t");

scanf("%s",&p1->ID);

printf("paid:

\t");

scanf("%s",&p1->paid);

printf("date(年月日空格隔开):

");

scanf("%d%d%d",&p1->inyear,&p1->inmonth,&p1->inday);

p1->next=NULL;

if(head==NULL)//将输入的信息保存到链表

{

head=p1;

p2=p1;

}

else

{

p2->next=p1;

p2=p1;

}

fwrite(p2,LEN,1,fp);

fclose(fp);//将链表信息保存到磁盘文件

printf("\n请选择是否继续登记信息(y/n):

");//判断是否继续登记旅客信息

scanf("%s",ch);

if((strcmp(ch,"y")!

=0))

{

printf("\n登记旅客入住信息成功!

");

return(0);

}

elseregeist();

return;//登记完成后返回头链表指针

}

voidchange()//李创:

定义change函数实现换房功能

{

introom_number;

intnewroom_number;

structHotel*head,*pa,*L;

head=load();

printf("\n请输入需要换房的房间序号:

(%d~%d):

",MIN,MAX);

scanf("%d",&room_number);

if(room_numberMAX)

{

printf("无此房间!

");

getch();

return;

}

pa=head->next;

do

{

if(pa)

{

if(room_number==pa->room_number)

{

printf("\n");

printf("roomnumber:

\t%d",pa->room_number);

printf("\n");

printf("name:

\t\t%s",pa->name);

printf("\n");

printf("sex:

\t\t%s",pa->sex);

printf("\n");

printf("ID:

\t\t%s",pa->ID);

printf("\n");

printf("paid:

\t\t%s",pa->paid);

printf("\n");

printf("date:

\t\t%d%d%d",pa->inyear,pa->inmonth,pa->inday);

printf("\n");

printf("\n请输入需要换到的房间序号:

(%d~%d):

",MIN,MAX);

scanf("%d",&newroom_number);

if(newroom_numberMAX)

{

printf("无此房间!

");

getch();

return;

}

pa->room_number=newroom_number;

break;

}

pa=pa->next;

}

else

{

printf("\n该房间还没有旅客入住!

\n");

getch();

return;

}

}while

(1);

fclose(fp);

if((fp=fopen("","wb"))==NULL)

{

printf("无法打开文件!

\n");

getch();

exit(0);

}

L=head->next;

while(L)

{

fwrite(L,LEN,1,fp);

L=L->next;

}

fclose(fp);

printf("\n换房成功!

");

return;

}

voidfire()//王浩:

定义fire函数实现退房功能

{

charinname[20];//用数组inname[20]来储存需要退房旅客name

structHotel*head,*qian,*pa,*L;

head=load();

qian=(structHotel*)malloc(LEN);//开辟新的节点

if(qian==NULL)

{

printf("动态内存分配失败!

\n");//如果动态内存分配失败,返回失败信息

getch();

exit(0);

}

printf("\n请输入需要退房的旅客姓名:

");

scanf("%s",inname);

pa=head->next;

do

{

if(pa)

{

if(strcmp(inname,pa->name)==0)

{

printf("\n");

printf("roomnumber:

\t%d",pa->room_number);

printf("\n");

printf("name:

\t\t%s",pa->name);

printf("\n");

printf("sex:

\t\t%s",pa->sex);

printf("\n");

printf("ID:

\t\t%s",pa->ID);

printf("\n");

printf("paid:

\t\t%s",pa->paid);

printf("\n");

printf("date:

\t\t%d%d%d",pa->inyear,pa->inmonth,pa->inday);

printf("\n");

qian=head;

while(qian->next!

=pa)//找到需要查找节点的前一个节点

qian=qian->next;

if(pa->next==NULL)

qian->next=NULL;

else

qian->next=pa->next;

break;

}

pa=pa->next;

}

else

{

printf("\n没有查找到该旅客的信息!

\n");

getch();

exit(0);

}

}while

(1);

L=head->next;

if((fp=fopen("","wb"))==NULL)

{

printf("无法打开文件!

\n");

getch();

exit(0);

}

while(L)

{

fwrite(L,LEN,1,fp);

L=L->next;

}

fclose(fp);

printf("\n退房成功!

");

}

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

当前位置:首页 > 农林牧渔 > 水产渔业

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

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