首页 > 其他分享 >软件工程实验二----电梯

软件工程实验二----电梯

时间:2022-11-13 13:44:34浏览次数:30  
标签:golc CSTKLC ---- 电梯 软件工程 && printf lccz

#include<stdio.h>
struct DTZT
{
int ZT;
int DSQTYPE;
int CSTKLC;
int BDY;
int flag;
}a[4];
int flag,slxl,szlc,golc,lccz[3],dth[3],i,flag1=0;
int js(int x, int y, int z,int g) //计算楼层差值函数
{
int c,b,sum;
if (a[x].ZT == 0)//此时a[x]电梯处于静止状态
{
if(y==z)
return 0;
else if(y<z)
{
c=z-y;
if(y>g)
{
b=y-g;
}
else
{
b=g-y;
}
sum=c+b;
}else if(y>z)
{
c=y-z;
if(y>g)
{
b=y-g;
}
else
{
b=g-y;
}
sum=c+b;
}
return sum;
}
}

void SL_XL_formOtoJ_AND_fromJtoO()
{
lccz[0]=js(0,szlc,a[0].CSTKLC,golc);
lccz[1]=js(1,szlc,a[3].CSTKLC,golc);
if (lccz[0] < lccz[1])
{
printf("离用户最近并且符合条件的电梯为:1号\n");
a[0].CSTKLC = golc;
}
else
{
printf("离用户最近并且符合条件的电梯为:4号\n");
a[3].CSTKLC = golc;
}

}
void XL_SL_fromOtoO()
{
lccz[0]=js(0,szlc,a[0].CSTKLC,golc);
lccz[1]=js(1,szlc,a[2].CSTKLC,golc);
lccz[2]=js(2,szlc,a[3].CSTKLC,golc);
if (lccz[0] < lccz[1])
{
if (lccz[0] < lccz[2])
{
printf("离用户最近并且符合条件的电梯为:1号\n");
a[0].CSTKLC = golc;
}
else
{
printf("离用户最近并且符合条件的电梯为:4号\n");
a[3].CSTKLC = golc;
}
}
else
{
if (lccz[1] < lccz[2])
{
printf("离用户最近并且符合条件的电梯为:3号\n");
a[2].CSTKLC = golc;
}
else
{
printf("离用户最近并且符合条件的电梯为:4号\n");
a[3].CSTKLC = golc;
}
}

}

void SL_XL_fromJtoJ()
{
lccz[0]=js(0,szlc,a[0].CSTKLC,golc);
lccz[1]=js(1,szlc,a[1].CSTKLC,golc);
lccz[2]=js(2,szlc,a[3].CSTKLC,golc);
if (lccz[0] < lccz[1])
{
if (lccz[0] < lccz[2])
{
printf("离用户最近并且符合条件的电梯为:1号\n");
a[0].CSTKLC = golc;

}
else
{
printf("离用户最近并且符合条件的电梯为:4号\n");
a[3].CSTKLC = golc;

}
}
else
{
if (lccz[1] < lccz[2])
{
printf("离用户最近并且符合条件的电梯为:2号\n");
a[1].CSTKLC = golc;

}
else
{
printf("离用户最近并且符合条件的电梯为:4号\n");
a[3].CSTKLC = golc;

}
}
}

