简易房客管理系统,用数组写的,学籍管理系统也可以参考。
大学C语言小学期作业。
有不对的谢谢大家指正,有什么问题可以评论。
开始先定义密码,账号,结构体以及各个函数名。
账号和密码可以自定义。## C语言,管理系统

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define Name "l"
#define Key "123456"
typedef struct Person
{char numh[5];char name[20];char Intime[20];int Data;int Deposit;int Rent;char houset[20];}Person;
Person person[20];int num;void Iput();void meun();void Goin();void deleteroom();void chaxun();void xiugai();void paixu();void print();void keep();void Getfile();int login(char a[],char b[]);

主函数和写入文件操作

 int main(){Getfile();Iput();}void Getfile(){Person x;num = 0;FILE *fp = fopen("1.txt", "at+");if (!fp){printf("打开文件失败\n");exit(0);}fscanf(fp, "%s%s%s%d%d%d%s", x.numh, x.name, x.Intime, &x.Data, &x.Deposit, &x.Rent, x.houset);while (strcmp(x.numh, "END") != 0){person[num++] = x;fscanf(fp, "%s%s%s%d%d%d%s", x.numh, x.name, x.Intime, &x.Data, &x.Deposit, &x.Rent, x.houset);}fclose(fp);}

输入账号和密码

void Iput(){char a[20],b[20];printf("请输入账户:");scanf("%s",a);getchar();printf("请输入密码:");scanf("%s",b);getchar();if(login(a,b)){printf("账号密码正确\n");meun(); }else{printf("账号或密码错误\n");Iput();}
}
int login(char a[],char b[])
{int flag=0;if((strcmp(a,Name)==0)&& (strcmp(b,Key)==0))flag=1;return flag;
}

菜单显示

void meun(){int i;while (1){printf("\t--------------------------\n"); printf("\t **欢迎登陆酒店管理系统** \n");printf("\t| 1.登记入住             |\n"); printf("\t| 2.查询客房信息         |\n"); printf("\t| 3.修改押金数目         |\n"); printf("\t| 4.删除房客信息         |\n"); printf("\t| 5.房间入住数量排序     |\n"); printf("\t| 6.所有住房信息         |\n");printf("\t| 7.退出(保存)         |\n"); printf("\t--------------------------\n");printf("\t请选择您要进行的操作:\n");scanf("%d", &i);switch(i) {case 1:Goin(); break;case 2:chaxun(); break;case 3:xiugai(); break;case 4:deleteroom(); break;case 5:paixu(); break;case 6:print(); break;case 7:keep(); break;}}}

对客人信息进行输入

void Goin(){Person x;printf("请输入房间号:\n");scanf("%s",x.numh);printf("请输入姓名:\n");scanf("%s",x.name);printf("请输入入住时间:\n");scanf("%s",x.Intime);printf("请输入入住时长:\n");scanf("%d",&x.Data);printf("请输入押金:\n");scanf("%d",&x.Deposit);printf("请输入租金:\n");scanf("%d",&x.Rent);printf("请输入房间类型:\n");scanf("%s",x.houset);person[num] = x;num++;}

客人信息查询

void chaxun(){int i=0,number;char a[10];printf("请输入查询的姓名:\n");scanf("%s",a);for (i = 0; i < num; i++){if (strcmp(person[i].name, a) == 0){break;}}if (i == num){printf("没有该住客\n");}elseprintf("%s %s %s %d %d %d %s\n", person[i].numh, person[i].name, person[i].Intime, person[i].Data, person[i].Deposit, person[i].Rent, person[i].houset);printf("该住客结算金额:\n");number = person[i].Rent*person[i].Data;printf("%d\n", number);}

客人信息修改

 void xiugai(){int i,b;char a[10];printf("请输入要修改的房间号:\n");scanf("%s",a);for ( i = 0; i < num; i++){if (strcmp(person[i].numh,a ) == 0){break;}}if (i == num){printf("没有该住客");}elseprintf("请输入押金;\n");scanf("%d",&b);person[i].Deposit = b;}

