基于Python的智能分班系统

暑假时接到了朋友的给的程序需求,赶了个python随机分配人员至两个班级的程序,基于Python的随机数生成函数进行阳光分班操作,可保证分班结果无任何人工因素介入。

可实现分班结果的本地存储,且公布结果时可选择缓出模式(观感体验比较好)

最近有时间简单整理了下代码,补上了该博客。

程序功能演示视频:https://www.bilibili.com/video/BV1Pf4y1y7qT/

智能分班系统 演示视频

代码:

import random,time,os


peonum=80
stulist=[]
manlist=['海川','爱予','鹏博','博','嘉浩','信宇','奕含','岩','宇博','思航','宇博','鑫宇','世博','瀚霆','鑫','维彬','凯祺','承恩','士哲','诗雨','天睿','祥','玉龙','智明','子博','子淳','琪浩','一鸣','子学','振豪','桐','一博','满意','锐锋','沫含','运晗','思琦','飨','忠文','羽翔','子航','浩川','昊然','鑫成','哲','明','栎鑫']
girllist=['雪冰','宁璨','菲','洁妮','凡雨','令娜','显然','思彤','文灿','欣冉','梦瑶','俊思','禹凡','宇航','宇柏','佳以琳','晓冉','恩洁','雨萌','玉鑫','依凡','佳鑫','诗怡','佳洋','林菲','思奇','珊珊','正爱','雨柠','子帆','畅','妍姝','雯淇','悦琪','春晓','雅涵','吉越','雨欣','天蕊','一萱','娇','媛媛','爽']

print("""
--------------------------------------------------------------------
|            智能分班系统©(齐市一中初中部限定版) ALPHA1.0    
|                     Author:ShuoCHN                    
|             本程序仅供齐齐哈尔市第一中学初中部使用            
|         如需定制其它程序请联络[email protected]      
|                                                       
|                        使用说明:
|       本程序通过基于Python的随机数生成函数进行阳光分班操作
|               可保证分班结果无任何人工因素介入
|      源代码查询:https://github.com/ShuoCHN/DivideClass
|--------------------------------------------------------------------

""")



while True:
    userchoice = int(input("欢迎使用,请按照提示输入相应数字:\n格式化系统请输入0,对男生分班输入1,对女生分班输入2,保存并退出请输入3:"))
    stulist = []
    if userchoice==1:
        peonum=len(manlist)
        for i in range(0,peonum):
            stulist.append(manlist[i])
    elif userchoice==2 :
        peonum=len(girllist)
        for i in range(0,peonum):
            stulist.append(girllist[i])
    elif userchoice==0:
        if os.path.exists("男生分班信息.txt"):os.remove("男生分班信息.txt")
        if os.path.exists("女生分班信息.txt"): os.remove("女生分班信息.txt")
        print("清理完成,可以开始正式使用↓↓↓")
        continue
    elif userchoice==3:
        print("感谢使用,软件版权©ShuoCHN")
        time.sleep(3)
        break

    quwei = 0
    while True:
        quwei=0
        quwei_choice = input("缓出模式请输入S,性能模式请输入E (均为大写):")
        if quwei_choice== 'S':
            quwei=1
            break
        elif quwei_choice == 'E':
            quwei=0
            break
        else:
            print("您的输入有误,请重新输入.")

    if userchoice==1:manfile = open("男生分班信息.txt", 'w+')
    else:girlfile = open("女生分班信息.txt", 'w+')


    cnt1=0
    print("\n\n分组A人员名单:")
    if userchoice == 1: manfile.write("分组A人员名单:\n")
    else:girlfile.write("分组A人员名单:\n")
    xunum=peonum/2
    if userchoice==2: xunum+=1
    while( len(stulist)>xunum):
        choice_stu=random.randint(0, len(stulist)-1)
        cnt1+=1
        if quwei == 1:time.sleep(0.5)
        pstr=str(cnt1)+": "+stulist[choice_stu]
        print(pstr)
        pstr+='\n'
        if userchoice==1: manfile.write(pstr)
        else:girlfile.write(pstr)

        del stulist[choice_stu]


    cnt2=0
    print("\n\n分组B人员名单:")
    if userchoice == 1: manfile.write("\n\n分组B人员名单:\n")
    else:girlfile.write("\n\n分组B人员名单:\n")
    while( len( stulist ) ):
        choice_stu=random.randint(0, len(stulist)-1)
        cnt2+=1
        if quwei == 1 :time.sleep(0.3)
        pstr=str(cnt2)+": "+stulist[choice_stu]
        print(pstr)
        pstr += '\n'
        if userchoice == 1:manfile.write(pstr)
        else:girlfile.write(pstr)
        del stulist[choice_stu]

    if userchoice==1:manfile.close()
    else:girlfile.close()
    print("分班信息已存储至与此exe同一目录下\n\n")


该程序已编译为exe文件,及其源码皆放置本人GitHub上

地址:https://github.com/ShuoCHN/DivideClass

作者:ShuoCHN

版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/ShuoCHN/article/details/112420945

猜你喜欢

转载自blog.csdn.net/ShuoCHN/article/details/112494250