日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

做个课程表吧(一)

發布時間:2023/12/14 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 做个课程表吧(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

手機端的課程表種類繁多,但電腦端的課程表種類卻很少,也不支持自動導課。既然這樣就讓我們來造個課程表吧。

文章目錄

    • 獲取課程表
  • 制作課程表
    • 讀取JSON數據
    • 獲取課程
    • 格式化課程表
      • 創建窗體
      • 顯示課程
  • 全部代碼

獲取課程表

首先我們先去獲取課程表。登錄教務,點擊 學生課表查詢,進入課表界面,按F12,導航到 Network,按下 ctrl+ r刷新界面,界面更新后,下面出現了幾個文件,讓我們一個個查看。

接下來點擊 Preview,當我們找到第三個的時候我們可以發現里面包含了課程名、時間等,正好是我們需要的內容。

接下來我們用復制這個JSON

制作課程表

讀取JSON數據

接下來我們使用python來制作課程表

首先導入json包,然后導入剛才粘貼的數據,然后把它打印出來

# -*- coding:GBK -*- # 文件編碼 import jsonclass_js = '''[復制剛才的粘貼內容在這里]''' js = json.loads(class_js) # 轉化為json print(js)

輸出結果是這樣的:

是我們要的數據

獲取課程

我們可以看到課程數據保存在kbList這個值里,我們只用把這個值下面的數據全部取出來。

他的鍵值對是這樣的

鍵值
kcmc課程名
xm講師
zcd節數
jcor周數
xqjmc星期
cdmc地點

接下來我們把需要的數據輸出一下

for course in js["kbList"]:scr = "課程名:\n{}\n講師:{}\n節:{}\n周:{}".format(course["kcmc"], course["xm"], course["zcd"], course["jcor"])print(scr)

打印的結果是這樣的:

格式化課程表

這樣我們就完成了課程表的制作,但這是不完善的。

比如豎著一排看起來很麻煩,而且找課程也不方便,接下來我們來給課程表添加一個界面。

我們挑選tkinter來給完成這個界面。

創建窗體

首先我們要導入tkinter,并創建一個窗體

from tkinter import *top = Tk() # 創建一個窗體 top.geometry("1100x400+200+50") # 改變窗體的大小top.mainloop() # 進入消息循環

顯示效果為

顯示課程

我們根據星期幾來放置課程,星期一一列星期二一列。

首先我們要創建一個列表來記錄星期的數據,再創建一個字典來保存當前天有幾節課。

week = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] y = {}

接下來我們把為每個課程數據創建一個文本控件,并把文本放在里面。

for course in js["kbList"]:scr = "課程名:\n{}\n講師:{}\n節:{}\n周:{}".format(course["kcmc"], course["xm"], course["zcd"], course["jcor"])print(scr)# 確認文本的位置x = week.index(course["xqjmc"])if course["xqjmc"] in y:y[course["xqjmc"]] = y[course["xqjmc"]] + 1else:y[course["xqjmc"]] = 0text = Text(top, width=30, height=5) # 創建一個文本控件text.place(x=x * 215 + 10, y=y[course["xqjmc"]] * 70 + 20) # 在屏幕上放置文本控件text.insert(INSERT, scr) # 在控件上放置文本

通過x保存星期的天數,并格式化為0~7,用y保存一天有幾節課。

最后進入消息循環:

top.mainloop() # 進入消息循環

運行的結果是:

當然,這樣的結果并不能讓我們滿意。我們希望能夠根據當前所在的周數顯示課程。而且這個界面也太丑了,還不如直接下載課程來的方便。下面讓我們來改進課程表。


全部代碼

# -*- coding:GBK -*- # 文件編碼 import json from tkinter import *class_js = '''[數據]''' js = json.loads(class_js) # 轉化為jsonweek = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] y = {}top = Tk() # 創建一個窗體 top.geometry("1100x400+200+50") # 改變窗體的大小for course in js["kbList"]:scr = "課程名:\n{}\n講師:{}\n節:{}\n周:{}".format(course["kcmc"], course["xm"], course["zcd"], course["jcor"])print(scr)# 確認文本的位置x = week.index(course["xqjmc"])if course["xqjmc"] in y:y[course["xqjmc"]] = y[course["xqjmc"]] + 1else:y[course["xqjmc"]] = 0text = Text(top, width=30, height=5) # 創建一個文本控件text.place(x=x * 215 + 10, y=y[course["xqjmc"]] * 70 + 20) # 在屏幕上放置文本控件text.insert(INSERT, scr) # 在控件上放置文本top.mainloop() # 進入消息循環

總結

以上是生活随笔為你收集整理的做个课程表吧(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。