客人信息删除

 void deleteroom(){int i;char number[10];printf("请输入你想删除的房间号:\n");scanf("%s",number);for (i = 0; i < num; i++){if (strcmp(person[i].numh, number) == 0){break;}}if (i == num){printf("没有该住客");}elseperson[i] = person[i + 1];}

客房类型数量统计和排序,这里我只是统计和排序,没有相对应,有大佬可以改一下,并且循环可以写一起。

void paixu(){int a=0, b=0, c=0, d=0, e=0, f=0, g=0, h=0, i=0,k=0;int j[9];for (k = 0; k < num; k++){if (strcmp(person[k].houset, "经济单人间") == 0){a++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "经济双人间") == 0){b++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "经济三人间") == 0){c++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "标准单人间") == 0){d++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "标准双人间") == 0){e++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "标准三人间") == 0){f++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "豪华单人间") == 0){g++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "豪华双人间") == 0){h++;}}for (k = 0; k < num; k++){if (strcmp(person[k].houset, "豪华三人间") == 0){i++;}}printf("经济单人间的数量为:%d\n", a);printf("经济双人间的数量为:%d\n", b);printf("经济三人间的数量为:%d\n", c);printf("标准单人间的数量为:%d\n", d);printf("标准双人间的数量为:%d\n", e);printf("标准三人间的数量为:%d\n", f);printf("标准单人间的数量为:%d\n", g);printf("标准双人间的数量为:%d\n", h);printf("标准三人间的数量为:%d\n", i);j[0] = a; j[1] = b; j[2] = c; j[3] = d; j[4] = e; j[5] = f; j[6] = g; j[7] = h; j[8] = i;int m, n, y,t;for (m = 0; m < 9; m++){y = m;for (n = m + 1; n < 9; n++){if (j[n] > j[y]){y = n;}}if (y != n){t = j[m];j[m] = j[y];j[y] = t;}}printf("由大到小排序后:\n");for (m= 0; m < 9; m++){printf("   %d   ",j[m]);}}

对客人信息进行显示和保存

 void print(){for (int i = 0; i < num; i++){printf("%s %s %s %d %d %d %s\n", person[i].numh, person[i].name, person[i].Intime, person[i].Data, person[i].Deposit, person[i].Rent, person[i].houset);}}void keep(){FILE *fp=fopen("1.txt","wt");if (fp == NULL) exit(0);for(int i=0;i<num;i++){fprintf(fp,"%s %s %s %d %d %d %s\n",person[i].numh,person[i].name,person[i].Intime,person[i].Data,person[i].Deposit,person[i].Rent,person[i].houset);}fprintf(fp,"END");fclose(fp);}

