Devil_W的意见有容该好好听取,这才是在教你如何做实用软件。
很多人拿学生XX系统练手,不过实用的没几个。
三层架构是前人几十年软件开发经验总结出来的到现在来说最有效的架构(不要和设计模式混淆,这是更高层面的结构抽象),一定要学学。
这里也谈点个人意见。
首先,作为系统,数据如果不能保存到永久介质上就没有实用价值。难道每次使用前都录入一遍数据?关于这一点,数据库是最恰当的选择,但不是唯一的选择。对于这种简单的数据结构也可以自己设计一种数据格式保存到文件。初学我倒是建议偿试一下这种方式,因为这一方式除了需要设计数据格式外,还需要自己设计数据访问接口。
第二,业务逻辑的设计。有容代码中的函数算是逻辑层。再说细点,它们其实就是数据访问接口(其中混入了用户输入输出这些属于表示层的东西,不是说不能这么做,只是这么做对于将来的维护扩展很不利)。作为系统来说,这点功能有些单薄。系统设计首先要考虑它是给谁用的。给老师?给学生?老师和学生?需不需要管理员?有容的代码看起来是只给自己用的呵呵。之后要分析这些人用它干什么。老师登录修改查看学生信息(再细分某个老师只能修改自己的学生自己这一科的信息),学生只能查看个人或者班级的信息,管理员负责系统维护数据备份等等。这两步还只是业务逻辑设计的准备工作,属于用例分析阶段,用于指导之后的业务建模。在这两步的基础上再近一步细分会话功能。如何区分是谁登录了系统?他可以使用哪些功能?如何向他开放他可以使用的功能并屏蔽他不权使用的功能?这一账户控制也就是Devil_W所说的安全机制。
第三,用户接口的设计。也就是界面部分。应该尽量与功能分离开。有容的代码这部分与功能混在了一起。这不利于系统需求变更时的维护工作。有容前段时间不是在学习视窗编程么。这段代码是控制台下的,如果想实现视窗界面是不是代码得全部重写?如果增加了管理功能呢?再改成分布式系统呢?
呵呵,两天没来话多了些。总之,既然是练手不妨尽力做的深一些,向实用靠近。