C程序实现旅馆房间管理

来源:百度知道 编辑:UC知道 时间:2024/06/16 11:17:16
设某旅馆有N间客房,每间客房的房间号码、房间等级、床位数以及占用状态分别存在一维数组ROOM、RANK、NBED 和STATUS中,房间的等级值为1、2和3,房间的状态值为0(空闲)或1(占用),客房是以房间(不是以床位)为单位出租的。
要求:
能根据几个散客的要求预定一间空房,设程序的输入为:人数M、房间的等级要求R(当R为0时表示任何等级都可以),程序的输出为所有可供选择的房间号。
谢谢一楼的回答
而且写得很不错,佩服!
希望有更简便的语句可以实现!
期待中。。。

补充:
已知有方案一那样的条件,并且已知等级为R的房间每人每天的住宿费为RATE(R),RATE是一个一维数组。程序在输出每个候选的房间号码RM(J)之后,还要求输出这批散客每人所需付的住宿费DAYRENT(J)。考虑到旅馆房间数N可能比较大,为此,不必每次预订时都把满足要求的房间号RM(J)都输出。设程序要求输入人数M、房间等级要求R、以及希望输出可供选择的房间号码数K(1<=K<=N),程序执行后能输出所要求的结果。

到此(+50分)

以上同,为了使程序能具有较大的适应性,设旅馆的房间数N是一个可供修改的符号为常数,而旅馆订房系统的房间初始信息可以由程序员根据旅馆现状初始化(即ROOM、RANK、NBED、STATDS、RATE数组状态可由程序员进行初始化),然后在初始化的基础进行订房工作。初始化后的工作要求同以上。

到此(+100分)

越改越多。。
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"

#define MAX 64/*MAX-1为房间上限值*/

void View(char ROOM[],int RANK[],int NBED[],int STATUS[]);/*显示各房间状态*/
int Full();/*查看旅馆是否已满*/
int Getmax(int NBED[]);/*取得可用的最大房间的床位数*/
int Array(int M,int R);/*安排房间*/
void Menu();/*显示菜单*/
void BkRm();/*订房*/
void ReRm();/*退房*/
void Direct();/*快捷订房(直接输入房间号)*/
void Ready();/*初始化*/

char ROOM[MAX];
int RANK[MAX],
NBED[MAX],
STATUS[MAX];
float RATE[MAX];
int M,R;
int SIZE,SIZER;

void main()
{
Ready();
View(ROOM,RANK,NBED,STATUS);
while(1)
{
if(Full()==SIZE)
printf("FULL!!!!!\n");
Menu();
}
}

void Ready()
{
int i;
printf("For your first using this program, please answer the questions to set your base data. Th