用C语言数组写的简易客房管理系统相关推荐

  1. Java语言程序设计 :医院简易挂号管理系统 Java实验

    Java语言程序设计 :医院简易挂号管理系统 Java实验 1.课程设计目的 医院预约挂号管理系统是每一个医疗机构管理平常挂号业务流程不可或缺的一个管理信息系统,它的存在解决了病人挂号难.看病难等问题 ...

  2. Java实现简易客房管理系统

    在 Java 中实现简单的客房管理系统,可以使用以下步骤: 创建一个名为 "Room" 的类,用于表示单个客房.该类应包含房间号.房间类型.价格和是否被预订的信息. 创建一个名为 ...

  3. c语言简易成绩管理系统c语言,C语言写的简易成绩管理系统

    简单界面,只是功能做好了,打印的样子并不太好 #include #include #include struct Data //数据结构 { int number; char name[16]; fl ...

  4. 在c语言中卖水果的程序,C语言写的简易水果管理系统

    //编写一个简单的水果管理系统 //1.可以查看所有水果 //2.可以添加新水果(添加的时候判断水果是否重名) //3.可以对所有水果排序,价格降序,数量降序 //4.删除指定名称的水果 //5.退出 ...

  5. c语言水果程序,C语言写的简易水果管理系统

    //编写一个简单的水果管理系统 //1.可以查看所有水果 //2.可以添加新水果(添加的时候判断水果是否重名) //3.可以对所有水果排序,价格降序,数量降序 //4.删除指定名称的水果 //5.退出 ...

  6. 单片机 c语言怎么写一个简易秒表?用一个键盘按键开始暂停的,51单片机秒表计时器课程设计报告(含C语言程序)...

    任务书 1.任务 设计一个秒表计时器,在51单片机的控制作用下,采用4个LED数码管显示时间,计时范围设置为00.0~60.0秒,即精确到0.1秒,用按键控制秒表的"开始".&qu ...

  7. 简易客房管理系统(C++)

    //客房信息:等级类型(经济.标间.豪华.单人间.双人间.三人间).剩余客房数量 //员工信息:楼层管理员.客房领班.客房经理等 //功能: //1)登记客人入住登记:房号.客人姓名.入住时间.入住期 ...

  8. java 挂号_Java语言程序设计 :医院简易挂号管理系统 华科Java实验

    ---恢复内容开始--- 一.需求分析 1.题目要求 采用桌面应用程序模式,开发一个医院挂号系统,管理包括人员.号种及其挂号费用,挂号退号等信息,完成登录.挂号.查询和统计打印功能.数据库表如下所示, ...

  9. C语言手写自定义三维数组

    C语言手写三维数组 本文目的是通过C语言的结构体和动态数组,实现自定义类型的三维数组TripleArray及其基本运算 本文目的是通过C语言的结构体和动态数组,实现自定义类型的三维数组TripleAr ...

最新文章

  1. signavio-core-components ant build-all-in-one-war failed
  2. Java 7之多线程- Semaphore--转载
  3. 阿里云城市数据大脑开发规范
  4. python numpy np.lexsort()(使用键序列执行间接稳定排序)(具体没太搞懂区别?)
  5. Source insight关联QT库函数
  6. python3----列表
  7. 华为y7可以人脸识别吗_华为手机经常弹出“系统更新”提示,可以不更新吗?看完涨知识了...
  8. nginx+uwsgi 部署
  9. propertysource注解 找不到文件_电脑提示Windows找不到文件?试试这两个技巧,轻松解决!...
  10. (十四)函数参数和返回值
  11. 万达9.3亿美元并购北欧最大院线 全球市场份额逼近20%
  12. 汇编语言INC DEC JGE JG JLE JL JNE JE 都是什么意思
  13. 什么是SPA,有什么优缺点
  14. 阿里巴巴 html圆代码,阿里巴巴国际站HTML代码全透视
  15. 「黑科技」盘点那些脑洞大开的人类设计的“异形”机器人
  16. [论文阅读] 对话式推荐系统的进展与挑战:综述(Advances and Challenges in Conversational Recommender Systems: ASurvey)-01
  17. J语言初步,绝妙的符号系统,神的计算器
  18. 铁通计算机网络,【计算机网络技术】常见宽带错误代码及处理办法(使用移动宽带【铁通】、部分电信宽带故障、联通宽带故...
  19. vs2017--MFC读写excel
  20. JAVA内存文件映射

热门文章

  1. 狂装激光雷达,新造车跑偏了吗?
  2. 外贸网站如何屏蔽中文浏览器和中文操作系统而且自己可以正常访问
  3. java parseint函数,ParseInt
  4. VLANTrunk技术
  5. MyBatis逆向工程 Generator
  6. Java语言程序设计教程(魏永红版)第8章课本源码
  7. JS split 分割字符串
  8. SQL注入之打狗棒法(安全狗绕过)
  9. html盒子怎么设置边框长度,CSS应用篇 | border边框竟然可以这么用
  10. [学习]uni-app返回上层小键盘不关闭