一、创建学生类

# # 创建学生类
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]不重复的数字
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 简易版选课系统的更多相关文章

  1. python实现学生选课系统 面向对象的应用:

    一.要求: 选课系统 管理员: 创建老师:姓名.性别.年龄.资产 创建课程:课程名称.上课时间.课时费.关联老师 使用pickle保存在文件 学生: 学生:用户名.密码.性别.年龄.选课列表[].上课 ...

  2. [ python ] 作业:选课系统

    功能代码实现源地址:https://www.cnblogs.com/lianzhilei/p/5832691.html    如有侵权,立即删除 本文主要是分析 选课系统 实现思路及上面代码的实现过程 ...

  3. python day 12: 选课系统

    目录 python day 12 1. 通过类来创建选课系统 1.1 类库models.py 2. 配置文件setting.py 3. administrator.py 4. student.py p ...

  4. python简易版微信或QQ轰炸

    ​ 在讲解代码之前我们先来回忆一下,平时我们发送消息时,先打开微信或QQ的界面,在信息栏中输入你要发送的内容在点击发送或通过快捷键发送.如果要发送表情时,先打开微信或QQ的界面,在点击表情包中你要发送 ...

  5. python简易版学生管理系统

    #coding=utf- def showInfo(): print("**************") print(" 学生管理系统") print(&quo ...

  6. 安装了简易版XP系统后不能安装IIS的解决办法

    第一步 找到C:\WINDOWS\inf文件夹中的sysoc.inf文件,在 [Components]区域中的NetOC=netoc.dll,NetOcSetupProc,netoc.inf,,7和c ...

  7. python+requests模拟登陆 学校选课系统

    最近学校让我们选课,每天都有不同的课需要选....然后突发奇想试试用python爬学校选课系统的课程信息 先把自己的浏览器缓存清空,然后在登陆界面按f12 如图: 可以看到登陆时候是需要验证码的,验证 ...

  8. Dubbo入门到精通学习笔记(九):简易版支付系统介绍、部署(单节点)

    文章目录 部署(单节点) 一.前期准备 二.对部署环境进行规划 创建数据库 调整公共配置文件 应用部署前期准备 部署服务 部署 Web 应用 部署定时任务 一. 工程结构 第三方支付系统架构 pay- ...

  9. python【项目】:选课系统【简易版】

    功能要求 角色:学校.学员.课程.讲师要求:1. 创建学校2. 创建课程3. 课程包含,周期,价格,通过学校创建课程4. 通过学校创建班级, 班级关联课程.讲师5. 创建学员时,选择学校,关联班级5. ...

随机推荐

  1. c# 使用迭代器来创建可枚举类型

    class Program { public IEnumerator<string> GetEnumerator() { IEnumerable<string> my = Bl ...

  2. 【微服务No.4】 API网关组件Ocelot+Consul

    介绍: Ocelot是一个.NET API网关.该项目针对的是使用.NET运行微服务/面向服务架构的人员,他们需要一个统一的入口进入他们的系统.然而,它可以处理任何说HTTP并在ASP.NET Cor ...

  3. 总结下Mysql分表分库的策略及应用

    上月前面试某公司,对于mysql分表的思路,当时简要的说了下hash算法分表,以及discuz分表的思路,但是对于新增数据自增id存放的设计思想回答的不是很好(笔试+面试整个过程算是OK过了,因与个人 ...

  4. Java集合性能分析-疯狂Java讲义

    一.各Set实现类的性能分析 HashSet和TreeSet是Set的两个典型实现.HashSet的性能总是比TreeSet好(特别是最常用的添加.查询元素等操作),因为TreeSet需要额外的红黑树 ...

  5. awk、nawk、mawk、gawk的简答介绍

    awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出(即管道).它支持用户自定义函数和 动态正则表达式等先进功能,是linu ...

  6. RPC调用与GC垃圾回收

    RPC调用 多个服务协同完成一次业务时,由于业务约束(如红包不符合使用条件.账户余额不足等).系统故障(如网络或系统超时或中断.数据库约束不满足等),都可能造成服务处理过程在任何一步无法继续,使数据处 ...

  7. js/es6 元素拖动

    元素事件:鼠标按下事件/鼠标移动事件/鼠标松开事件 元素样式:让元素脱离文档流,采用绝对定位的方式. 一.鼠标按下事件 当鼠标在元素上面按下时,保存元素的初始偏移量和鼠标按下时的坐标,然后在状态变量里 ...

  8. Go开发之路 -- 时间和日期类型

    time包 time.Time类型, 用来表示时间 获取当前时间, now := time.Now() time.Duration() 用来表示纳秒 时间类型的格式化 now := time.Now( ...

  9. 前端常用技术概述--Less、typescript与webpack

    前言:讲起前端,我们就不能不讲CSS与Javascript,在这两种技术广泛应用的今天,他们的扩展也是层出不穷,css的扩展有Less.Sass.Stylus 等,js的超集有Typescript等. ...

  10. vue-cli创建的项目的目录结构及说明

    转自:http://blog.csdn.net/qq_34543438/article/details/72868546?locationNum=3&fps=1 一. ├── build    ...