C语言旅馆信息管理系统_第1页
C语言旅馆信息管理系统_第2页
C语言旅馆信息管理系统_第3页
C语言旅馆信息管理系统_第4页
C语言旅馆信息管理系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语百旅馆信息管理系统/* *题目:旅店信息管理系统* 小组成员:闫若琳 戴雨晨 马渊沐 张子飞 李 闯王浩 崔以博 孙浩浩 李春普 温 健成*/#include #include #include #include #define MIN 1#define MAX 30/用#define LEN sizeof(struct Hotel) LEN 代替结构体的 长度 void regeist(); void out_information(); void search_number(); void show_all();void search_name(); void change();voi

2、d fire(); struct Hotel *load();FILE *fp;struct Hotelint room_number; char name 20; char sex10;char ID 20;float paid10;int inyear ;int inmonth ;int inday ; struct Hotel *next ;struct Hotel *load() /定义 load 函数读取当前 的信息,并存到内存链表中struct Hotel *head,*pb, *s ;pb=(struct Hotel *)malloc(LEN);/开辟新的节点s =(struct

3、 Hotel *)malloc(LEN); if(pb=NULL)|(s=NULL)printf ( 动态内存分配失败! n); getch();exit(0);if(fp=fopen(resturant.txt,rb)=NULL) printf ( 无法打开文件! n); getch();exit(0);head = pb;while (fread (s,LEN,1,fp)/读取当前的信息,并存到链表中 pb-next = s; pb = s;s = (struct Hotel *)malloc(LEN);pb-next =NULL;return head ;/返回链表的头指针int mai

4、n ()/崔以博、孙浩浩 char choice ;do printf (nn 欢迎使用旅店信息管理系统 nn);printf (1. 查看旅店信息 n2.查看某一房 间信息 n3.查看旅客信息 n);printf (4. 查找某一旅客信息 n5.旅客入 住n6.旅客换房 n7.旅客退房 n8.退出 n);printf(nn);choice=getch();switch (choice)case 1:out_information();break; case 2:search_number();break;case 3:show_all();break;case 4:search_name()

5、;break;case 5:regeist();break;case 6:change();break;case 7:fire();break;case 8:exit(0);break;default :printf (Error ! );break ;printf (nn 请按任意键继续 ! n); getch();system(cls);while(1);return 0 ;void out_information() / 张子飞:定义 out_information 函数,完成查看旅店信息功能 FILE *fp;char ch ;if(fp=fopen(information.txt,r

6、)=NULL)printf ( 无法打开文件! n);getch();exit(0);ch=fgetc(fp);system(cls);printf(nnttt 旅店信息介绍: (若没有信息 请返回创建 );printf(nnnt);while (ch!=EOF)putchar(ch);ch=fgetc(fp);fclose(fp);void search_number () /李春普、 温健成:定 义 search_number函数,用来完成查看某一房间 的信息char ch2 ;int room_number ;struct Hotel *head, *pa ;head=load();pr

7、intf (n 请输入需要查看的房间序号:(%d%d) : ,MIN,MAX);scanf (%d,&room_number);pa= head-next;if (room_numberMAX)printf (anError ! );return ;doif (pa)if(room_number=pa-room_number) /如果找到相应信息,则输出printf (n);printf(roomnumber:t%d,pa-room_number); printf (n);printf (name :tt%s,pa-name);printf (n);printf (sex: tt%s,pa-s

8、ex);printf (n);printf (ID:tt%s,pa-ID);printf (n);printf (paid : tt%s,pa-paid);printf (n);printf(%d %d %d,pa-inyear,pa-inmonth,pa-in day);printf (n);printf (n 请选择是否继续查看信息 (y/n):n);scanf (%s,ch);if(strcmp(ch,Y)!=0)&(strcmp(ch,y)!=0 )return;elseprintf (n 请输入需要查看的房间 序号: (%d%d) :,MIN,MAX);scanf (%d,&room

9、_number); pa= head-next;if(room_numberMAX)printf ( 无此房间! );return;continue ;pa = pa-next;elseprintf (n 该房间还没有旅客入住 );return;while(1);void show_all()/ 戴雨晨:定义是show_all函数,用来显示所有旅客信息 struct Hotel *head, *pa ; head=load();pa= head-next;printf (n 所有入住旅客的信息如下: n); while (pa)/ 显示所有的旅客信息printf (n); printf(roo

10、mnumber:t%d,pa-room_number); printf (n);printf (name :tt%s,pa-name); printf (n);printf (sex: tt%s,pa-sex); printf (n);printf (ID:tt%s,pa-ID);printf (n);printf (paid : tt%s,pa-paid);printf (n);printf (date : tt%d %d %d,pa-inyear,pa-inmonth,pa-in day);printf (n);pa = pa-next;void search_name () / 马 渊

11、沐 : 定 义 search_name函数,用来完成查看某一旅客的信 息char ch2 ;char inname20 ; / 用数组 inname20来 储存需要查询的旅客 namestruct Hotel *head, *pa ;head=load();printf (n 请输入需要查看的旅客姓名: );scanf (%s,inname); pa= head-next;doif (pa)if(strcmp(inname,pa-name)=0) printf (n); printf(roomnumber:t%d,pa-room_number); printf (n);printf (name

12、 :tt%s,pa-name); printf (n);printf (sex: tt%s,pa-sex); printf (n);printf (ID:tt%s,pa-ID);printf (n); printf (paid : tt%s,pa-paid); printf (n);printf (date : tt%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;

13、elseprintf (n 请输入需要查看的旅客 姓名: );scanf (%s,inname);pa= head-next; continue ;pa = pa-next;elseprintf (n 没有查到该旅客的信息 );return ;while(1);void regeist()/闫若琳:定义 regeist 函数实现入住功能char ch2 ;int number ;struct Hotel *head,*p1,*p2,*pa;head=load();pa= head-next;printf (n 已入住房间: n);while (pa)printf (n);printf(room

14、number:t%d,pa-room_number);pa = pa-next;fclose(fp);if(fp=fopen(resturant.txt,a+)=NULL) printf ( 无法打开文件! n);getch();exit(0);head=NULL;p1=(struct Hotel *)malloc(LEN);p2=(struct Hotel *)malloc(LEN);if (p1=NULL)|(p2=NULL)printf ( 动态内存分配失败! n);getch();exit(0);printf (n 请登记入住信息! n);printf ( 请 选 择 房 间 号 (%

15、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-i

16、nyear,&p1-inmonth,&p 1-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);else regeist();return ;/ 登记

17、完成后返回头链表指针void change()/李创:定义 change函数实现换房功能int room_number ;int newroom_number ;struct Hotel *head, *pa,*L ;head=load();printf (n 请输入需要换房的房间序号:(%d%d) : ,MIN,MAX);scanf (%d,&room_number);if (room_numberMAX)printf ( 无此房间! ); getch();return; pa= head-next;doif (pa) if(room_number=pa-room_number) print

18、f (n);printf (roomnumber:t%d,pa-room_number);printf (n);printf (name :tt%s,pa-name); printf (n);printf (sex: tt%s,pa-sex);printf (n);printf (ID:tt%s,pa-ID);printf (n);printf (paid : tt%s,pa-paid);printf (n);printf (date : tt%d %d %d,pa-inyear,pa-inmonth,pa-in day);printf (n);printf (n 请输入需要换到的房间序 号:

19、 (%d%d):,MIN,MAX);scanf (%d,&newroom_number);if (newroom_numberM AX)printf ( 无此房间 !);getch(); return;pa-room_number=newroom_number ;break ;pa = pa-next;elseprintf (n 该房间还没有旅客入住! n);getch();return;while(1);fclose(fp);if(fp=fopen(resturant.txt,wb)=NULL)printf ( 无法打开文件! n);getch();exit(0);L=head-next;w

20、hile(L)fwrite(L,LEN,1,fp);L=L-next ;fclose(fp);printf (n 换房成功! );return;void fire()/王浩:定义 fire函数实现退房功能char inname20 ; / 用数组 inname20来 储存需要退房旅客 namestruct Hotel *head, *qian,*pa,*L ;head=load();qian=(struct Hotel *)malloc(LEN);/开辟新的节点if (qian=NULL)printf ( 动态内存分配失败! n); / 如 果动态内存分配失败,返回失败信息getch();exit(0);printf (n 请输入需要退房的旅客姓名: );scanf (%s,inname);pa=head-next

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论