• 面向对象程序作业一


    Github地址

    电梯调度中遇到的问题及解决

    在这次的作业中,首先输入请求的形式上与寒假作业大为不同,由于不知道n的大小,我就没办法用数组来储存请求,后来能够解决这个问题也是受到了实际电梯的启发,请求数是不确定的,但电梯的楼层是确定的,于是我建了个floor[]的数组,floor[i]的值代表第i层的请求,这样用两个数组就可以储存3*((2^31)-1)组请求。但实际上我用了不止两个数组,因为如果时间还未到请求时间的话是不可以将请求放入队列里的,还未进电梯的请求也同样不能将目的地楼层置入队列。这里便不一一说明,但总体思想大致是这样了。接着便是电梯调度的问题,在寒假作业里,我是让电梯毎次都朝最近的请求楼层走,从最后结果看,虽然不是正确答案但有一定的可行性。不过在本次作业里,电梯只有3层,这样的决策显然没有多大的意义,毕竟如果电梯在顶楼或底楼,那么就只有一个运行方向,如果在一楼,那零楼和二楼必定都是最近的(如果有请求的话)。所以这次我换了一种决策,思路如下,如果只有比当前楼层高或底的请求,那么方向为1或-1;否则保持原方向不变。接着是我在类的成员函数里对一个数据进行了修改,从调试上看,数据被成功修改了,但在主函数里引用这个数据的时候它还是原来的值,目前尚未能解决这个疑问,但我将主函数里引用数据的那段代码放到类里,解决了问题。最后是文件输入输出的问题,我原本用的是fstream in/outFile in/outFile.open()
    我的预想是这样

    然后它的结果是这样的

    于是我问了同学,但都没能解决问题,最后一位同学让我使用freopen,最后得到了我想要的结果。

    类图

    Pintia题目集

  • 相关阅读:
    微信小程序---自定义三级联动
    jQuery分页插件
    微信小程序点击图片放大
    微信小程序----日期时间选择器(自定义精确到分秒或时段)
    PHP文件上传error的错误类型
    获取url传的参数转变为对象的方法
    mysql忘记密码时,重新修改密码
    表单注册及自定义validate手机验证码验证实例
    登陆jq表单验证及jqcookie记住密码实例
    iframe高度自适应,自适应子页面高度
  • 原文地址:https://www.cnblogs.com/wzxzx/p/8905788.html
Copyright © 2020-2023  润新知