一开始在项目下建立了一个java
包,用于封装,但是在运行的时候出错,应该是因为和标准库的包名冲突了,更改为main
后就可以正常运行了
- 每门课的上课周数,除了"x,x,xx"和"x-xx周"这种形式,还有单双周之分,这很重要
- 某些课程有理论课和实验课,但是放在了同一行,这样每门课还需要考虑更多的情况
- 将一门课程抽象成类,存储例如时间、任课老师等信息
- 将课表中的1-1、1-2这样的每节小课抽象成一个对象
方法1更优,因为很多小节可能是空的,我们在可视化的时候,如果去遍历每周的课表, 会增加很多不必要的遍历开销,并且方法二无法存储课的学分等信息。
但是现在在考虑第三种方法的可行性,就是将小课和课程都抽象成类,课程类存储信息,可视化课表的 时候只遍历课程对象,再将课表小节课和课程类耦合
昨天遇到的同一小课在一个学期里可能会出现在不同的时间有两门不同的课,所以不能因为
一时的方便而直接用split
方法分析字符串,也同样为了可维护性,决定采用正则表达式
来对课程信息进行解析
夏季:下午的课程14:00开始,17:50结束;五一假期后开始,国庆假期后结束
冬季:下午的课程14:00开始,17:20结束;国庆假期后开始,国庆假期后结束
好好写注释真的很重要!上周写的那部分,今天拿到前5min已经看不懂逻辑了!
创建一个HtmlParse类时,向构造函数传入html文档的路径,在构造函数中便完成解析,把解析出的所有Lesson信息存储在成员变量中
HtmlParse类可通过getLessons()函数,返回一个ArrayList,包含html中的所有课程。接着可以用Student类的addLesson()函数,向一个Student类添加课程也就是说,在添加课程这一步中,不会直接调用Lesson类的任何一个函数或成员变量
只有在需要遍历一个Lesson的所有信息时,才需要调用Lesson的成员函数