Giter Club home page Giter Club logo

javaclassdesign_schooltimetable's Introduction

2021.9.22

关于包的命名

一开始在项目下建立了一个java包,用于封装,但是在运行的时候出错,应该是因为和标准库的包名冲突了,更改为main后就可以正常运行了

一些逻辑上的错误

  • 每门课的上课周数,除了"x,x,xx"和"x-xx周"这种形式,还有单双周之分,这很重要
  • 某些课程有理论课和实验课,但是放在了同一行,这样每门课还需要考虑更多的情况

2021.9.23

两种课表分析的逻辑对比

  1. 将一门课程抽象成类,存储例如时间、任课老师等信息
  2. 将课表中的1-1、1-2这样的每节小课抽象成一个对象

方法1更优,因为很多小节可能是空的,我们在可视化的时候,如果去遍历每周的课表, 会增加很多不必要的遍历开销,并且方法二无法存储课的学分等信息。

但是现在在考虑第三种方法的可行性,就是将小课和课程都抽象成类,课程类存储信息,可视化课表的 时候只遍历课程对象,再将课表小节课和课程类耦合

课程信息匹配方式变化

昨天遇到的同一小课在一个学期里可能会出现在不同的时间有两门不同的课,所以不能因为 一时的方便而直接用split方法分析字符串,也同样为了可维护性,决定采用正则表达式 来对课程信息进行解析

上课时间记录

夏季:下午的课程14:00开始,17:50结束;五一假期后开始,国庆假期后结束

冬季:下午的课程14:00开始,17:20结束;国庆假期后开始,国庆假期后结束

2021.10.4

HtmlParse、Lesson、Student三个类之间的大致逻辑

好好写注释真的很重要!上周写的那部分,今天拿到前5min已经看不懂逻辑了!

创建一个HtmlParse类时,向构造函数传入html文档的路径,在构造函数中便完成解析,把解析出的所有Lesson信息存储在成员变量中

HtmlParse类可通过getLessons()函数,返回一个ArrayList,包含html中的所有课程。接着可以用Student类的addLesson()函数,向一个Student类添加课程也就是说,在添加课程这一步中,不会直接调用Lesson类的任何一个函数或成员变量

只有在需要遍历一个Lesson的所有信息时,才需要调用Lesson的成员函数

javaclassdesign_schooltimetable's People

Contributors

arcolaus avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.