近阶段,拔高提升能力的题目总结

1.各个商城的类基础

完成⽹网上商城订单的功能. 写出基本结构和基本操作即可. 把结构⼀一定列列出来, 操作可 以没有, 想清楚各个类之间的关系应该是什什么样的.(升级题) 每个⽤用户都有⼀一堆订单. 每个订单有⼀一堆订单明细. 每个明细对应⼀一个商品
用户
  信息: ⽤用户编号, 昵称, ⽤用户名, 密码, 电话, email, 家庭住址, ⾝身份证号
订单
  信息: 订单编号, 流⽔水号, 所属⽤用户编号, 收货地址. 邮费. 订单状态(0:是 否发货, 1:是否收货, 2: 是否退货), 评价编号.
评价
  信息: 评价编号, 评价分数, 评价内容, 评价显⽰示(0:显⽰示, 1:不显⽰示), 评价 类型(1: 物流评价, 2: 服务评价, 3: 商品评价) 订单明细
  信息: 明细编号, ⼩小流⽔水号, 商品购买时价格, 购买数量量. 商品编号.
商品
  信息: 商品编号, 商品名称, 商品描述, 商品价格, 商品库存.

# class User:
#     def __init__(self, id, nickname, usernmae, password, phone, email, address, idCard):
#         self.id = id # 1
#         self.nickname = nickname
#         self.order_list = []
#
# class Order:
#     def __init__(self, id, liushui,  address, youfei, order_status, user):
#         self.id = id
#         self.liushui = liushui
#         self.user = user
#
# class Pingjia:
#     def __init__(self, id, fenshu, content, display, pj_type):
#         self.id = id
#         self.fenshu = fenshu
#
# class OrderDetail:
#     def __init__(self, id, xiaoliushui,  price, num, product, pingjia = None): # price:购买的时候的价格
#         self.id = id
#         self.pingjia = pingjia
#         self.product = product
#
# class Product:
#     def __init__(self, id, name, title, content, kucun, price, manjian):
#         self.id = id

 

2

完成学⽣生选课系统. (升级题)

学⽣选课.

  学⽣:

    信息: 学号, 姓名, 住址. 选的课程列列表,

    功能: 查看: 查看该学⽣生所有课程信息.

        添加课程: 把选好的课程添加到课程列列表中 (传参)

  课程:

     信息: 课程编号, 课程名称. 老师.

     功能:

       查看: 查看该课程的全部信息

      设置老师: 给当前课程设置⼀一个老师. (传参)

  老师:

     信息: 老师编号, 老师名称. 电话

    功能: 无
  请完成以上三个类. 创建6个课程, 6个老师. 给课程安排好老师. 然后创建30个学⽣生. 每个学⽣生随机被分配3个课程. 最终显⽰示出这三⼗十个学⽣生的选课情况以及任课老师的电话

这个题目真的是能经得起,多次推敲思考的一个题目:

class Student:
    def __init__(self, sno, sname):
        self.sno = sno
        self.sname = sname
        self.cour_list = []

    def chakan(self): # 查看课程
        for c in self.cour_list:
            print(f"{self.sname}选了{c.cname}")

    def tianjia(self, cour): # 添加课程
        self.cour_list.append(cour)


class Course:
    def __init__(self, cno, cname, teacher=None):
        self.cno = cno
        self.cname = cname
        self.teacher = teacher

    def chakan(self):
        print(f"{self.cno}, {self.cname}, {self.teacher.tname}")

    # 设置老师
    def shezhilaoshi(self, teacher):
        self.teacher = teacher

class Teacher:
    def __init__(self, tno, tname, tphone):
        self.tno = tno
        self.tname = tname
        self.tphone = tphone

'''
请完成以上三个类. 创建6个课程, 6个老师. 给课程安排好老师. 然后创建30个学⽣.
每个学⽣随机被分配3个课程. 最终显⽰出这三⼗个学⽣的选课情况以及任课老师的电话
'''

# 准备生成随机数
from random import randint


c1 = Course("01", "抽烟")
c2 = Course("02", "喝酒")
c3 = Course("03", "烫头")
c4 = Course("04", "点烟")
c5 = Course("05", "倒酒")
c6 = Course("06", "给人烫头")

t1 = Teacher("01", "唐伯虎", "13301122001")
t2 = Teacher("02", "祝枝山", "13301122002")
t3 = Teacher("03", "文征明", "13301122003")
t4 = Teacher("04", "李白", "13301122004")
t5 = Teacher("05", "黄冠", "13301122005")
t6 = Teacher("06", "谢晋", "13301122006")

# 给课程设置老师
c1.shezhilaoshi(t1)
c2.shezhilaoshi(t2)
c3.shezhilaoshi(t3)
c4.shezhilaoshi(t4)
c5.shezhilaoshi(t5)
c6.shezhilaoshi(t6)

#         0   1   2   3   4  5 #  0-5
c_lst = [c1, c2, c3, c4, c5, c6]

stu_lst = []

for i in range(30): # 循环30次.
    stu = Student(i, "学生"+str(i)) # 创建30个学生

    # 生成随机的三个数字. 对应的是三个课程索引
    s = set()
    while len(s) < 3:
        s.add(randint(0, 5))

    # 把随机的三个课程索引对应的课程设置给学生
    for n in s:
        # print(n) # ???? 随机出来的课程的索引
        stu.tianjia(c_lst[n])

    stu_lst.append(stu) # 加到列表


# 显示学生的选课情况以及老师的电话
for s in stu_lst:
    print(f"学生编号:{s.sno}, 学生姓名:{s.sname}")

    # 拿到学生的课程信息
    for c in s.cour_list:
        print(f"\t课程编号:{c.cno}, 课程名称: {c.cname}, 任课老师的电话是:{c.teacher.tphone}")


'''
面向对象:
    1. 先写类. 属性,功能  -> 对需求了如指掌
    2. 对象就是一坨内存地址. 
'''

3

posted @ 2018-12-21 23:56  studybrother  阅读(514)  评论(0编辑  收藏  举报