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

下载本文档

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

文档简介

1、/* *题目 :旅店信息管理系统* 小组成员:闫若琳 戴雨晨 马渊沐 张子飞 李闯 王浩 崔以博 孙浩浩 李春普 温健成*/#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <string.h>#define MIN 1#define MAX 30#define LEN sizeof(struct Hotel)/用 LEN 代替结构体的 "长度 " void regeist(); void out_information(); void search

2、_number(); void show_all();void search_name(); void change();void 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 Ho

3、tel *head,*pb, *s ;pb=(struct Hotel *)malloc(LEN);/ 开辟新的节点s =(struct 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 (f

4、read (s,LEN,1,fp) pb->next = s;pb = s;s = (struct Hotel *)malloc(LEN); pb->next =NULL;return head ;/返回链表的头指针int main ()/崔以博、孙浩浩 char choice ;do printf ("nn 欢 迎 使 用 旅 店 信 息 管 理 系 统nn");printf ("1. 查看旅店信息 n2.查看某一房间信息 n3. 查看旅客信息 n");printf ("4. 查找某一旅客信息 n5.旅客入住 n6.旅客换房 n7

5、.旅客退房 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();break;case '5':regeist();break;case '6':change();break;case 

6、9;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&

7、quot;,"r")=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 函数,用来完

8、成查看某char ch2 ;int room_number ;struct Hotel *head, *pa ; head=load();printf ("n 请输入需要查看的房间序号: (%d%d) : ",MIN,MAX);scanf ("%d",&room_number);pa= head->next;if (room_number<MIN|room_number>MAX)printf ("anError ! ");return ;doif (pa)if(room_number=pa->room_

9、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->sex);printf ("n");printf ("ID:tt%s",pa->ID);printf

10、 ("n");printf ("paid : tt%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(c

11、h,"y")!=0)return;elseprintf ("n 请输入需要查看的房间序号: (%d%d) : ",MIN,MAX); scanf ("%d",&room_number);pa= head->next;if (room_number<MIN|room_number>MAX)printf (" 无此房间! ");return;continue ;pa = pa->next;elseprintf ("n 该房间还没有旅客入住 ");return;whil

12、e(1);void show_all() / 戴雨晨:定义是 show_all 函数,用来显示所有旅 客信息struct Hotel *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 : tt%s"

13、;,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

14、,pa->inday);printf ("n");pa = pa->next;void search_name ()/ 马渊沐:定义 search_name 函数,用来完成查看某一旅客的信息char ch2 ;char inname20 ;/用数组 inname20 来储存需要查询的旅客 namestruct Hotel *head, *pa ;head=load();printf ("n 请输入需要查看的旅客姓名: ");scanf ("%s",inname);pa= head->next;do if (pa) i

15、f(strcmp(inname,pa->name)=0) printf ("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-&g

16、t;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")!=

17、0)&&(strcmp(ch,"y")!=0) return;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 *

18、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("resturant.txt","a+")=NULL)printf (" 无法打开文件! n"); getch();e

19、xit(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 (" 请选择房间号 (%d%d) : ",MIN,MAX);scanf ("%d",&number);if (number<MIN|number>MAX

20、)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

21、 : 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 ;elsep2->next=p1; p2=p1 ; fwrite(p2,LEN,1,fp);fclose (fp);/将链表

22、信息保存到磁盘文件printf ("n 请选择是否继续登记信息 (y/n):");/判断是否继续登记旅客信息scanf ("%s",ch);if(strcmp(ch,"y")!=0) printf ("n 登记旅客入住信息成功! "); return(0);/登记完成后返回头链表指针else regeist(); return ;void change()/ 李创:定义 change 函数实现换房功能int room_number ;int newroom_number ; struct Hotel *head,

23、*pa,*L ;head=load();printf ("n 请输入需要换房的房间序号: (%d%d) :",MIN,MAX); scanf ("%d",&room_number);if (room_number<MIN|room_number>MAX)printf (" 无此房间! ");getch();return;pa= head->next; do if (pa) if(room_number=pa->room_number) printf ("n");printf (&qu

24、ot;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-&g

25、t;paid);printf ("n");printf ("date : tt%d %d %d",pa->inyear,pa->inmonth,pa->inday); printf ("n");printf ("n 请输入需要换到的房间序号: (%d%d):",MIN,MAX); scanf ("%d",&newroom_number);if (newroom_number<MIN|newroom_number>MAX)printf (" 无此房间

26、 !");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;while(L)fwrite

27、(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 ;do if (pa) if(strcmp(inname,pa->name)=0) printf (&q

温馨提示

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

评论

0/150

提交评论