python面向对象程序设计实训学生自我总结_python--面向对象编程之学生选课系统练习...

#!/usr/bin/env python#-*- coding:utf-8 -*-

"""模拟学校的选课系统"""

importrandomimporttimeimportpickleimportos#定义老师类

classTeacher:"""封装老师的相关信息"""

def __init__(self, name, age, admin):

self.name=name

self.age=age

self.__assets =0

self.create_time= time.strftime(‘%Y-%m-%d %H:%M:%S‘)

self.create_admin=admindefgain(self, cost):"""增加资产

:param cost: 增加的数量

:return:"""self.__assets +=costdefdecrease(self, cost):"""减少资产

:param cost: 减少的数量

:return:"""self.__assets -=cost#定义课程类

classCourse:"""课程相关信息"""

def __init__(self, course_name, cost, teacher_obj, admin):

self.course_name=course_name

self.cost=cost

self.teacher=teacher_obj

self.create_time= time.strftime(‘%Y-%m-%d %H:%M:%S‘)

self.create_admin=admin#定义管理员类

classAdmin:"""封装管理员"""

def __init__(self):

self.username=None

self.password=Nonedeflogin(self, user, pwd):"""管理员登录

:param user:

:param pwd:

:return:"""

if self.username == user and self.password ==pwd:returnTrueelse:returnFalsedefregister(self, user, pwd):"""管理员注册

:param user:

:param pwd:

:return:"""self.username=user

self.password=pwd

path=self.username

pickle.dump(self, open(path,‘xb‘))#定义创建老师的方法

defcreate_teacher(admin_obj):

teacher_list=[]whileTrue:

teacher_name= input("请输入老师的姓名:(q退出)")if teacher_name == "q":breakteacher_age= input("请输入老师的年龄:")

obj=Teacher(teacher_name, teacher_age, admin_obj)

teacher_list.append(obj)if os.path.exists("teacher_list"): #判断老师列表是否存在

exists_list = pickle.load(open(‘teacher_list‘, ‘rb‘))

teacher_list.extend(exists_list)

pickle.dump(teacher_list, open(‘teacher_list‘, ‘wb‘))#定义创建课程的方法

defcreate_course(admin_obj):

teacher_list= pickle.load(open(‘teacher_list‘, ‘rb‘))for num, item in enumerate(teacher_list, 1):print(num, item.name, item.age, item.create_time, item.create_admin.username)

course_list=[]whileTrue:

name= input("请输入课程名(q退出):")if name == "q":breakcost= input("请输入课时费:")

num= input(‘请选择老师(序号):‘)

obj= Course(name, cost, teacher_list[int(num) - 1], admin_obj)

course_list.append(obj)if os.path.exists("course_list"): #判断课程列表是否存在

exists_list = pickle.load(open(‘course_list‘, ‘rb‘))

course_list.extend(exists_list)

pickle.dump(course_list, open(‘course_list‘, ‘wb‘))#定义查看课程表的方法

deflook_course():

course_list= pickle.load(open(‘course_list‘, ‘rb‘))for num, item in enumerate(course_list, 1):print(num, item.course_name, item.cost, item.teacher.name, item.create_time, item.create_admin.username)#定义管理员登录方法

defto_login(user, pwd):ifos.path.exists(user):#从文件中将管理员对象读取出来(里面封装了用户信息以及提供了登录访求)

admin_obj = pickle.load(open(user, ‘rb‘))ifadmin_obj.login(user, pwd):print(‘登录成功!‘)whileTrue:

sel= input("1、创建老师;2、创建课程; 3、查看课程表(q退出程序) \n >>>>")if sel == ‘1‘: #创建老师

create_teacher(admin_obj)elif sel == ‘2‘: #创建课程

create_course(admin_obj)elif sel == ‘3‘:

look_course()else:break

else:return 1

else:return0#定义管理员注册方法

defto_register(user, pwd):

admin_obj=Admin()

admin_obj.register(user, pwd)defmain():

inp= input("1、管理员登录; 2、管理员注册;\n >>>>>")

user= input(‘请输入用户名:‘)

pwd= input(‘请输入密码:‘)if inp == ‘1‘:

ret=to_login(user, pwd)if ret == 1:print("密码错误!")elif ret ==0:print("用户不存在!")elif inp == ‘2‘:

to_register(user, pwd)if __name__ == "__main__":

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值