首页 > 其他分享 >梁添翔实验二结对项目

梁添翔实验二结对项目

时间:2022-11-12 12:25:04浏览次数:54  
标签:gocc 结对 cc DY 电梯 实验 printf ZT 梁添翔

#include<stdio.h>
typedef struct dianti
{
int ZT;//三种状态:静止,上行,下行
int LX;//三种类型:双,单,全
int cc;//此时停在的楼层数
int DY;//此楼层是否被调用
int SF;//是否有人用电梯
}SH;
SH a[4];
int SF, Ar, cc, gocc;
int k[3], m[3];
int Lookfor(int x, int y, int z)//计算楼层差值函数
{
int t;
if (a[x].ZT == 0)//此时a[x]电梯处于静止状态
{
if (y < z)
{
t= z - y;
}
else
{
t = y - z;
}
}
return t;
}
void main()
{
//接人操作
printf(" 全部楼层 单层 双层 全部楼层 \n");
printf(" (一) (二) (三) (四) \n");
printf(" ____ ____ ____ ____ \n");
printf(" $ $ $ $ $ $ $ $ \n");
printf(" 6 8 17 20 \n");
printf(" $ $ $ $ $ $ $ $ \n");
printf(" ^^^^ ^^^^ ^^^^ ^^^^ \n");
a[0].ZT = 0;
a[1].ZT = 0;
a[2].ZT = 0;
a[3].ZT = 0;
a[0].cc = 6;
a[1].cc= 8;//表示此时电梯停在的楼层数为7楼
a[2].cc = 17;
a[3].cc = 20;
while (1)
{
a[0].LX = 2;//一号电梯所有楼层都停靠
a[1].LX = 1;//二号电梯单号楼层都停靠
a[2].LX = 0;//三号电梯双号楼层都停靠
a[3].LX = 2;//四号电梯所有楼层都停靠
int i;
int SF1 = 0, j = 0;
printf("----------------------------------------------\n");
printf("若要用电梯请按按钮 1 !\n");
scanf("%d", &SF);//此时是否有人按电梯
if (SF == 1)
{
printf("*****此时有用户按电梯!*****\n");
}
printf("用户所在楼层为: ");
scanf("%d", &cc);//此时按电梯的人所在的楼层数
printf("上楼请按 1 ,下楼请按 0: \n");
scanf("%d", &Ar);//用户请求是上楼还是下楼标记
printf("请选择要去的楼层: ");
scanf("%d", &gocc);//用户要去的楼层
if (SF == 1)//用户按电梯
{
if (Ar == 1)//用户要上楼
{
if (cc % 2 == 0)//用户所在为偶数楼层
{
if (gocc % 2 == 1)//用户要去奇数楼层
{
for (i = 0; i < 4; i++)
{
if (a[i].LX == 2)
{
a[i].DY = 1;
}
else
{
a[i].DY = 0;
}
while (a[i].DY == 1)
{
k[SF1] = Lookfor(i, cc, a[i].cc);
m[SF1] = i;
SF1++;
a[i].DY = 0;
}
}
if (k[0] < k[1])
{
printf("离用户最近并且符合条件的电梯为:0\n");
a[0].cc = gocc;
a[0].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc = gocc;
a[3].ZT = 0;
}
}
if (gocc % 2 == 0)//用户要去偶数楼层
{
for (i = 0; i < 4; i++)
{
if (a[i].LX == 2 || a[i].LX == 0)
{
a[i].DY = 1;
}
else
{
a[i].DY = 0;
}
while (a[i].DY == 1)
{
k[SF1] = Lookfor(i, cc, a[i].cc);
m[SF1] = i;
SF1++;
a[i].DY = 0;
}
}
if (k[0] < k[1])
{
if (k[0] < k[2])
{
printf("离用户最近并且符合条件的电梯为:0\n");
a[0].cc = gocc;
a[0].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc = gocc;
a[3].ZT = 0;
}
}
else
{
if (k[1] < k[2])
{
printf("离用户最近并且符合条件的电梯为:2\n");
a[2].cc= gocc;
a[2].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc = gocc;
a[3].ZT = 0;
}
}
}
}
if (cc% 2 == 1)//用户所在为奇数楼层
{
if (gocc% 2 == 0)//用户要去偶数楼层
{
for (i = 0; i < 4; i++)
{
if (a[i].LX == 2)
{
a[i].DY = 1;
}
else
{
a[i].DY = 0;
}
while (a[i].DY == 1)
{
k[SF1] = Lookfor(i, cc, a[i].cc);
m[SF1] = i;
SF1++;
a[i].DY = 0;
}
}
if (k[0] < k[1])
{
printf("离用户最近并且符合条件的电梯为:0\n");
a[0].cc= gocc;
a[0].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc= gocc;
a[3].ZT = 0;
}
}
if (gocc % 2 == 1)//用户要去奇数楼层
{
for (i = 0; i < 4; i++)
{
if (a[i].LX == 2 || a[i].LX == 1)
{
a[i].DY = 1;
}
else
{
a[i].DY = 0;
}
while (a[i].DY == 1)
{
k[SF1] = Lookfor(i, cc, a[i].cc);
m[SF1] = i;
SF1++;
a[i].DY = 0;
}
}
if (k[0] < k[1])
{
if (k[0] < k[2])
{
printf("离用户最近并且符合条件的电梯为:0\n");
a[0].cc = gocc;
a[0].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc= gocc;
a[3].ZT = 0;
}
}
else
{
if (k[1] < k[2])
{
printf("离用户最近并且符合条件的电梯为:2\n");
a[1].cc = gocc;
a[1].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc= gocc;
a[3].ZT = 0;
}
}
}
}
}
if (Ar == 0)//用户要下楼
{
if (cc% 2 == 0)//用户所在为偶数楼层
{
if (gocc% 2 == 1)//用户要去奇数楼层
{
for (i = 0; i < 4; i++)
{
if (a[i].LX == 2)
{
a[i].DY = 1;
}
else
{
a[i].DY = 0;
}
while (a[i].DY == 1)
{
k[SF1] = Lookfor(i, cc, a[i].cc);
m[SF1] = i;
SF1++;
a[i].DY = 0;
}
}
if (k[0] < k[1])
{
printf("离用户最近并且符合条件的电梯为:0\n");
a[0].cc= gocc;
a[0].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc = gocc;
a[3].ZT = 0;
}
}
if (gocc% 2 == 0)//用户要去偶数楼层
{
for (i = 0; i < 4; i++)
{
if (a[i].LX == 2 || a[i].LX == 0)
{
a[i].DY = 1;
}
else
{
a[i].DY = 0;
}
while (a[i].DY == 1)
{
k[SF1] = Lookfor(i, cc, a[i].cc);
m[SF1] = i;
SF1++;
a[i].DY = 0;
}
}
if (k[0] < k[1])
{
if (k[0] < k[2])
{
printf("离用户最近并且符合条件的电梯为:0\n");
a[0].cc = gocc;
a[0].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc= gocc;
a[3].ZT = 0;
}
}
else
{
if (k[1] < k[2])
{
printf("离用户最近并且符合条件的电梯为:2\n");
a[2].cc =gocc;
a[2].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc = gocc;
a[3].ZT = 0;
}
}
}
}
if (cc % 2 == 1)//用户所在为奇数楼层
{
if (gocc % 2 == 0)//用户要去偶数楼层
{
for (i = 0; i < 4; i++)
{
if (a[i].LX == 2)
{
a[i].DY = 1;
}
else
{
a[i].DY = 0;
}
while (a[i].DY == 1)
{
k[SF1] = Lookfor(i, cc, a[i].cc);
m[SF1] = i;
SF1++;
a[i].DY = 0;
}
}
if (k[0] < k[1])
{
printf("离用户最近并且符合条件的电梯为:0\n");
a[0].cc = gocc;
a[0].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc = gocc;
a[3].ZT = 0;
}
}
if (gocc% 2 == 1)//用户要去奇数楼层
{
for (i = 0; i < 4; i++)
{
if (a[i].LX == 2 || a[i].LX == 1)
{
a[i].DY = 1;
}
else
{
a[i].DY = 0;
}
while (a[i].DY == 1)
{
k[SF1] = Lookfor(i, cc, a[i].cc);
m[SF1] = i;
SF1++;
a[i].DY = 0;
}
}
if (k[0] < k[1])
{
if (k[0] < k[2])
{
printf("离用户最近并且符合条件的电梯为:0\n");
a[0].cc= gocc;
a[0].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc = gocc;
a[3].ZT = 0;
}
}
else
{
if (k[1] < k[2])
{
printf("离用户最近并且符合条件的电梯为:2\n");
a[1].cc= gocc;
a[1].ZT = 0;
}
else
{
printf("离用户最近并且符合条件的电梯为:3\n");
a[3].cc= gocc;
a[3].ZT = 0;
}
}
}
}
}
}
else if (SF == 0)
{
printf("此时无人用电梯");
}
printf(" 全部楼层 单层 双层 全部楼层 \n");
printf(" (一) (二) (三) (四) \n");
printf(" ____ ____ ____ ____ \n");
printf(" $ $ $ $ $ $ $ $ \n");
printf(" %d %d %d %d \n", a[0].cc, a[1].cc, a[2].cc, a[3].cc);
printf(" $ $ $ $ $ $ $ $ \n");
printf(" ^^^^ ^^^^ ^^^^ ^^^^ \n");
printf("\n");
printf("----------------------------------------------\n");
}
}

