别忘了在文件里面建立这两个文件其他的应该没问题

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
typedef struct
{char name[50];  char sex[50]; char ID[50];char come[50];  char day[50];char number[50]; char type[50];char price[50];  char yushou[50];char yajin[50];  char leave[50];
}datatype;
typedef struct node//定义链表节点
{datatype data;  //数域struct node *next;//指针区域 指向后继元素(链表节点的结构体声明)
}listnode;
typedef listnode *linklist;//结构体指针
linklist head;
listnode *p;
void Output_allInfo(linklist head);//输出所有客户信息
void Delete_info(linklist head);//客户信息的删除
void Info_Modify(linklist head);//按客户姓名的信息修改
listnode *Name_Search(linklist head); //按姓名查找宾馆信息
listnode *Sex_Search(linklist head);//按性别查找宾馆信息
listnode *Roomnum_Search(linklist head);//按房间号查找宾馆信息
listnode *Cometime_Search(linklist head) ;//按入住时间查找
char Display_Menu();//菜单输出函数
listnode* Add(linklist head,int b);//增加客户信息
linklist Create(int a);//宾馆客户信息的建立
void SaveInfoToFile(linklist head);//保存顾客信息到文件中
listnode *ReadInfoFromFile();//信息从文件读出
int main()//主函数
{ system("color 0a");int i,a;for(;;) //while(1){ switch(Display_Menu())  {case 1: printf("**2.宾馆信息的建立**\n");           printf("输入你想输入的数目:");         scanf("%d",&i);       head=Create(i); break;  case 2: printf("**1.从文件读入客户信息!**\n");        ReadInfoFromFile();             break;      case 3: printf("**3.宾馆信息的添加**\n");          printf("输入你想添加的人数:");       scanf("%d",&a);       Add(head,a); break; case 4:  printf("**4.客户姓名的查询**\n");        p=Name_Search(head);             if(p!=NULL)       {       printf("姓名\t 性别\t 证件\t\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n ");     printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->data.name,p->data.sex,p->data.ID,      p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );      printf("\n");  } else printf("该用户不存在!");break;       case 5: printf("**5.客户性别的查询**\n");    p=Sex_Search(head);          if(p!=NULL)         {printf("姓名\t 性别\t 证件\t\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n ");   printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->data.name,p->data.sex,p->data.ID,    p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );      printf("\n");   }elseprintf("该用户不存在!");break;  case 6: printf("**6.客户房号的查询**\n");     p=Roomnum_Search(head);     if(p!=NULL)  {printf("姓名\t 性别\t 证件\t\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n ");   printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->data.name,p->data.sex,p->data.ID, p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );   printf("\n");     }else printf("该房间信息不存在!");break; case 7:printf("**7.客户时间的查询**\n");    p=Cometime_Search(head);if(p!=NULL)   {printf("姓名\t 性别\t 证件\t\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n ");    printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->data.name,p->data.sex,p->data.ID,p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );    printf("\n");  }    else printf("该房间信息不存在!");break;case 8: printf("**8.宾馆信息的修改**\n");         Info_Modify(head);break; case 9: printf("**9.宾馆信息的删除**\n"); Delete_info(head);break;   case 10: printf("**10.宾馆信息的输出**\n");    Output_allInfo(head); break;  case 11:printf("11.保存顾客信息");      SaveInfoToFile(head); break;//保存顾客信息到文件中   case 0:printf("**0.退出**\n");     exit(0);   default: break; } }return 0;
}
//菜单函数
char Display_Menu()
{  int  i;  FILE *fp;char ch; printf("\n\n\n\n\n\n");printf("                        *** 欢迎使用宾馆信息管理系统!***\n\n\n\n                                   **菜单**\n\n\n1.客房信息录入\n2.客人入住登记\n3.客人信息添加\n4.客人姓名查询\n5.客户性别查询\n6.宾馆房号查询\n7.入住时间查询\n8.客户信息修改\n9.宾馆信息删除\n10.信息显示\n11.保存信息\n0.退出") ;   if((fp=fopen("D:\\宾馆\\menu.txt","r"))==NULL) {printf("菜单文件打开失败!");  exit(0);  } ch=fgetc(fp);//从文件指针fp指向的文件中读取一个字符并返回while(ch!=EOF)//当信息没结束 {putchar(ch); //写到屏幕上ch=fgetc(fp);}printf("\n");for(;;)  { scanf("%d",&i); printf("\n");  if(i<0||i>11) printf("选择错误,重新选择:\n");   else break;}   return i;
}
listnode *ReadInfoFromFile()
{ FILE *fp;  int b; fp=fopen("D:\\宾馆\\customer.txt","r");  listnode *p=NULL,*q=NULL,*head=NULL;p=(listnode *)malloc(sizeof(listnode));//将返回的指针(void*)强制转换成ListNode*   head=p;//打开等读的文件。分配一个表结点空间。头结点的下一结点为p     b=1;if(!fp)  {printf("文件打开失败!");  exit(0); }else printf("文件打开成功");  while(!feof(fp)) //含有信息{  /*fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->next->data.name,p->next->data.se x,p->next->data.ID,          p->next->data.come,p->next->data.day,p->next->data.number,p->next->data.price,p->next->data. yajin,p->next->data.leave );*/  q=(listnode *)malloc(sizeof(listnode));   fscanf(fp,"%s%s%s%s%s%s%s%s",p->data.name,p->data.sex,p->data.ID,   p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave); p->next=q;q=p ;b++;}head=Add(head,b); printf("\n"); fclose(fp);  return head;
}
//宾馆客户信息的建立
linklist Create(int a)
{linklist head=(listnode *)malloc(sizeof(listnode));//结构体变量listnode *p,*q;  q=head;while(a--) {p=(listnode *)malloc(sizeof(listnode)); printf("姓名\t 性别\t 证件\t \t入住\t 天数\t 房号\t 价格\t 押金\t 离开\n "); scanf("%s%s%s%s%s%s%s%s%s",p->data.name,p->data.sex,p->data.ID,   p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave);//通过p访问p所指向属对象的数据成员data的数据成员 q->next=p;   q=p; } q->next=NULL; return head;
}
listnode* Add(linklist head,int b)//增加顾客信息
{listnode *m,*n,*p;m=head;n=m->next;  while(n->next!=NULL)//判断返回值是否为空{m=n;  n=n->next; }while(b--) {p=(listnode *)malloc(sizeof(listnode));   printf("姓名\t 性别\t 证件\t \t入住\t 天数\t 房号\t 价格\t 押金\t 离开\n "); printf("***************************\n"); scanf("%s%s%s%s%s%s%s%s%s",p->data.name,p->data.sex,p->data.ID,        p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );  n->next=p;//把p的地址送给n的指针与即是n的下一节点n=p; }n->next=NULL; return head;
}
//按姓名查找宾馆信息
listnode *Name_Search(linklist head)
{listnode *p;  char name[10];int i;  printf("按 1 表示姓名查找:");  p=head->next ;//头结点 scanf("%d",&i);  if(i==1) {printf("输入要查询的姓名:");  scanf("%s",&name);while(p&&strcmp(p->data.name,name)>0)   p=p->next;   if(p==NULL||strcmp(p->data.name,name)<0)p=NULL;}elseprintf("输入错误!");  return p;
}
//按性别查找宾馆信息
listnode *Sex_Search(linklist head)
{listnode *p; char sex[10];int i;  printf("按 1 表示性别查找:");  scanf("%d",&i);p=head->next ;//头结点  if(i==1)  {printf("输入要查询的性别:");  scanf("%s",&sex); while(p&&strcmp(p->data.sex,sex)>0)p=p->next; if(p==NULL||strcmp(p->data.sex,sex)<0) p=NULL;  }return p;
}
//按房间号查找宾馆信息
listnode *Roomnum_Search(linklist head)
{listnode *p;char number[10]; int i;printf("按 1 表示房间号查找:");  p=head->next ;scanf("%d",&i);if(i==1)  {printf("输入要查询的房间号:");   scanf("%s",&number);while(p&&strcmp(p->data.number,number)>0)  p=p->next; if(p==NULL||strcmp(p->data.number,number)<0)  p=NULL; }return p;
}
//按入住时间查找
listnode *Cometime_Search(linklist head)
{listnode *p; char come[10]; int i;  printf("按 1 表示入住时间查找:");  p=head->next ;scanf("%d",&i); if(i==1) {printf("输入要查询的入住时间:");  scanf("%s",&come); while(p&&strcmp(p->data.come,come)>0) p=p->next;  if(p==NULL||strcmp(p->data.come,come)<0)p=NULL; }return p;
}
//按客户姓名的信息修改
void Info_Modify(linklist head)
{  listnode *p;p=Name_Search(head);if(p==NULL){ printf("宾馆信息不存在!\n");  }  else{printf("姓名\t 性别\t 证件\t \t入住\t 天数\t 房号\t 价格\t 押金\t 离开\n ");printf("***************************\n");   scanf("%s%s%s%s%s%s%s%s%s",p->data.name,p->data.sex,p->data.ID,       p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );  printf("宾馆信息已修改!");    }
}
//客户信息的删除
void Delete_info(linklist head)
{int i;  listnode *p,*q; p=Name_Search(head);  if(p==NULL) {printf("信息不存在!\n");   return;  }  else {printf("按 1 删除:");   scanf("%d",&i);if(i==1) {q=head;while(q!=NULL&&q->next!=p)  q=p->next;q->next=p->next; free(p); printf("信息已删除!");    }}
}
//宾馆信息的输出
void Output_allInfo(linklist head)
{listnode *p; p=head;  printf("姓名\t 性别\t 证件\t \t入住\t 天数\t 房号\t 价格\t 押金\t 离开\n "); while(p->next!=NULL)  { printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->next->data.name,p->next->data.sex,p-> next->data.ID,      p->next->data.come,p->next->data.day,p->next->data.number,p->next->data.price,p->next->data. yajin,p->next->data.leave ); p=p->next ;}
}
void SaveInfoToFile(linklist head)
{ FILE *fp;listnode *p; p=head->next; if(p==NULL) { printf("现在没有顾客信息,请先输入顾客信息!\n\n"); return; }fp=fopen("D:\\宾馆\\customer.txt","w");  if(!fp) { printf("文件不存在!\n");return;}while(p)  {fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->data.name,p->data.sex,p->data.ID,      p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );     p=p->next; }  fclose(fp);  printf("文件保存成功!\n");
} 

