刚学C语言,期末作业布置的程序,写的很粗糙,循环也有一点问题,大佬们多多见谅。主要还是希望能帮助到和我一样的初学者。

函数功能实现:

流程图
主要利用函数模块化的思路,将旅店管理系统的功能一一拆分开来,分别利用函数实现,在通过主函数控制整个程序。其中一些地方涉及到DOS命令和句柄的使用,相应函数可以直接套用,都是一些很方便的工具,可以自行在CSDN上搜索详细知识。

全部代码,可直接运行

#include<stdio.h>
#include<windows.h>int w=0,s=0;struct//创建房间结构体,储存房间内的人数
{int com_num=0;
}room[15];//上限15个房间struct//房客结构体,储存名字,ID,房间号
{char name[20];char ID[20];int room=0;
}com[100];//上限100位void SetPos(int x,int y)//定位函数,定位在终端中的位置
{COORD pos={x,y};HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);//获取句柄SetConsoleCursorPosition(hout,pos);
}int color(int c)//颜色函数,更改字体颜色
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);return 0;
}void welcome()//欢迎界面
{SetPos(35,9);//定位,下同color(3);//更改字体颜色,下同printf("您想要的服务我们都有!!!");SetPos(35,12);color(4);printf("入住一晚只要¥98");SetPos(35,14);color(7);printf("免费提供早晚餐(包括且仅限于馒头、馒头、馒头)");SetPos(35,16);color(2);printf("更有您意想不到的特殊服务哦!!!(绿色健康小清新)");SetPos(45,20);printf("709旅馆信息管理程序\n");SetPos(45,25);system("pause");//DOS命令,按任意键继续
}void information()//房间信息界面
{system("cls");//DOS命令,清屏int num=0;for(int i=0;i<15;i++){if(room[i].com_num!=0) num++;}SetPos(45,8);color(15);printf("已入住%d间 剩余房间数%d\n",num,15-num);SetPos(45,10);printf("剩余房间号为 :");for(int i=0;i<15;i++){if(room[i].com_num==0) printf("%d ",i+1);}SetPos(45,25);system("pause");
}void check_room()//查找房间
{int n;while(n){color(15);system("cls");SetPos(45,25);printf("请输入您想要查找的房间编号 :");SetPos(45,27);printf("输入'0'退出");SetPos(73,25);scanf("%d",&n);SetPos(45,8);if(n==0) break;if(room[n-1].com_num==0) printf("房间号%d  未入住\n",n);else printf("房间号%d  已入住%d人",n,room[n-1].com_num);SetPos(35,9);printf("旅客信息 :");SetPos(45,10);for(int i=0;i<100;i++){if(com[i].room==n) printf("%s %s\n",com[i].name,com[i].ID);}SetPos(45,15);system("pause");}
}void information_com()//顾客信息
{int n=1;system("cls");int num=0;for(int i=0;i<100;i++){if(com[i].ID[0]!='\0') num++;}SetPos(45,8);printf("已入住%d人",num);SetPos(30,9); printf("姓名");SetPos(45,9); printf("ID");for(int i=0;i<100;i++){if(com[i].ID[0]!='\0'){SetPos(30,9+n); printf("%s",com[i].name);SetPos(45,9+n); printf("%s",com[i].ID);n++;}}SetPos(45,25);system("pause");
}void input_2(int q,int e)//输入
{FILE *p;p=fopen("入住记录","a");//将顾客信息存入文件,方便查询历史记录com[q].room=e;system("cls");SetPos(38,3);printf("请 输 入 入 住 人 信 息\n");SetPos(45,7);printf("姓名 :");SetPos(45,9);printf("ID :");SetPos(51,7);scanf("%s",com[q].name);fputs(com[q].name,p);fputc(' ',p);SetPos(49,9);scanf("%s",com[q].ID);fputs(com[q].ID,p);fputc('\n',p);fclose(p);SetPos(45,12);printf("录入成功!");s++;SetPos(45,25);system("pause");
}void check_com()//顾客查询函数
{int n,f1=0;char ID_1[100];while(n){f1=0;color(15);system("cls");SetPos(45,25);printf("请输入您想要查找的旅客ID :");SetPos(45,27);printf("输入'0'退出");SetPos(73,25);scanf("%s",ID_1);SetPos(45,8);if(*ID_1=='0') break;for(int i=0;i<100;i++){if(strcmp(ID_1,com[i].ID)==0){printf("姓名: %s ID为: %s 所在房间号为 :%d\n",com[i].name,com[i].ID,com[i].room);f1=1;break;}}if(f1==0){color(4);printf("未找到该旅客信息");}SetPos(45,10);system("pause");}
}void input()//入住输入函数
{int f=1;while(f){system("cls");color(15);SetPos(45,3);printf("请选择入住房间号 :");SetPos(45,5);printf("入住人数为 :");SetPos(30,7);printf("可选择空房间有 :");for(int i=0;i<15;i++){if(room[i].com_num==0) printf("%d ",i+1);}SetPos(63,3);scanf("%d",&f);if(room[f-1].com_num!=0){SetPos(45,10);color(4);printf("该房间已满,请重新输入!");SetPos(45,25);system("pause");continue;}else{SetPos(57,5);scanf("%d",&room[f-1].com_num);for(int i=1;i<=room[f-1].com_num;i++){input_2(w,f);w++;}system("cls");SetPos(45,10);printf("入住成功!");SetPos(45,25);system("pause");break;}}
}void change()//换房函数
{int f=1,n;while(f){system("cls");color(15);SetPos(45,3);printf("请输入原房间号 :");SetPos(45,5);printf("请输入想要换的房间号 :");SetPos(45,7);printf("可选择空房间有 :");for(int i=0;i<15;i++){if(room[i].com_num==0) printf("%d ",i+1);}SetPos(61,3);scanf("%d",&f);SetPos(67,5);scanf("%d",&n);if(room[n-1].com_num!=0){SetPos(45,10);color(4);printf("该房间已满,请重新输入!");SetPos(45,25);system("pause");continue;}else{room[n-1].com_num=room[f-1].com_num;for(int i=0;i<100;i++){if(com[i].room==f) com[i].room=n;}room[f-1].com_num=0;SetPos(45,10);printf("换房成功!");break;}}SetPos(45,25);system("pause");
}void Del()//退房函数
{int f=1;while(f){system("cls");SetPos(45,3);printf("请选择退房房间号 :");scanf("%d",&f);room[f-1].com_num=0;for(int i=0;i<100;i++){if(com[i].room==f){com[i].room=0;com[i].ID[0]='\0';com[i].name[0]='\0';}}SetPos(45,5);printf("退房成功!");break;}SetPos(45,25);system("pause");
}void history(int s)//查询历史纪录
{system("cls");char a[100];FILE *p;p=fopen("入住记录","r");for(int i=0;i<s;i++){fgets(a,100,p);puts(a);}SetPos(45,25);system("pause");fclose(p);
}int choice()//功能选择
{system("cls");for(int i=6;i<=24;i++){for(int j=41;j<=66;j++){if(j==41||j==66){color(2);SetPos(j,i);printf("||");}if(i==5||i==24){color(2);SetPos(j,i);printf("+");SetPos(67,i);printf("+");}}}color(15);SetPos(45,7);printf("1.查看旅店信息\n");SetPos(45,9);printf("2.查看某一房间信息\n");SetPos(45,11);printf("3.查看旅客信息\n");SetPos(45,13);printf("4.查找某一旅客信息\n");SetPos(45,15);printf("5.旅客入住\n");SetPos(45,17);printf("6.旅客换房\n");SetPos(45,19);printf("7.旅客退房\n");SetPos(45,21);printf("8.历史旅客\n");SetPos(45,23);printf("9.退出\n");int n;SetPos(45,26);printf("请输入您的指令 :");scanf("%d",&n);return n;
}int main()//主函数
{int t;welcome();while(t!=9)//循环,选择‘9’时退出{t=choice();//获取tswitch(t)//选择分支{case 1:information();break;case 2:check_room();break;case 3:information_com();break;case 4:check_com();break;case 5:input();break;case 6:change();break;case 7:Del();break;case 8:history(s);break;}}return 0;//程序结束
}

