zoukankan      html  css  js  c++  java
  • 学生社团排班程序说明书

    SetPlan使用说明书Beta版
    #前言 > 自己用MFC捣鼓出来的排班软件,没多少技术含量,当初网上找了好久没有想要的,就自己写了一个。不喜勿喷,哈哈。

    主要功能

    实现社团或学生组织安排值班,出现紧急情况及时换班的集空闲时间表查询、修改、生成值班表、生成个人值班时间表、快捷发送个人值班表,以及紧急换班查询的一体化程序。

    扩展功能

    定时QQ提醒值班、QQ群发消息(包括图片,文件)正在开发测试中。程序下载链接 密码:8qzr

    目标用户

    参加社团或学生组织的学生

    产品展示

    红色字体的功能按钮为测试功能,尚未开发完毕

    以下功能要想正常使用需要一部分txt文件,到时候有需要的可以私聊我,我帮忙弄,技术水平有限,不能生成全部的需要文件,@Titordong

    使用说明

    如上图所示,这是应用的启动界面,启动以后,应用会自动在D盘根目录生成6个文件夹,及一个txt文件(包括测试文件),作为存排班数据的地方,当然这个地址可以联系我更改,在设定好一定的必须数据以后(包括个人课表,名单,和一些排班时间的数据),就可以开始使用了。说明书中涉及到隐私的名字均已打码,抱歉!

    1)选择值班方案

    这是所有功能的第一步,包括排班,换班,不选的话不影响个人课表修改功能,但是使用其他功能会出现提示,无法进行。

    这个是我已经存好的方案,也就是选择哪些人参加值班,初次使用可以点击新建,设置自己的方案,当然这也是根据自己已经存好的所有人里面挑选。

    每个人都有自己的最大值班量,表明一周的排班少于等于这么多节,绝不会超过。看上图,添加值班人的方法也很简单,只要双击左边未选中的人的名字,就能选中,并在右边显示出来,当然如果选错了也不要紧,只要双击右边出现的选错的人名,就会自动回到左边。

    选择好以后点击确定,自动保存,以后打开应用以后就可以直接使用了。
    在选择方案那里有下拉框可以选择查看某个方案的具体情况,当然也可以点删除键,删除当前下拉框选中的方案,在选择好方案以后我们进行下一步。

    2)开始排班

    如果没有要更改的课表(如果谁在本周临时有事不能参加值班,也可以改课表,改成有课状态,这个下面再说),选中了其中一个方案以后就可以开始排班了。

    默认值班周期为一周,时间段也是根据自己情况来定,下面的“第二关联”也是我自己根据自己社团情况加的一栏,相当于每天又多了一个值班的人。注:我自己根据社团要求设定了每人每天最多值班一节,排班算法可以根据情况修改

    在排班前可以点击“空闲表”查看一周中每个值班点有多少人可以参加值班,一目了然。如果有一节是没有人的话,在排班时会标出来“没人”。

    点击开始,程序开始排班,程序的实现思路比较蠢,有想了解的可以私信我。因为实现比较蠢的缘故,在按下开始以后,程序可以把值班表排好,但是并不保证当前情况是最优的(实现预期的尽可能平均),但是也会差不多,我这里定义了一个“方差”变量,瞎**定义的,表示和预期的偏差程度,具体偏差多少可以点击旁边的“排班分析”查看,一般来说“方差”小于0.2的时候结果就已经很令人满意了,在“方差”大的时候,可以再点“开始”进行进一步的优化,这就是程序最蠢的地方了,不过对排班平均化要求不是很高的时候,一次得出的结果也可以用。状态完成表示所有的有人有空闲时间的班都被安排了人,如果有一个没安排,那就会是“未完成”。

    排班分析列出个人最大值班量,实际排班量和差值,应该注意的是排班不会出现实际排班量大于最大排班量,所以差值就是比预期少值了多少班。

    输出表格功能是程序最重要的功能之一,这个按键会生成一下文件:
    1.一份空闲时间汇总表,文件以日期命名,默认是启动程序的下一天,格式txt,表示每天的每节课都有哪些人有时间,可以用来安排其他任务值班或者值班调换。
    2.一份值班表表格,文件以日期命名,命名规则同上,这个是用来公示的表格,里面有每节课值班人的名字,格式为xls,不过可惜技术水平有限,需要打开后另存为xlsx(其他格式也行),才能变成真的表格文件,不然大小只有不带1k,手机端打开会失去格式,值班表是这个样子:

    3.两份txt版本的排班数据,一份是英文名,一份是中文名,这里提到英文名是因为进阶功能的群发文件和正在测试中的脚本设置用中文会出BUG,所以名字一开始准备了两份。中文名的可以直接查看,也是用来换班查询的必须文件,英文名文件暂时没用。
    4.一套个人值班表。这个文件夹不在上面的截图中,是一个存在D盘,名叫personnal_list的文件夹,里面对于值班的每个人都有一份属于自己的课表,只有自己的值班信息,支持自定义内容,格式为txt。


    一键发送为正式版功能,可以把个人值班表通过qq私聊发到每个需要值班的人号上,暂不支持体验。

    3)修改个人课表

    同理这个也需要提前选择排班方案,不选择的话会显示可以更改全部存有课表的人的数据,选择方案以后更改就方便很多了。

    打开修改课表选项以后,左上角有一个下拉框,可以选择你想要更改课表的人,选定以后全部课表信息显示在左下的表格中,1代表有课,0代表没课,右上角是值班上限。更改状态的方法比较方便,把一门课改成另一个状态只要双击这门课所在的格子可以,如果是大范围的更改,比如说一整天没时间,可以点击第一排的click按钮,点击以后当前一列改变为统一有课或没课状态,再点击一下与原状态相反。横行的同理,最左边一列也可以点击按钮,直接改变一行的状态。如果是更大范围的更改,比如全部变成没课或有课,点击左上角的按钮,一步到位:

    更改值班上限稍麻烦一点(技术水平有限),需要将框里的数字更改后点一下确定按钮,点一下确定按钮,点一下确定按钮,说3遍。要注意的是,最大值班量为0代表值班上限为平均,所以不想值班的,要在之前选择方案时就安排出去,不然这里设置成0是不管用的哦!全部人信息都更改完以后,点击保存,将更改后的课表保存,不点保存是不会保存的。

    4)换班查询

    换班查询用来处理值班表排好以后值班人员临时有事的情况,注意:是换班,不是让谁来顶班,启动界面是这样的:

    使用换班查询的第一步是点击“打开值班表”,当然前面的选择方案也要选择本次排班你选择的那个方案,不然会有BUG,打开值班表按钮会弹出资源管理器,找到D盘的“排班数据txt”文件夹打开,里面有初次使用以来所有的排班表,根据文件名(包含日期)选择正确的值班表,注意不要选择有com后缀的,那个是英文版的,是还没有开发完毕的脚本设置需要的文件。
    选择好以后,看右边的栏大家应该也知道怎么选了,中间这列是下拉框,选择出状况要换班的那节在周几,时间,以及需要换班的人的名字。右边栏的开始星期默认什么都不选的话就是从周一的第一节开始筛选,也就是要选择你在准备换班时现在的时间是什么时候,周几,第几节课之后。都写好以后,点击查询,下方表格会显示哪个时间的人在这节冲突的时间可以值班,并且这节冲突的人在他所在的那节是有空闲时间的,也就是完美的“换班”,如下:

    如果这样“完美”的换班不存在,那就只能打开空闲时间表(上面提到生成的文件之一)找一个人来顶班了。

    5)脚本设置

    目前还在测试阶段,和一键发送一样,需要额外的文件,而且需要电脑在自动发消息时开机。理想状态下是一周排完班以后设置一次,就可以实现,到了值班时间,自动发qq消息到值班人员,喊人值班,全自动。由于没人催,这个BUG也比较多,就一直没写,如果有对这个特别需要的也可以联系我。

    6)联系作者

    不用多说了吧,点击以后可以加我好友,需要定制排班软件,或者要标红功能的使用密码的可以联系我,有偿哦!因为实在太菜了,给点辣条钱就行了。另外有新的实用开发点子,也可以商量探讨一下,不足的地方欢迎大佬的指正。

  • 相关阅读:
    抓取到的网页写入数据库后是乱码的解决方法
    关于SecureCRT v7.0.2.418 安装、破解和修改
    负数的除法和取模运算(Python 2.7和C的比较)
    单模式匹配匹配算法
    Python解析网页工具:PyQuery
    asp.net json,对象,字符串的相互转换
    asp.net 后台 get,post请求
    查看局域网内所有IP
    MSSql性能优化
    js中对象复制以及apply方法的使用
  • 原文地址:https://www.cnblogs.com/Titordong/p/9990716.html
Copyright © 2011-2022 走看看