C语言 宾馆客房管理系统
别忘了在文件里面建立这两个文件其他的应该没问题
#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语言 宾馆客房管理系统相关推荐
- 计算机毕设Python+Vue业俊宾馆客房管理系统(程序+LW+部署)
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- PHP-MYSQL宾馆客房管理系统(附源码)
PHP-MYSQL宾馆客房管理系统(附源码) 主要功能 主要语言 部分界面 获取方式 分为 前台用户和 后台管理员两个角色,功能完善,界面优美,运行良好. (文末有获取源代码方式) 主要功能 用户: ...
- [附源码]java+ssm计算机毕业设计业俊宾馆客房管理系统【源码+数据库+LW+部署】
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- 基于宾馆客房管理系统数据库实现
文章只截取部分代码,想要完整源码的小伙伴在评论区留言 目录 1 概述 1.2相关技术分析 2 系统功能设计 3数据库设计 3.1 概念结构设计 3.2逻辑结构设计 3.2.1 E-R图向关系模式的转换 ...
- [附源码]SSM计算机毕业设计宾馆客房管理系统JAVA
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- jsp+ssm计算机毕业设计宾馆客房管理系统【附源码】
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- 【C++例程】:宾馆客房管理系统
目录 宾馆客房管理系统 1 设计思路及总体设计 2 订房功能的c++实现: 3 入住登记功能的c++实现: 宾馆客房管理系统 1 设计思路及总体设计 通过对c++课程的学习,我了解到了其面向对象的高级 ...
- 基于c++课程设计-宾馆客房管理系统(附源码)
文章目录 前言 项目简介 涉及知识点 源码获取方法: 系统登陆界面 系统入口 订房实现 入住登记 源码获取方法: 前言 基于c&c++课程设计-宾馆客房管理系统(附源码+可执行程序) 非常完整 ...
- 宾馆客房管理系统正文
宾馆客房管理系统正文 1 引言 随着人员流动规模的不断扩大,宾馆数量的急剧增加,有关客房管理的各种信息量也在不断成倍增长.面对庞大的信息量,就需要有客房信息管理系统来提高客房管理工作的效率.通过这样 ...
- 宾馆客房管理系统的概述
酒店客房管理系统(Hotel Room Management System)是一种用于管理酒店房间的计算机软件.该系统可以帮助酒店管理人员实现对客房信息的统一管理,包括客房预订.入住.退房.结账等操作 ...
最新文章
- 基于python的界面自动化测试-基于Selenium+Python的web自动化测试框架
- 牛客假日团队赛1 B
- Linux文件系统目录结构
- Dialog源码分析
- oracle备份与恢复--闪回技术
- android retrofit 2.0,android – Retrofit 2.0 OnFailure – 原始响应
- window.parent和window.opener区别
- luogu4365 秘密袭击 (生成函数+线段树合并+拉格朗日插值)
- c语言随机抽取小程序_C语言整人小程序,慎用,谨记!
- Python面试笔记二
- strace 简单用法
- shell for循环两个变量并列_从Go汇编角度解释for循环的两个疑点
- 机器人操作系统——ROS,Robot Operating System
- python定量城市研究_借助Python来实现的定量城市研究
- 51Nod - 1534 棋子游戏
- OPTEE的进程间通信(Inter-Process Communication, IPC)
- 简单易懂的底层知识 —— 计算机的0和1是怎么产生的?
- 行为层JavaScript+jQuery
- stata回归?固定效应模型(组内变换OR LSDV最小二乘法)
- 安卓系统签名文件的使用
热门文章
- 记录VS在线安装下载慢的解决
- [黑金原创教程] FPGA那些事儿《设计篇 I》- 图像处理前夕
- FPGA实现千兆以太网发送
- 从源码角度探索 Mybatis 插件注册方式
- 再写轮播图——两张图切换,一张充当背景并且模糊,一张做展示图
- 私有服务器虚拟化软件市场排名,操作系统、数据库和虚拟化软件2017年市场格局分析...
- 讲讲MS08067红队培训班中的“毕业实战对抗”环节 + 视频
- c1083无法打开 mysql_fatal error C1083: 无法打开包括文件:stdbool.h: No such file or directory...
- 火狐浏览器安装有道翻译插件
- 宝峰uv5r怎么设置信道_宝峰5R说明书 及设置方法