类相关的简单作业

author author     2022-10-05     588

关键词:

角色:学校、学员、课程、讲师
要求:
1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 , linuxpy 在北京开, go 在上海开
3. 课程包含,周期,价格,通过学校创建课程
4. 通过学校创建班级, 班级关联课程、讲师
5. 创建学员时,选择学校,关联班级
6. 创建讲师角色时要关联学校,
7. 提供两个角色接口
7.1 学员视图, 可以注册, 交学费, 选择班级,
7.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
7.3 管理视图,创建讲师, 创建班级,创建课程

8. 上面的操作产生的数据都通过pickle序列化保存到文件里

 

 

#启动类
# Author:zylong
"""
schoole 启动类
"""
import os,sys

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

sys.path.append(BASE_DIR)

import core


core.main.run()

 

 

 入口类:main

# Author:zylong

from core import homework
from core import admin
# from core import teacher
# from core import student

choose1 = {
    "admin":1,
    "teacher":2,
    "student":3
}

def run():
    # print("run")
    for i in choose1:
        print(i,choose1[i])
    youchoose = int(input("选择用户"))
    if youchoose == 1:
        admin.run()
    # elif youchoose == 2:
    #     teacher.run()
    # elif youchoose == 3:
    #     student.run()

 

 管理员类:

#创建班级,创建课程
# python = Course("python",30,13000)
# linux = Course("linux",40,14000)
# go = Course("go",50,15000)
# curses = {
#     "python":python,
#     "linux":linux,
#     "go":go
# }
from core import homework
from core import common

adminchoose = {
    "创建班级":1,#这里简化,创建班级的时候,必须得有课程,要不不让创建
    "创建课程":2,#课程不能单独存在,必须依存班级
    "创建讲师":3,
}
# courselist = list()
def run():
    while True:
        schoole = common.getSchoole()
        for i in adminchoose:
            print(i,adminchoose[i])
        yourchoose = int(input("what you want to do"))
        if yourchoose == 1:
            #创建班级
            garde = homework.Grade("Python班")
            schoole.createGrade(garde)
            print("you have create ",schoole.grades)
        elif yourchoose == 2:
            course = homework.Course("python",30,13000)
            # courselist.append(course)
            schoole.courses.append(course)
            schoole.makeCourse(schoole.grades[0], course)
        elif yourchoose == 3:
            teacher = homework.Teacher("zhang",20,"北京","python")
            #添加老师
            schoole.addTeacher(teacher)
            #为班级分配老师
            schoole.distributionTeacher(schoole.grades[0],teacher)
        elif yourchoose == 4:
            #退出程序,并保存信息,这里保存的就是学校的信息,老师,课程,班级等信息
            common.saveInfo(schoole)
            break

 

 

所有的类(这里不分开了)

"""

角色:学校、学员、课程、讲师
要求:
1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 , linuxpy 在北京开, go 在上海开
3. 课程包含,周期,价格,通过学校创建课程
4. 通过学校创建班级, 班级关联课程、讲师
5. 创建学员时,选择学校,关联班级
6. 创建讲师角色时要关联学校,
7. 提供两个角色接口
7.1 学员视图, 可以注册, 交学费, 选择班级,
7.2 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
7.3 管理视图,创建讲师, 创建班级,创建课程

8. 上面的操作产生的数据都通过pickle序列化保存到文件里


"""
#1
class Schoole:
    #通过地址创建学校,初始化学校的时候,默认开一个课程,后期可以再添加课程
    def __init__(self,addr):
        self.addr = addr
        #2.课程必须是实例里的所以定义在实例里面
        self.courses = []
        #学校中有班级
        self.grades = []
        #学校中有学生
        self.students = {}
        #学校中有老师
        self.teachers = {}
    #添加课程
    def addCourse(self,course):
        self.courses.append(course)
    #创建班级
    def createGrade(self,grade):
        self.grades.append(grade)
    #为班级制定课程
    def makeCourse(self,grade,course):
        grade.course = course
    #为班级制定老师
    def distributionTeacher(self,grade,teacher):
        #判定这个老师是否符合这个班级
        if teacher.know == grade.course.name:
            grade.teacher = teacher
        else:
            print("this teacher %s Not suitable %  "%(teacher.name,grade.course.name))

    #学生注册
    def addStudent(self,student):
        self.students[student.name] = student
    #老师注册
    def addTeacher(self,teacher):
        #判断老师是否能够加入到学校
        for course in self.courses:
            if course.name == teacher.know:
                self.teachers[teacher.name] = teacher

    #学生通过学校交那个课程的学费
    def payTuition(self,student,money,courseName):
        #这里判断交的钱是否足够,如果足够,将这个学生添加到那个班级里
        for i in self.courses:
            if courseName == self.courses[i].name:
                course = self.courses[i]
        if course :
            if money >= course.price :
                print("%s is pay %s and join %s"%(student.name,money,course.name))
                #将学生添加到班级中
                # #根据课程找到老师,根据老师找到班级这里简化一下,班级里面有课程,不跟随老师变化
                # for teacher in self.teachers:
                #     if teacher.know == course.name:
                #         #将学生加入到老师所在的班级中
                #         self.grades
                for grade in self.grades:
                    if grade.course.name == course.name:
                        grade.students = list().append(student)

            else:
                print("%s money is not enough for %s"%(student.name,course.name))
        else:
            print("dont have this %s"%courseName)



