#include
#include
#include
#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
{
printf("请输入你的学号\n");
scanf("%s",m);
if(DUILEI[n].first==NULL) /*还没有人预订*/
{
R=(struct xinxi *)malloc(sizeof(struct xinxi));/*给R划分适当的内存*/
R->jihao=1;
strcpy(R->xuehao,m); /*将输入的学号复制到R->xuehao */
R->next=NULL;
DUILEI[n].first=R;
DUILEI[n].last=R;
DUILEI[n].RS++;
printf("成功预定\n");