【C语言】简单旅店管理系统相关推荐

  1. C语言函数及复杂数据结构的综合应用——简单户籍管理系统

    最全C系列题目!从0到管理系统 一.C语言数据类型及输出--体重是否正常.球的体积.计算存银行利息and浮点数长度与精度 二.C语言运算符与表达式--输出逆序数and二进制包含0和1的数量and判断是 ...

  2. c语言实现的简单学生管理系统

    简单学生管理系统–c语言 花了一个月的时间,学习了链表,文件,多文件编程,然后就开始写学生管理系统,比较简单的那种,实现了增,添,改,查,多种排序,输入的时候的限定,成绩分析的功能.遇到的问题很多,也 ...

  3. c语言旅店管理系统结构图,C语言 旅店管理系统.doc

    C语言 旅店管理系统 宪尔猫缩驯驾凸溃椭欢暖迄晓儿瑟卷仙亭芍帮钉沧芍潭噪缄孔管捕段早虹邢壹拍堪扑蚕楚坏圾瘪县脸藩着坑郧峡席糖逃蜡郭溺脓整俘唐值厕瓷奎危呸惕府皿剐鳞疚松砌檬进伺菊肠己凳看莉标殃戮蔚至邑纵 ...

  4. C语言完整课程设计代码(简单职工管理系统)

    C语言完整课程设计代码(简单职工管理系统) 采用的是双向链表,排序自己写的,因为是链表排序,学校几乎没交 排序在增加员工处采用的是一次一插入,在插入的时候遍历整个链表,找到适当位置进行插入: 在排序员 ...

  5. c语言学生信息系统 完整版,C语言 学生信息管理系统(完整版).docx

    C语言 学生信息管理系统(完整版) 电子科技大学成都学院 程序综合设计论文 论文题目 学生信息管理系统 学生姓名 魏国 学 号 1340840625 专 业 机械设计制造及其自动化 系(分院) 电子工 ...

  6. 一个简单图书管理系统TSGL的应用数据库

    简单图书管理系统的应用数据库 一.摘要 这个项目是学校结课要求的项目,所以采用的是SQL sever2008来完成的,并不是mysql来完成的,SQL sever2008与mysql就基础知识没有什么 ...

  7. 基于C/C++语言的停车场管理系统编程课程设计超详细

    详细代码讨论加我QQ:1271370903 程序设计课程实践 基于C语言的停车管理系统编程设计 1.课程目的 本程序旨在训练学生的C语言基本编程能力,通过串联C语言输入输出.循环语句.子函数设计.数组 ...

  8. c语言记账,C语言会计记账管理系统.doc

    C语言会计记账管理系统.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...

  9. C语言图书馆如何添加图书,如何使用C语言编写图书馆管理系统?

    全部展开 图书管理系统是在Windows系统下运行的应用程序软件,主要用于添加,删除,更改和检查库中的图书信息,并且还可以登录和密码使用该图书的用户. 系统. 管理等. 系统为用户提供了简单的人机界面 ...