#3(linux , python , go)
class Course:
    #课程包含 名称,周期,价格
    def __init__(self,name,cycle,price):
        self.name = name
        self.cycle = cycle
        self.price = price
#4 班级,班级里面包含,学生和讲师,但是班级不能脱离学校直接存在
#实例化班级的时候,其实只需要课程(这里也不需要,统一在学校中处理)
class Grade:
    def __init__(self,name):
        self.name = name


class Person(object):
    def __init__(self,name,age,addr):
        self.name = name
        self.age = age
        self.addr = addr

class Student(Person):
    #学生有特有的属性,学生需要学习
    def study(self):
        print("%s is study"%self.name)

#老师会什么知识,才能教什么课(这里简单一个老师只能教一个课程)
class Teacher(Person):
    def __init__(self,name,age,addr,know):
        super(Teacher,self).__init__(name,age,addr)
        self.know = know
    def teachind(self):
        print("%s is teaching"%self.name)


#这里实例化两个学校

beijingschoole = Schoole("北京")
shanghaischoole = Schoole("上海")

 

common类:

# import os,sys
#
# sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from core import homework
import pickle
def getSchoole():
    schooleList = [homework.beijingschoole, homework.shanghaischoole]
    for s in schooleList:
        print(s.addr)
    schooleaddr = input("please input your schoole")
    if schooleaddr == homework.beijingschoole.addr:
        schoole = homework.beijingschoole
    else:
        schoole = homework.shanghaischoole
    return schoole

def saveInfo(schoole):
    with open("../conf/schoole","wb") as f:
        pickle.dump(schoole,f)

def readInfo():
    with open("../conf/schoole","rb") as f:
        schoole = pickle.load(f)
        print(schoole.addr,schoole.courses)
#测试,可以发现学校的信息已经保存到文件中了
readInfo();

 

作业-继承7