C语言 宾馆客房管理系统相关推荐

  1. 计算机毕设Python+Vue业俊宾馆客房管理系统(程序+LW+部署)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  2. PHP-MYSQL宾馆客房管理系统(附源码)

    PHP-MYSQL宾馆客房管理系统(附源码) 主要功能 主要语言 部分界面 获取方式 分为 前台用户和 后台管理员两个角色,功能完善,界面优美,运行良好. (文末有获取源代码方式) 主要功能 用户: ...

  3. [附源码]java+ssm计算机毕业设计业俊宾馆客房管理系统【源码+数据库+LW+部署】

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  4. 基于宾馆客房管理系统数据库实现

    文章只截取部分代码,想要完整源码的小伙伴在评论区留言 目录 1 概述 1.2相关技术分析 2 系统功能设计 3数据库设计 3.1 概念结构设计 3.2逻辑结构设计 3.2.1 E-R图向关系模式的转换 ...

  5. [附源码]SSM计算机毕业设计宾馆客房管理系统JAVA

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  6. jsp+ssm计算机毕业设计宾馆客房管理系统【附源码】

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  7. 【C++例程】:宾馆客房管理系统

    目录 宾馆客房管理系统 1 设计思路及总体设计 2 订房功能的c++实现: 3 入住登记功能的c++实现: 宾馆客房管理系统 1 设计思路及总体设计 通过对c++课程的学习,我了解到了其面向对象的高级 ...

  8. 基于c++课程设计-宾馆客房管理系统(附源码)

    文章目录 前言 项目简介 涉及知识点 源码获取方法: 系统登陆界面 系统入口 订房实现 入住登记 源码获取方法: 前言 基于c&c++课程设计-宾馆客房管理系统(附源码+可执行程序) 非常完整 ...

  9. 宾馆客房管理系统正文

    宾馆客房管理系统正文 1  引言 随着人员流动规模的不断扩大,宾馆数量的急剧增加,有关客房管理的各种信息量也在不断成倍增长.面对庞大的信息量,就需要有客房信息管理系统来提高客房管理工作的效率.通过这样 ...

  10. 宾馆客房管理系统的概述

    酒店客房管理系统(Hotel Room Management System)是一种用于管理酒店房间的计算机软件.该系统可以帮助酒店管理人员实现对客房信息的统一管理,包括客房预订.入住.退房.结账等操作 ...