int main() //接人操作
{
printf("* 全部楼层 单层 双层 全部楼层\n");
printf("* ****** ****** ****** ****** *\n");
printf("* 1号 2号 3号 4号 *\n");
printf("***********************************************\n");
printf("* ****** ****** ****** ****** *\n");
printf("* | | | | | | | | *\n");
printf("* 2 11 8 19 *\n");
printf("* | | | | | | | | *\n");
printf("* ****** ****** ****** ****** *\n");
printf("***********************************************\n");
a[0].ZT = 0;//三种状态:静止,上行,下行
a[1].ZT = 0;
a[2].ZT = 0;
a[3].ZT = 0;
a[0].CSTKLC = 2;//表示此时电梯停在的楼层数为1楼
a[1].CSTKLC = 11;//表示此时电梯停在的楼层数为7楼
a[2].CSTKLC = 8;//表示此时电梯停在的楼层数为14楼
a[3].CSTKLC = 19;//表示此时电梯停在的楼层数为20楼
a[0].DSQTYPE = 2;//一号电梯所有楼层都停靠
a[1].DSQTYPE = 1;//二号电梯单号楼层都停靠
a[2].DSQTYPE = 0;//三号电梯双号楼层都停靠
a[3].DSQTYPE = 2;//四号电梯所有楼层都停靠
int i;
int flag1 = 0;
int j = 0;
printf("--------------------------------------------------\n");
printf("使用电梯请按按钮 1 \n");
scanf_s("%d",&flag);//此时是否有人按电梯 1
if (flag == 1)
{
printf("*****此时有用户按电梯!*****\n");
}
printf("您所在楼层为: ");
scanf_s("%d",&szlc );//此时按电梯的人所在的楼层数 5
printf("上楼请按 1 ,下楼请按 0: ");
scanf_s("%d",&slxl);//用户请求是上楼还是下楼标记 1
printf("请选择要去的楼层: ");
scanf_s("%d",&golc);//用户要去的楼层 15
if(flag == 1 && slxl == 1 && szlc % 2 ==0 && golc % 2 == 1)//用户需要电梯上楼在偶数层要去奇数层
SL_XL_formOtoJ_AND_fromJtoO();//计算上楼下楼奇数层去偶数层和偶数层去奇数层
if(flag == 1 && slxl == 1 && szlc % 2 ==0 && golc % 2 == 0)//用户需要电梯上楼在偶数层要去偶数层
XL_SL_fromOtoO();//计算上楼下楼偶数层去偶数层
if(flag == 1 && slxl == 1 && szlc % 2 ==1 && golc % 2 == 0)//用户需要电梯上楼在奇数层要去偶数层
SL_XL_formOtoJ_AND_fromJtoO();
if(flag == 1 && slxl == 1 && szlc % 2 ==1 && golc % 2 == 1)//用户需要电梯上楼在奇数层要去奇数层
SL_XL_fromJtoJ();//计算上楼下楼奇数层去奇数层
if(flag == 1 && slxl == 0 && szlc % 2 ==0 && golc % 2 == 1)//用户需要电梯下楼在偶数层要去奇数层
SL_XL_formOtoJ_AND_fromJtoO();
if(flag == 1 && slxl == 0 && szlc % 2 ==0 && golc % 2 == 0)//用户需要电梯下楼在偶数层要去偶数层
XL_SL_fromOtoO();
if(flag == 1 && slxl == 0 && szlc % 2 ==1 && golc % 2 == 0)//用户需要电梯下楼在奇数层要去偶数层
SL_XL_formOtoJ_AND_fromJtoO();
if(flag == 1 && slxl == 0 && szlc % 2 ==1 && golc % 2 == 1)//用户需要电梯下楼在奇数层要去奇数层
SL_XL_fromJtoJ();
printf("***********************************************\n");
printf("* ****** ****** ****** ****** *\n");
printf("* | | | | | | | | *\n");
printf("* * %2d * %2d * %2d *%2d *\n", a[0].CSTKLC, a[1].CSTKLC, a[2].CSTKLC, a[3].CSTKLC);
printf("* | | | | | | | | *\n");
printf("* ****** ****** ****** ****** *\n");
printf("***********************************************\n");
return 0;
}

标签:golc,CSTKLC,----,电梯,软件工程,&&,printf,lccz
From: https://www.cnblogs.com/yangrui74/p/16885859.html

相关文章

  • C++ template using for what?
    //Forclassusing,youcansetaseriousofmacrotopredictsomething////whenyoucallthismacro,thetemplatecouldmakeanewfunctionbyyourinput//templ......
  • 【unity】ECS
    前言早就听闻ECS框架。今天记录一下相关内容,并尝试使用Unity提供的ECS框架来做一个MiniDemo,体会该框架。ECS的结构ECS分为Entity(实体)-Component(组件)-System(系统),它......
  • 实验三:朴素贝叶斯算法实验
    实验三:朴素贝叶斯算法实验【实验目的】理解朴素贝叶斯算法原理,掌握朴素贝叶斯算法框架。【实验内容】针对下表中的数据,编写python程序实现朴素贝叶斯算法(不使用sklearn......
  • Codeforces Round #833 (Div. 2) A-C题解
    比赛链接A、手摸不难发现,能做出的正方形大小就是当前的最大长度。所以直接输出向上取整即可。点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineN......
  • CSP-J2022题解
    CSP-J2022题解T1乘方思路非常简单,直接for循环上就行了。为什么不会炸呢?因为就算a=1e9,乘两次也炸不了longlong。代码#include<cstdio>longlonga,n,ans=1;intmai......
  • 223201062507 王静怡 223201062506 王靖榕-软件工程基础Y-实验二结对项目
    沈阳航空航天大学  软 件 工 程 基 础实验报告 实验名称:实验二实验题目:结对项目   专   业软件工程学   号22320......
  • 深入浅出学习透析Nginx服务器的基本原理和配置指南「进阶实践篇」
    proxy_pass的疑问?很多小伙伴们跟我沟通说之前章节的介绍的proxy_pass介绍的并不是很详细和清晰,那么我们就针对于Nginxproxy_pass使用在进行复习回顾一下。proxy_pass的使......
  • 洛谷 P1002 [NOIP2002 普及组] 过河卒
    第一个dp(动态规划)题纪念一下先尝试暴力写一个递归,由于x与y只能增加,不存在回路。#include<iostream>usingnamespacestd;inta_x,a_y,h_x,h_y,sum=0;//a_x,a_y代表目标地......
  • 【面经分享】阿里 Java 面试问题大全
    自取食用:https://url03.ctfile.com/f/24333903-723159415-ff4c26?p=5831【访问密码和解压密码:5831】,进入下载页面,选择【普通下载】内容如下(首页截图):......
  • Vue 全部生命周期组件整理
    ​前言今天继续加油学习,今天整理一下VUE中生命周期那有些,平且依次说明给个的使用场景以及作用。嘻嘻嘻,让我们一起学起来好吧~~~come生命周期beforeCreate:在创建组件之前使......