1. 程式人生 > >近階段,拔高提升能力的題目總結

近階段,拔高提升能力的題目總結

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