當前位置:編程學習大全網 - 源碼下載 - 超級課程表在技術上是怎麽實現的

超級課程表在技術上是怎麽實現的

有壹批高校都是用的同壹個教務系統,比如 URP教務系統 ,對這些學校只需開發同壹套提取課程的接口,對於使用其他教務系統的學校,需要寫針對其提取的關鍵代碼。但是課程信息基本都壹致,可以抽象出來,屏蔽底層獲取的細節,存儲和展示部分通用。

1、數據是怎麽獲取的,跟高校合作然後就可以獲得數據了麽,然後獲得的數據是怎麽保存到系統的數據庫中呢?是導入還是輸入還是只是高校提供了壹個接口...

1. 高校壹般不會提供這種接口的,直接從網頁版的教務系統上獲取信息。Java 使用 JSoup 這個庫可以通過 JQuery 的風格獲取 HTML 上的結點信息,也就是教務系統的網站能獲取到什麽信息,客戶端就能獲取到什麽信息。

我估計超表是在服務器端進行的信息解析,以免把解析的關鍵代碼放在客戶端導致核心技術泄漏,也壓縮了客戶端安裝包體積和傳輸數據量。

不過能開發出這麽多學校的獲取接口,超表團隊的執行力還是挺強的。

2、課程表的設計:對這個還有困惑,如何更高效的從選課表中獲取到該學生選了什麽課,這些課是在星期幾第幾節課上的,然後存在壹些特殊情況,不是每門課都是2節課連著壹起上的有可能是3節課壹起上。前臺怎麽展示出來,數據庫又要怎麽設計查詢的性能才會更高效

2. 教務系統課程表都會有表格,HTML 的 Table 標簽,使用 Jsoup 可以提取去表格的每壹行每壹列的數據,每壹行應該就是壹個課程,讀取周次、節次信息,給課程相應字段賦值即可。

這是我做的壹個解析URP教務系統課表的代碼:scuol-android/NetHelper.java at master · mdluo/scuol-android · GitHub

關於在客戶端界面上連續課程的折疊和多周次課程重疊問題,我也盡量在模仿超表的那種按天的 ListView 的格式,設計了壹種模擬俄羅斯方塊玩法的方法,具體代碼:scuol-android/CourseActivity.java at master · mdluo/scuol-android · GitHub

  • 上一篇:超準公式源代碼
  • 下一篇:如果真要學電腦首先學什麽?
  • copyright 2024編程學習大全網