这是我开学第一周的课程表。
市面上大多数课程表软件需要手动录入每一节课的安排、时间,少数与学校数据库绑定,可以直接导入。
我从上个学期刚开始,为了节省手动录入课表的时间,开始着手开发了这个课程表程序。
你可以以传统的方式,逐一添加所需的课程。
并在编辑界面进行信息的修改。
然而,这个程序最大的亮点,就是可以将教务平台的选课信息,导入到Excel,直接转化为课程表。
此外,如果担心格式出错,程序可以自动导出模板Excel表,供用户参考。
接下来谈谈代码实现。
这个程序工作量较为庞大,粗略估计超过1600行代码(优化后)。
“课程”本身以类的形式来储存,“表”则是一个简单的线性表(数组)。
程序实现的难点是,如何将抽象的数据直观地制成表格,打印在屏幕上。过往我们学习的命令行程序,都是将输入输出局限在命令行中进行,但如果课程表采取这种方式,不仅效率较低,而且不够美观,此外还容易产生格式错误。
因此,本程序采用了.NET公共语言运行库(CLR)中的API,以“画图”的形式,将数据绘制成表格,并以“图片展示框”pictureBox控件显示在屏幕上。
每当窗体大小改变,Form1_Load事件会调用Render()方法,重新渲染图片。
以下是Render()的实现,这是这个程序的核心代码。
结语
本程序源代码已上传至GitHub,需要者可自取。若发现BUG或有建议和意见,欢迎加Q3063037423提出。
https://github.com/JeredYe/SchoolTimetable