首页 > 编程语言 >Python实现简易版选课系统

Python实现简易版选课系统

时间:2024-05-14 16:56:32浏览次数:15  
标签:选课 Python 上单 self 学生 中单 简易版 打野

需求:

在这里插入图片描述

一、创建学生类

# 创建学生类
import random
class Student:
    def __init__(self,num,name,address,course_lst=None):
        self.num=num
        self.name=name
        self.address=address
        if course_lst:
            self.cous_lst=cous_lst
        else:
            self.cous_lst=[]
    def look(self): #查看学生所有的课程信息
        print("%s学生的选课信息:"%self.name)#输出信息提示
        for el in self.cous_lst:
            print(el.name,end="  ")
        print()
    def adds(self,s):#学生添加课程
        self.cous_lst.append(s)

二、创建课程类

# 创建课程类
class Course:
    def __init__(self,num,name,teacher=None):
        self.num = num
        self.name = name
        self.teacher=teacher
    def look(self):#查看课程信息
        return "课程编号: %s ,课程名称: %s ,课程老师: %s " %(self.num,self.name,self.teacher)
    def sett(self,t):#给课程添加老师
        self.teacher=t

三、创建教师类

# 创建教师类
class Teacher:
    def __init__(self,num,name,phone):
        self.num = num
        self.name = name
        self.phone=phone

四、创建6个老师

# 创建6个老师
t1=Teacher("N01","寒冰",10086)
t2=Teacher("N02","疾风剑豪",10387)
t3=Teacher("N03","瞎子",10088)
t4=Teacher("N04","机器人",10536)
t5=Teacher("N05","德玛西亚",24550)
t6=Teacher("N06","武器",10089)

五、创建6门课程

# 创建6门课程
c1=Course("KS01","上单")
c2=Course("KS02","中单")
c3=Course("KS03","下路AD")
c4=Course("KS04","辅助")
c5=Course("KS05","打野")
c6=Course("KS06","日中天")
c_lst=[c1,c2,c3,c4,c5,c6]

六、给课程安排老师

# 给课程安排老师
c1.sett(t6)
c2.sett(t2)
c3.sett(t1)
c4.sett(t4)
c5.sett(t3)
c6.sett(t5)

七、定义随机数函数

# 创建随机产生3个[0:5]不重复的数字
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:153708845
import random
def rand():
    lst=[]
    while len(lst)<3:
        lst.append(random.randint(0,5))
        s=set(lst)
        lst=list(s)
    return lst

八、创建30个学生

lst=[Student("N%s"%i,"学生%s号"%i,"清华路%s号"%i)for i in range(30)]

九、学生开始选课

for el in lst:
    r=rand()
    for el2 in r:#[1,3,5]
        el.adds(c_lst[el2])

十、显示学生的选课信息

for el in lst:
    el.look()

结果显示

学生0号学生的选课信息:
辅助  打野  日中天  
学生1号学生的选课信息:
中单  辅助  打野  
学生2号学生的选课信息:
上单  下路AD  打野  
学生3号学生的选课信息:
中单  下路AD  辅助  
学生4号学生的选课信息:
上单  中单  下路AD  
学生5号学生的选课信息:
上单  下路AD  打野  
学生6号学生的选课信息:
上单  下路AD  辅助  
学生7号学生的选课信息:
辅助  打野  日中天  
学生8号学生的选课信息:
辅助  打野  日中天  
学生9号学生的选课信息:
中单  打野  日中天  
学生10号学生的选课信息:
上单  下路AD  日中天  
学生11号学生的选课信息:
中单  下路AD  辅助  
学生12号学生的选课信息:
中单  辅助  打野  
学生13号学生的选课信息:
中单  打野  日中天  
学生14号学生的选课信息:
上单  下路AD  辅助  
学生15号学生的选课信息:
上单  打野  日中天  
学生16号学生的选课信息:
上单  打野  日中天  
学生17号学生的选课信息:
上单  下路AD  辅助  
学生18号学生的选课信息:
上单  中单  日中天  
学生19号学生的选课信息:
上单  辅助  日中天  
学生20号学生的选课信息:
下路AD  打野  日中天  
学生21号学生的选课信息:
上单  中单  打野  
学生22号学生的选课信息:
上单  中单  辅助  
学生23号学生的选课信息:
上单  中单  打野  
学生24号学生的选课信息:
辅助  打野  日中天  
学生25号学生的选课信息:
中单  下路AD  辅助  
学生26号学生的选课信息:
上单  中单  日中天  
学生27号学生的选课信息:
上单  中单  下路AD  
学生28号学生的选课信息:
上单  中单  日中天  
学生29号学生的选课信息:
中单  下路AD  打野  

