个人的第一篇文章, 现正处于新手学习阶段,不当之处希望大家多多指正。

编译器为DEV C++ 5.4.0

废话不多说直接上代码

#include<stdio.h>
#include <windows.h>//界面刷新睡眠
#include<stdlib.h>
#include <string.h>//用于用户验证
#define MAX 100 //最大房间容量
#define Stytm 20
#define mAX 1024//文件读取字符长
int fileHang(FILE *fp);
int length=0;//房间顺序
typedef int DataType;
typedef struct Hos
{int num[MAX];//房间号char type[MAX];//房间类型 float money[MAX];//价格 int flag[MAX]; //是否入住 int sumroom;       //已入住房间数 }SeqList;
typedef struct login  //注册集合
{char username[20];char password[20];}Loginsys;
typedef struct yanzheng //用户输入验证;
{char UUname[20];char UUpass[20];
}UUList;
int Menu (int s);//声明
void AddList(SeqList *L);
void NewList(SeqList *L);
void PrintfList(SeqList *L);
void Strcte(Loginsys *S,UUList *P);
void PrintfList(SeqList *L);
void IntList(SeqList *L)//初始化住房房间数;
{L->sumroom=0;return;
}
void AddList(SeqList *L)//添加
{char x;FILE *file=fopen("1.txt","a");//文件打开如果没有则创建 ,有的话继续写人 if(file==NULL){printf("error!");return;}do {char ant[10];int goub[10];
O:  printf("输入房间号 (本酒店房间号为三位):\n");scanf(" %d",&L->num[length]);if(L->num[length]<0||L->num[length]>999) {printf("请重新输入房间号!!");goto O;}fprintf(file,"\n酒店存在的房间号:%d\n",L->num[length]);//使用fprintf写入文件 printf("输入房间类型:\n");scanf("%s",&L[length].type);//当对数据进行打包时 ([length])该位置为打包的第几组数据; fprintf(file,"\n房间类型:%s\n",L[length].type);//字符串写入文件printf("房间价格:\n");scanf("%f",&L->money[length]);fprintf(file,"\n%s的房间价格:%f\n",L[length].type,L->money[length]);
S:  printf("确认是否入住(1(入住)/0(无)):\n");scanf("%d",&L->flag[length]);if(L->flag[length]==0){printf("不入住,即将返回页面。");Sleep(2000);}if(L->flag[length]!=1){printf("请输入合法字符!!!");goto  S;}printf("是否继续入住:(Y/N)\n");scanf(" %c",&x);if(x=='Y'||x=='y'){length++;system("cls");}}while(x=='Y'||x=='y');fclose(file);//一定要关闭文件PrintfList(L);return;}
void PrintfList(SeqList *L)//数据展开
{int i,x;for(i=0;i<=length;i++){printf("\n\n第%d个房间信息:\n",i+1);printf("现有居住的房号:%d\n",L->num[i]);printf("房间居住类型:%s\n",L[i].type);printf("%s型房间价格为%f元\n",L[i].type,L->money[i]);}return;
}
void FindList(SeqList *L)//查找房间号;
{int x,i;printf("\n输入要查的房间号:\n");scanf("%d",&x);for(i=0;i<=length;i++){if(x==L->num[i]){printf("房间已有住客! 信息如下:\n");printf("\n现有居住的房号:%d\n",L->num[i]);printf("房间类型:%s\n",L[i].type);printf("%s型房间价格为%f\n",L[i].type,L->money[i]);break;}if(i==length)printf("该房间为空房间!!");}return;
}
void Findroomname(SeqList *L)//按照房间类型查找
{int s;char a[10];printf("请输入房间类型:\n");scanf("%s",a);for(s=0;s<=length;s++){if(strcmp(a,L[s].type)==0){printf("房间已有住客! 信息如下:\n");printf("\n现有居住的房号:%d\n",L->num[s]);printf("房间类型:%s\n",L[s].type);printf("%s型房间价格为%f\n",L[s].type,L->money[s]);}}if(s>length){printf("不存在该房间类型!!!!\n");}return;
}
void NewList(SeqList *L)//添加房间信息
{printf("\n请添加房间的数据\n");char x;length++;FILE *file=fopen("1.txt","a");//文件打开如果没有则创建 ,有的话继续写人 if(file==NULL){printf("error!");return;}do {char ant[10];int goub[10];printf("输入房间号 (本酒店房间号为三位):\n");scanf(" %d",&L->num[length]);fprintf(file,"\n酒店存在的房间号:%d\n",L->num[length]);//使用fprintf写入文件 printf("输入房间类型:\n");scanf("%s",&L[length].type);//当对数据进行打包时 ([length])该位置为打包的第几组数据; fprintf(file,"\n房间类型:%s\n",L[length].type);//字符串写入文件printf("房间价格:\n");scanf("%f",&L->money[length]);fprintf(file,"\n%s的房间价格:%f\n",L[length].type,L->money[length]);printf("确认是否入住(1(入住)/0(无)):\n");scanf("%d",&L->flag[length]);printf("是否继续入住:(Y/N)\n");scanf(" %c",&x);if(x=='Y'||x=='y'){length++;system("cls");}}while(x=='Y'||x=='y');fclose(file);//一定要关闭文件return;
}
void FixList(SeqList *L)//修改房间信息
{W: int room,i,x;PrintfList(L);printf("\n请输入要修改的房间号:\n");scanf("%d",&room);for(i=0;i<=length;i++){if(room==L->num[i]){printf("房间已有住客! 信息如下:\n");printf("现有居住的房号:%d\n",L->num[i]);printf("房间类型:%s\n",L[i].type);printf("%s型房间价格为%f\n",L[i].type,L->money[i]);break;}if(i==length){printf("该房间为空房间!!");goto W;}}printf("\n请输入您要修改的信息:\n");printf("修改房号请按 (1)\n");printf("修改房间类型请按(2) \n");printf("修改房间价格请按(3)\n"); scanf("%d",&x);switch(x){case 1: printf("\n输入修改后的结果:\n");scanf("%d",&L->num[i]);break;case 2: printf("\n输入修改后的结果:\n");scanf("%s",L[i].type);break;case 3: printf("\n输入修改后的结果:\n");scanf("%f",&L->money[i]);break;default :printf("\n请输入合法的要修改的字符\n"); }return;
}
void DeleteList(SeqList *L)//删除
{int d,i,s;char x;printf("\n请输入要删除的房间号:");PrintfList(L);scanf("%d",&d);for(i=0;i<=length;i++){if(d==L->num[i]){printf("房间已有住客! 信息如下:\n");printf("现有居住的房号:%d\n",L->num[i]);printf("房间类型:%s\n",L[i].type);printf("%s型房间价格为%f\n",L[i].type,L->money[i]);break;}if(i==length){printf("该房间为空房间,无法删除!!\n");}}printf("\n确认删除(Y/N): ");scanf(" %c",&x);if(x=='Y'||x=='y'){printf("删除后:\n");for(s=0;s<length;s++){L->num[i+s]=L->num[i+s+1];//数据覆盖 L->money[i+s]=L->money[i+s+1];length--;}}PrintfList(L);Menu(s);return;
}
char Endingclass()//退出界面
{char a;printf("确定退出系统(Y/y)\n");scanf(" %c",&a);if(a=='y'||a=='Y') printf("\t\t\t\t***********************************************\n");printf("\t\t\t\t------------欢迎下次使用本酒店管理系统---------\n");printf("\t\t\t\t***********************************************\n");return a;
}int Menu(int s)//选单
{SeqList L;Loginsys S;UUList O;//Strcte(&S,&O);int m;printf("正在加载");for(int l=0;l<=4;l++){printf(".");Sleep(300);}//Sleep(4000);system("cls");//刷新; printf("...正在跳转数据....\n");printf("...正在处理后台数据...\n");printf("\t\t------- 欢迎使用GoodHotls后台系统!!! ---------\t\t\t\t\n");printf("跳转成功!\n\n\n");printf("\t\t*------- 1--创建新的数据记录              ---------*\t\t\t\t\n");printf("\t\t*------- 2--增加新的数据记录,并返回选单  ---------*\t\t\t\t\n");printf("\t\t*------- 3--按房间号查找相关信息         ---------*\t\t\t\t\n");printf("\t\t*------- 4--修改记录信息         ---------*\t\t\t\t\n");printf("\t\t*------- 5--删除记录信息         ---------*\t\t\t\t\n");printf("\t\t*------- 6--列出所有数据         ---------*\t\t\t\t\n");printf("\t\t*------- 7--退出             ---------*\t\t\t\t\n");printf("\t\t*------- 8--注册                 ---------*\t\t\t\t\n");printf("\t\t*------- 9--按照房间类型查找           ---------*\t\t\t\t\n");printf("-----------------------------------------------------------------------------------------------------------------\n");printf("要进行的操作:");scanf("%d",&m);system("cls");return m;
}
void Strcte(Loginsys *S,UUList *P)//注册 ,登录;
{   char q,l,m;int x=0,k=0,t=0;printf("\t\t\t\t**********************************************\n"); printf("\t\t\t\t*---------欢迎使用GoodHotls酒店管理系统------*\n");printf("\t\t\t\t**********************************************\n"); P: printf("\t\t\t\t*--------还未注册? 请按 G 进行管理员注册!---*\n");printf("\t\t\t\t**********************************************\n");printf("                "); scanf(" %c",&q);if(q=='G'||q=='g'){  printf("               "); B: printf("请输入要注册账号(不长于20位):\n");printf("              "); scanf("%s",&S[x].username);printf("             "); printf("请输入要注册密码(不长于20位):\n");printf("             "); scanf("%s",&S[x].password); }    else{printf("              "); printf("请输入合法注册字符!\n");goto P;}printf("              "); printf("注册成功,是否登录账号(Y/N)\n");printf("               "); scanf(" %c",&m);if(m=='y'||m=='Y'){system("cls");printf("正在跳转");for(int n=0;n<3;n++){Sleep(100);printf(".");}system("cls");}elseif(m=='n'||m=='N'){printf("请重新注册\n");goto B;}else{printf("请输入合法字符!!\n");}if(S[0].username!=NULL&&S[0].password!=NULL){C: printf("已有账号?请按(Y/y)进行登录:\n");scanf(" %c",&l);if(l=='Y'||l=='y'){L:   printf("请输入账号:\n");scanf("%s",&P[0].UUname);printf("请输入密码:\n");scanf("%s",&P[0].UUpass);}else{printf("请输入合法字符!!!\n");goto C;}}K:   if(strcmp(S[k].username,P[0].UUname)==0){if(strcmp(S[k].password,P[0].UUpass)==0)goto G;else{printf("密码错误!\n");k=0;goto L;}} if(strcmp(S[k].username,P[0].UUname)!=0){k++;if(k<=x) goto K;if(k>x){ k=0; printf("无此用户!\n"); goto L;} }G:
return;
}int main()
{   float sum=0;Loginsys S;//需要在主函数内声明 SeqList L;//需要在主函数内声明 UUList O;SeqList longth[50];//打包字符50个,用于储存字符 Loginsys Names[10];UUList check[10];Strcte(&S,&O);int com;//Strcte(&S,&O);IntList(&L);A: com=Menu(0);switch(com){case 1:    AddList(&L); goto A;break;case 2: NewList(&L);goto A;break;case 3: FindList(&L);goto A;break;case 4: FixList(&L);goto A;break;case 5: DeleteList(&L);goto A; break;case 6: PrintfList(&L); goto A;break;case 7: Endingclass(); if(Endingclass()=='Y'||Endingclass()=='y') break; else goto A;case 8: Strcte(&S,&O);goto A;break;case 9: Findroomname(&L); goto A; break;default: printf("请输入合法数字!!\n"); goto A;break;}for(int s=0;s<=length;s++)//计算酒店目前收入 {sum=sum+L.money[s];}printf("该酒店现客房总收入为:%f\n\n\n\n\n",sum);char line[mAX];//文件读取 int lines = 0;FILE *fp1 = fopen("1.txt","r"); // 创建文件指针及打开文本文件if (fp1 == NULL){printf("文件打开时发生错误");exit(1);}while(fgets(line,mAX,fp1) != NULL){// 或者使用whie(!feof(fp1)){fgets(line,MAX,fp1)}(不推荐,易报错) lines++; // 统计行数printf(line);// 打印文本}printf("\n%d 个房间记录",lines/2/3);//记录共有多少房间记录 fclose(fp1); // 关闭文件指针()return 0;
}​

其中含有文件写入与读取,添加,查找,修改,删除,后台登录系统。

该程序纯属自制,如有雷同,纯属巧合。

数据结构--酒店管理系统(C语言)相关推荐

  1. 酒店管理系统c语言带注释,酒店管理系统--C语言版.pdf

    酒店管理系统...C语言版. // #include #include #include #include //成员变量的声明 int i,j,k,p 0; char temp[] "&qu ...

  2. c语言酒店管理系统,C语言酒店管理系统.pdf

    基于C语言的酒店管理系 统课程设计 学院: 通信与电子工程学院 班级: 电子102班 学号: 2010131085 2010131012 姓名: 邹远文 王帅 指导老师: 题原 日期: 2013年11 ...

  3. c语言大作业酒店管理系统,C语言酒店管理系统(最新整理)

    <C语言酒店管理系统(最新整理)>由会员分享,可在线阅读,更多相关<C语言酒店管理系统(最新整理)(7页珍藏版)>请在人人文库网上搜索. 1.include#include # ...

  4. 酒店管理系统C语言课程设计

    酒店管理系统(只列出了大体的框架,需要源码的朋友请私信联系.) 1.问题描述 建立酒店客房管理信息系统,采用计算机对客房信息进行管理,进一步提高酒店的经济效益和现代化水平.帮助酒店工作人员提高工作效率 ...

  5. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

  6. c语言酒店信息系统的ppt,(完整版)C语言酒店管理系统

    (完整版)C语言酒店管理系统 !- 以下是此酒店的所需的头文件-#includestdio.h#includestdlib.h #includestring.h#includetime.h /成员变量 ...

  7. 数据结构课程设计—同学录管理系统(c语言)

    数据结构课程设计-同学录管理系统(c语言) 文章目录 前言 一.需求分析 二.总体设计 三.代码实现 四.代码说明 前言 计算机相关专业在学习数据结构这门课程时会有课程设计,我被分配到的是同学录管理系 ...

  8. c语言 酒店管理系统的功能设计讲解

    酒店管理系统的功能实现 该管理系统适用于各类中小型酒店的客房资源和客户信息的管理,实现了酒 店的信息化管理,该系统主要包括基础信息设置.客房前台管理.查询统计管理. 挂账管理.系统初始设计.系统维护等 ...

  9. C语言 酒店管理系统

    #酒店管理系统 #码云链接:https://gitee.com/qianzhen1997/c_language_learning.git #一 编译环境 在Ubuntu Linux下,使用vim和su ...

  10. 餐厅管理系统代码c语言,酒店管理系统代码(C语言版)

    <酒店管理系统代码(C语言版)>由会员分享,可在线阅读,更多相关<酒店管理系统代码(C语言版)(7页珍藏版)>请在人人文库网上搜索. 1.include #include #i ...

最新文章

  1. 一次搞懂所有排序算法(二)
  2. Linux系统CentOS下mysql的安装日志
  3. pxe+kickstart无人值守安装
  4. 白话Elasticsearch24- 深度探秘搜索技术之TFIDF算法/向量空间模型算法/lucene的相关度分数算法
  5. java xml 验证工具_验证xml格式
  6. POJ 3468 A Simple Problem with Integers(线段树:区间更新)
  7. java新人面试经历_分享近两周以来的真实面试经历
  8. 【clickhouse】未解决 ClickHouse exception, code: 1002 DB::Exception: Directory already exists
  9. 安卓7.0海信定制版新增功能
  10. c#过滤字符串中相同的字符串只保留一个
  11. 只有程序员才能读懂的西游记
  12. 使用adb命令管理应用
  13. ffmpeg合并多个MP4视频
  14. 用计算机弹出音乐谱,抖音计算器音乐乐谱有哪些?抖音计算器弹奏简谱音乐大全...
  15. jpi多表联查_MyBatis多表间级联查询
  16. JIAR安装报错IRA Startup Failed
  17. 达梦数据库之TEMP表空间
  18. Target EDI 对接详解 – Partner Online EDI 注册
  19. sku设计mysql_如何设计SKU表结构
  20. php 百度收录api_PHP查询百度收录API接口源码

热门文章

  1. Unity基础学习之Unity引擎学习(一)
  2. python手册app_Python 中文手册离线版下载_Python3.6中文手册CHM下载 Python3.6中文手册CHM 免费版_当载软件站...
  3. vb2010 java,连接用vb成功连接access2010
  4. CAD2020学习教程
  5. 5G NR的调制方式与解调算法
  6. 天线多频设计方法精讲
  7. [RK3399][Android7.1][Camera]IMX307 mclk 37.125M补丁
  8. dll文件丢失怎么恢复?如何彻底修复?
  9. Springboot+vue项目酒店民宿管理系统
  10. 下载Bootstrap