最新文章

  1. 基于python的界面自动化测试-基于Selenium+Python的web自动化测试框架
  2. 牛客假日团队赛1 B
  3. Linux文件系统目录结构
  4. Dialog源码分析
  5. oracle备份与恢复--闪回技术
  6. android retrofit 2.0,android – Retrofit 2.0 OnFailure – 原始响应
  7. window.parent和window.opener区别
  8. luogu4365 秘密袭击 (生成函数+线段树合并+拉格朗日插值)
  9. c语言随机抽取小程序_C语言整人小程序,慎用,谨记!
  10. Python面试笔记二
  11. strace 简单用法
  12. shell for循环两个变量并列_从Go汇编角度解释for循环的两个疑点
  13. 机器人操作系统——ROS,Robot Operating System
  14. python定量城市研究_借助Python来实现的定量城市研究
  15. 51Nod - 1534 棋子游戏
  16. OPTEE的进程间通信(Inter-Process Communication, IPC)
  17. 简单易懂的底层知识 —— 计算机的0和1是怎么产生的?
  18. 行为层JavaScript+jQuery
  19. stata回归?固定效应模型(组内变换OR LSDV最小二乘法)
  20. 安卓系统签名文件的使用

热门文章

  1. 记录VS在线安装下载慢的解决
  2. [黑金原创教程] FPGA那些事儿《设计篇 I》- 图像处理前夕
  3. FPGA实现千兆以太网发送
  4. 从源码角度探索 Mybatis 插件注册方式
  5. 再写轮播图——两张图切换,一张充当背景并且模糊,一张做展示图
  6. 私有服务器虚拟化软件市场排名,操作系统、数据库和虚拟化软件2017年市场格局分析...
  7. 讲讲MS08067红队培训班中的“毕业实战对抗”环节 + 视频
  8. c1083无法打开 mysql_fatal error C1083: 无法打开包括文件:stdbool.h: No such file or directory...
  9. 火狐浏览器安装有道翻译插件
  10. 宝峰uv5r怎么设置信道_宝峰5R说明书 及设置方法