标签:选课,Python,上单,self,学生,中单,简易版,打野
From: https://www.cnblogs.com/djdjdj123/p/18191667

相关文章

  • python列表中切片的正负数
    先说结论:列表切片的格式为[start:end:step]其中step代表步长,即每从start位置开始每隔几个元素取一个值step为正数时表示切片取值方向为:从左往右;为负数时:从右往左start,end代表切片取值的起始和结束位置,请注意这个词:位置,我们假设可以取值的范围是数学中x坐标轴......
  • Python如何访问闭包中的变量
    你想要扩展函数中的某个闭包,允许它能访问和修改函数的内部变量。解决方案通常,闭包的内部变量对外界是完全隐藏的。但可以编写访问函数,将其作为函数属性绑定到闭包上来实现访问。defsample():n=0#闭包函数deffunc():print('n=',n)#属性n的......
  • Python中如何避免字典和元组的多重嵌套的方法
    一、字典、元组的多重嵌套例1:记录全班学生的成绩。分析:定义一个SimpleGradebook类,学生名是字典self._grades的键,成绩是字典self._grades的值。classSimpleGradebook():def__init__(self):self._grades={}defadd_student(self,name):self.......
  • python类函数定义第一个参数必须是self
     如果不写self,则会报错   加上之后错误就会消失 ......
  • Python 内置正则表达式库re的使用
    什么是正则表达式正则表达式就是记录文本规则的代码可以查找操作符合某些复杂规则的字符串使用场景处理字符串处理日志在python中使用正则表达式把正则表达式作为模式字符串正则表达式可以使用原生字符串来表示原生字符串需要在字符串前方加上r'string'#匹配......
  • 爬虫 python的第一天
    1、安装pycharm及python相关的安装2、新建python项目3、引包 importrequestspipinstallrequests4、打开网页,找打你想要爬的数据URL 5、写代码获取到对应的数据,保存到本地。importrequestsurl="https://sns-video-al.xhscdn.com/stream/110/259/01e640315b0ef......
  • Python 内置库 多线程threading使用讲解
    线程基本使用单线程defmain():print("在扔一个苹果")if__name__=="__main__":main()多线程Python提供了thread、threading等模块来进行线程的创建与管理,后者在线程管理能力上更进一步,因此我们通常使用threading模块。创建一个线程需要指定该线程执行的任务(函......
  • Python 中寻找列表最大值位置的方法
    前言在Python编程中,经常需要对列表进行操作,其中一个常见的任务是寻找列表中的最大值以及其所在的位置。本文将介绍几种方法来实现这个任务。方法一:使用内置函数max()和index()Python提供了内置函数max()来找到列表中的最大值,同时可以使用index()方法找到该最大值在......
  • 实现Python日志点击跳转到代码位置的方法
    前言在软件开发过程中,日志是一种非常重要的工具,用于记录程序运行时的状态、错误信息以及调试信息。当程序出现问题时,定位到具体的代码位置对于排查问题至关重要。本文将介绍如何在Python日志中实现点击跳转到代码位置的功能,以提高调试效率。为什么需要点击跳转功能?通常情况下,......
  • 零操作,高效下载:利用Playwright和Python完成文件下载
    前言Playwright是一个由Microsoft开发的跨浏览器自动化测试工具,它提供了强大的功能来模拟用户在浏览器中的操作。Playwright还可以应用于诸如文件下载等实际场景的测试。本文将介绍如何利用Playwright在Python中实现文件下载功能。文件下载文件下载也是我们进行web自......