近阶段,拔高提升能力的题目总结
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