2017面向对象程序设计寒假作业2

实现简单电梯调度

GitHub地址


  • 本程序基于以下设定:

    • 在乘客请求电梯时,电梯才知道乘客的信息。
    • 电梯在每秒内会规划好下一秒的行动。
    • 电梯不会超载,乘客不会等的不耐烦去走楼梯。
    • 电梯可以在运行过程中瞬间掉头。
    • 乘客请求时刻为整数时刻。
  • 程序信息:
    • 程序包括一个头文件,一个头文件中类的实现,和一个主函数。
    • 头文件 passager.h
      • 长度20行。
      • 包括类:passager
      • 成员变量(public):
        • id(int):记录乘客的编号。
        • isok(int):记录乘客的状态,分为0,1,2三种,0
          • 0:还未进入电梯。
          • 1:已经进入了电梯。
          • 2:已经离开了电梯。
        • floor(int):表示请求电梯时所在的楼层。
        • direction(int):表示目标楼层。
        • time(int):表示请求电梯的时间。
        • goal(int):表示此时请求电梯前往的楼层。
      • 成员函数(public):
        • passager:构造函数。
        • ~passager:析构函数。
        • call(void)
          • 输入:此时的时间。
          • 作用:更新该事件乘客的目标。
        • in_out(int)
          • 输入:现在的楼层和现在的时间。
          • 作用:判断是否有乘客需要进出,并更新乘客的状态。
          • 输出:离开的乘客所等待的时间。
        • 重载运算符>>:
          • 作用:输入时间,请求电梯时乘客所在的楼层,和目标楼层,并将目标楼层改为110
    • 源文件passager.cpp:为 passager类的实现。
      • 长度:62行。
    • 源文件lift.cpp
      • 长度:100行。
      • 变量:
        • liftgoal(int):电梯当前运行目标。
        • nowtime(int) :当前时间。
        • liftfloor(int) 电梯当前所在楼层。
        • goalid(int):电梯当前运行目标的请求乘客编号。
        • sumtime(int):总等待时间。
      • 函数:(未完待续)

原文地址:https://www.cnblogs.com/jhy16193335/p/8426760.html

时间: 2024-10-07 17:34:05

2017面向对象程序设计寒假作业2的相关文章

2017面向对象程序设计寒假作业3!

实现简单电梯调度(2) GitHub:pullself 承接上文:2017面向对象程序设计寒假作业2! 上文调度方式的更新与优化 由于现在电梯可以在任意楼层停靠并且上下人.进行对应的修改. 建立在上文所使用的调度方式为基础,继续给出以预知和非预知为条件的两个程序. 代码行数 调试bug 编码时间 ?行 ?个 ?h ?行 ?个 ?h 预知版本 通过分析,我们可以知道,只需要对搜索方式进行修改即可,修改为通过接受到的请求,动态增加所需要搜索节点. 具体实现方式: 在搜索过程中加入目的地判断与记录.

【2017级面向对象程序设计寒假作业】第2次成绩排行

[2017级面向对象程序设计寒假作业]第2次成绩排行 作业地址 http://www.cnblogs.com/easteast/p/8421230.html 评分准则 本次作业满分 20 分,其中代码分数 10分.博客分数 10 分. 代码得分点在于: 运行10个测试点,视通过测试点的数量而定基础分.若存在仓库无代码文件或代码不通过编译.编译后无法运行等则视情况扣除大量分数. 是否符合输出规范.由于此次主要测试在于最终输出的乘客等待时间和,若对于各楼层的停靠情况的输出不合理则扣分较少,希望在之后

2017级面向对象程序设计寒假作业2

Deadline:2018.02.11 22:00 pm 第一次的寒假作业,开启了大家的寒假生活,转眼回到了"小学生作文题"的感觉.不知道是否也通过这次作业,将你的回忆时光拉回到了几年前或十年前,沉思回忆代替了纷扰的知识.很多同学回忆了小学.中学的课任老师,或书法.绘画的老师.无论他们是严厉还是宽容,是鸡汤还是淡定,都或多或少的影响或潜移默化改变着你.在经过一次时光超越后,书归正传,我们开启编码的作业. 一.Pintia小作业 注册pintia,填写昵称为"fzu+学号&qu