最新文章

  1. kafka0.11.0.2安装 笔记
  2. React系列——React Context
  3. 旋流式沉砂池计算_以高效旋流器为核心的超低成本选煤技术
  4. boost::fibers::buffered_channel的测试程序
  5. mysql router docker_Docker 安装 Mysql 详解
  6. Spring boot actuator端点启用和暴露
  7. Kibana入门安装与介绍
  8. Pytorch 中 matmul 广播
  9. vue-cli脚手架中webpack配置基础文件详解
  10. 瑞幸咖啡考虑重回纳斯达克上市 官方回应:报道不实
  11. Updatepanel 注册javascript 方法
  12. 微服务、容器、DevOps三者之间的关系你清楚吗?
  13. leetcode解题笔记-Summary Ranges
  14. 日常邮件用语(一)网摘学习
  15. utf-8、UTF-8、utf8 在使用中的区别
  16. winhex使用教程_[攻略] 无限视距——上帝视角教程
  17. 基于Fuzzy Logic的人群疏散模型(考虑攻击者的情况)
  18. 《云周刊》第121期:图管够!灌篮高手、女儿国…阿里日_这帮程序员太会玩了!...
  19. matlab怎么表示循环求和,matlab循环求和
  20. 康考迪亚计算机科学硕士,康考迪亚大学专业

热门文章

  1. 51单片机外设系列:LCD1602 的详细编程
  2. 【Unity3D日常开发】Unity3D的证书认证
  3. Microsoft Remote Desktop的安装使用
  4. OpenGL镜面效果
  5. OpenGL曲线、曲面矢量绘制
  6. MATLAB编程:简易读取分割存储 tif 格式图片
  7. 推送实时消息 GoEasy
  8. 短信CMPP通信协议
  9. linux redhat 7配置yum源,redhat7 配置国内清华大学yum源
  10. EKS 解决Unable to connect to the server 问题