标签:gocc,结对,cc,DY,电梯,实验,printf,ZT,梁添翔
From: https://www.cnblogs.com/scltx/p/16883444.html

相关文章

  • 实验三:朴素贝叶斯算法实验
    【实验目的】理解朴素贝叶斯算法原理,掌握朴素贝叶斯算法框架。【实验内容】针对下表中的数据,编写python程序实现朴素贝叶斯算法(不使用sklearn包),对输入数据进行预测;熟悉s......
  • 《STM32MP1 M4裸机HAL库开发指南》第二十章 串口通信实验
    第二十章串口通信实验​本章节我们来学习STM32MP1的串口使用方法,并通过串口发送和接收数据。​本章将分为如下几个小节:​20.1、串口简介;​20.2、STM32MP1串口简介;​20.......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实......
  • Python实验报告——第10章 文件及目录操作
    实验报告实例01:创建并打开记录蚂蚁庄园动态的文件代码如下:print('\n','='*10,'蚂蚁庄园动态','='*10)file=open('message.txt','w')print('\n即将显示……\n')......
  • Python第十章实验报告
    一、实验对象:《零基础学Python》6道实例和2道实战二、实验环境:IDLEShell3.9.7三、实验目的:学习如何在Python中进行文件和目录的相关操作四、实验过程:实例01创建并......
  • 实验一·环境安装
    实验一·环境安装安装QEMUWindows不能编译SPDK,还是要装虚拟机因电脑上没有安装双系统,故选择安装Windows环境下的QEMU。下载最新版本的就可以了。https://qemu.weilnetz......
  • 实验7基于rest-api的sdn北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......
  • 实验二
    一、题目要求我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:能够自动生成四则运算练习题可以定制题目数量用户可以选择运算符用户设......
  • 结对编程 电梯调度
    任务要求:现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示,其使用规定如下:①楼层号为0~20,其中0号为地下一层②有楼层限制的电梯不在相应楼层停靠,......