2017级面向对象程序设计寒假作业4

Deadline 2018.03.02 22:00 一.完成PTA题目集 题目集链接:https://pintia.cn/problem-sets/966322407656148992/problems 请独立完成,不要抄袭!助教会对提交的代码进行查重,若发现抄袭则倒扣分. 完成题目后请将提交结果的截图贴到下述博客的末尾. 二.自我总结博客 写一篇博客,作为在寒假中关于 C++ 已完成的自学内容的总结.博客中需要包括但不限于以下内容: 已学的内容总结 存疑的问题 花费的总时间 锻炼的代码行数 两

2017级面向对象程序设计寒假作业3

Deadline:2018.02.22 22:00 pm 题目描述基础:一栋10层的大楼(楼层编号1-10),设有一台无限载重的电梯,初始时电梯停在1层.电梯移动1层的耗时为1,在某一层停靠的耗时为1(时间初始为0).为了使得乘客等待的时间(电梯在目的层的停靠时刻 - 乘客发出请求时刻)总和最小,请你编写一个程序来进行电梯调度. 本次作业是在上一次的电梯调度的代码上进行改善迭代,不仅加入新的功能,也对程序的输入输出提出了新的要求. 作业要求 一. 输入从文件读取,输出是写入文件. 大家在学习 C

2017级面向对象程序设计寒假作业1

总有一些人在你成长的路上,或多或少帮助你,让你感动,让你难忘. ·化作春泥更护花 时过多年忘了那时的一点一滴,忘了其他,但是我还是记得她. 那还是小学,她经常把我们几个语文比较差的同学留下来额外辅导,耐心的给我们听写,帮我们改出哪里错了.临近考试她还把我们交到了她的家里,给我们辅导了好几节课,自始至终,他没有收过我们一分钱,也没有说什么,只是无私的给我们付出.当时我不知道她为什么要这么做,只是觉得她很好,是一个好老师.现在想想,这是十分可贵的,可贵的不是她没有收钱,可贵的是她的时时刻刻为了学生的

2017面向对象程序设计(Java)第二周学习总结

2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为第一周学长正在家里吃西瓜吹空调.好了,闲言少叙.我先为你们介绍一下助教的职责,而后再对你们的学习情况进行总结! 身为你们本学期Java课程的助教...之一,我的任务是:指导你们学习,批改我所负责学习小组的实验作业.阅读博文并回复.其他学习小组会有另外三位助教负责.由于我们每周五都会汇总你们的情况,其

2017面向对象程序设计(Java) 第1周学习指导及要求(2017.8.24-2017.8.27)

2017面向对象程序设计(Java) 第1周学习指导及要求(2017.8.24-2017.8.27)   学习目标 了解课程上课方式及老师教学要求,掌握课程学习必要的软件工具: 简单了解Java特点及历史: 理解JVM.JRE与JDK等概念,学会下载.安装.测试JDK: 掌握PATH.CLASSPATH的系统变量作用并会设置: 掌握命令行编译并运行Java程序的步骤: 掌握Java Application 程序结构特点: 了解Java Applet程序结构及运行要求: 初步使用Elipse,学会

【2017级面向对象程序设计】作业三

gtihub 实现方法 代码构成:主函数,加上类电梯,加上结构体乘客,加上lua脚本3个. 基本思路: 运行前: 输入数据. 启动lua虚拟机. 运行时: 检查请求:检查有没有新的请求,有则放入总请求向量中. 同步:将新的请求同步到每个电梯的请求向量中,并判断是否可以前往该请求楼层,标记不能前往的乘客. 判断进出:判断乘客是否可以.愿意进出电梯,并标记这些乘客. 同步:将乘客状态与其他电梯同步. 输出:输出电梯停靠楼层. 调用:调用脚本函数对下一步移动方向进行处理. 移动:电梯移动. 完成判定: