帮帮我 谢谢 用C++语言解决机房机位预约模拟系统

来源:百度知道 编辑:UC知道 时间:2024/09/28 17:20:13
用C++语言解决机房机位预约模拟系统
20台机器从早8点到晚8点 每两个小时为一个时间段,需要实现功能:
1 查询:
根据输入时间,输出机位信息
2 机位预定:
根据输入的日期和时间段查询是否有空机位,若有,则预约;若无,则提供最近空机时间段
另: 若用户要求在非空时间上机, 则将用户信息插入该时间段的等待列表
3 退出预定:
根据输入的时间, 撤销该时间的预订;查询是否有等待信息,若有,则按顺序显示联系方式

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SJD 6 /*宏定义定义SJD Z NULL D(r)*/
#define Z 20
#define D(s) (s-8)/2 /*将输入的时间划分时间段;分别为0,1,2,3,4,5时间段*/
#define NULL 0
struct xinxi{
int jihao;
char xuehao[20];
struct xinxi *next;
}; /*结构函数包含学生信息:机位,学号,还有下名学生信息*/
struct cell{
int RS; /*RS表示总人数*/
struct xinxi *first; /*第一个预订者记录*/
struct xinxi *middle; /*等待队列列表*/
struct xinxi *last; /*最后预订者记录*/
} DUILEI[SJD]; /*学生时间(SJD)段顺序:人数,第一名学生,排队的学生,最后一名学生*/
/***************************预定模块******************************/
void yuding()
{
int n;
char m[20]; /*学号*/
struct xinxi *R;
struct xinxi *p;
printf("输入想要预定的时间\n");
scanf("%d",&n);
if(n>=8&&n<20){
n=D(n); /*将输入的时间划分时间段*/
if(DUILEI[n].RS<Z) /*还有机位可供预订*/
{
printf("请输入你的学号\n");
scanf("%s"