...包含的属性有载重量payload。每个类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功能。packageT092206;publicclassVehicle{p 查看详情

最好的聚类算法? (简单解释)

...ticles”的表中的大约20,000条文本您希望使用聚类算法连接相关文章,以便一起显示相关文章算法应该进行平面聚类(非分层)相关文章应插入“相关”表中聚类算法应根据文本判断两篇或多篇文章是否相关我 查看详情

课堂作业06——设计模式综述

设计模式综述1.简单工厂模式  简单工厂模式中,有一个专门负责创建其他实例的类——工厂类,这个类可以动态地调用需要的类来完成相应的功能,只要传入一个正确参数即可。就像用户想要水果,但并不需要知道水果... 查看详情

第十章--聚类分析第5组小组作业

...员:张楠 孙美玉 杨樾二、成员分工吕海楠:学习相关知识(第二节),操作演讲ppt张楠:学习相关知识(第一、三节),操作演讲ppt孙美玉:收集相关知识材料,制作ppt杨樾:筛选资料,制作ppt三、ppt展示   查看详情

2017秋-软件工程第一次作业

...哈尔滨工程大学就读。我备选专业中大部分都和金融专业相关,但是哈工程是工科类院校,所以我选择了理工类的计 查看详情

oop第一次博客作业(代码片段)

...业​ 这一次作业一共只有四道题,第一题和第二题比较简单,只需要构建一个简单的类。第三题和第四题相比之前所有的题有了一个相当大的跳跃。这两题 查看详情

爬虫大作业

...个小说网站。 2.用python编写爬虫程序,从网络上爬取相关主题的数据。导入相关类importrequestsfrombs4importBeautifulSoupimportjieba获取详细页面的标题和介绍  defgetNewDetail(novelUrl):#获取详细页面方法 查看详情

作业14-数据库

...1.1以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容。2.使用数据库技术改造你的系统2.1简述如何使用数据库技术改造你的系统。要建立什么表?截图你的表设计。将原本存于文件中的用户信息存于数据库中,如下... 查看详情

06-继承与多态课程作业01完成课件中的动手动脑的或需要验证的相关内容

一、怎样判断对象是否可以转换?  可以使用instanceof判断一个对象是否可以转换为目标类型:1publicclassTestInstanceof2{3publicstaticvoidmain(String[]args)4{5//声明hello时使用Object类,则hello的编译类型是Object,Object是所有类的父类6//但hello... 查看详情

第一次作业

作业要求:做一个简单的乘法计算器屏幕展示效果作业体会:注意自己的LinearLayout一定要是横向的所以选择vertical不要粗心的选着错误上面三横线是edittext计算是button在拖拉按钮的时候一定不可以拉错了。java代码这个java类有两个... 查看详情

软件工程作业一

...种软件浅谈软件和硬件的区别。(蓝色字体的内容与要求相关!)  第一种:系统类软件windows  1、这些软件的开发者是怎么说服 查看详情

c高级第四次作业(代码片段)

...作的文件名第二步:找到并打开文件第三步:if语句匹配相关功能第四步:实现相关功能并返回结果第五步:关闭文件1.0版本设计思路在最近学习的PHP项目中得到了相关的灵感,可以将每个功能封装成函数实现相关的功能,这样... 查看详情

第四次作业

贪吃蛇游戏  1:这是一个简单的贪吃蛇游戏,是用java编写的   2:我和于漪两人共同写,他负责Node类和SnakeModel类,我负责TCS类。事前我们统一了标准,包括各个变量的名称,语法结构之类的等等细节问题。   3:... 查看详情

apriori算法实现

...,其本质为,可以划分为一类的item,其内部就有一定的相关性,那么,挖掘的本质,就是在分类以后,找到同一类不同item中的相关性(为啥可以分到同一类中去)。笔者刚才荡了一段代码,发现其可移植性非常好。现在,下面... 查看详情

java集合相关学习——手写一个简单的map接口实现类(hashmap)

...几篇文章:HashMap常用方法举例HashMap源码剖析Java集合相关面试题 2.案例代码要求是这样的:请完善TestMap类,要求只实现get、put、r 查看详情

第4次作业类测试代码+098+吴超

一、类图二、代码与界面简单的分层思想,代码目录如下:计算日期的业务类操作代码:printDate.java;具体包括如下方法。2.1 增加计算星期几的方法weekDay(),利用蔡勒(Zeller)公式.即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1:公式中的符号... 查看详情

android安卓作业

...上查下吧。应该有不少,基本解决方法呢,分段文件(File相关),显示出来(图简单的话,用TextView就行了,一般也用这个)。第一:了解下acitivy.第二:布局和组件。第三:文件IO。本回答被提问者采纳 参考技术B挺简单的,网上找一... 查看详情

第十周补做作业

第十周课下补做作业相关知识点的总结Comparable接口:如果链表中存放的对象不是字符串数据,那么创建对象的类必须实现Comparable接口,即实现该接口中的方法intcompareTo(Objectb)来规定对象的大小关系。也就是让待排序对象所在的... 查看详情