图书馆管理系统用户端心得体会

1.需求分析
听的好像是要做项目一样,但是无论写什么程序,写什么系统,都是要知道自己要干什么,要完成什么工作,实现那些功能,在这前列出一个表格,或是思维导图,给自己一个方向,先规划好再写,不然会拉下很多东西,在我写这个系统之前,我在图书馆的借书页面,看了将近两个小时,中途又看了好多次,这次代码不能说是一个完美可以当作工程性的使用,其中还有很多测试环节,还有部分功能没有实现,比如二次检索,三次检索功能,数据少得可怜。在作业布置下来的时候我已经有了大概的想法,但是有许多小细节的地方还是没有做好,比如说在常成员的处理和计算借书日期上就出现了疏忽,在第一次代码写完后老师发了一个比较好的作业,我通过两份作业的比较可以看出来我的错误在哪里,我可以在进行一些什么方面上的改进,所以我用了一晚上的时间去重写了一份。

2.写代码+调试代码
写代码的时候一定要写一个功能调试一个功能,所谓的一个功能不是一个类,而是一个类的一个函数,如果一个函数会影响到其他函数的运行,不调好之前的函数,现在的函数也没法运行,当代码随着项目的增大,代码长度几何增长是,再找错误就很难的了,所以顺着调试下去,以便你写完的代码是可以运行的,是正确的,而具体能否实现功能在另说。尤其是当我写完第一份代码的时候,再看到老师上课时再次强调的要求后,我决定重写,而不是改,因为我认为这时候改还不如重写一遍,一是可以加深一遍了解,二是可以再细化一下功能上有所帮助。

在第二次的写代码的过程中,有些不懂得问题或者没有考虑到的方面,再去对照一下模板,就能豁然开朗然后去解决问题,比如说在写时间类的时候,写到后边发现,自己重载的+错了,而且还需要计算两个时间类相差的时间,回头从新写的重载+运算符,而且也没有考虑到二月份是28天还是29天这种情况。在第二次的代码调试中就格外重视了一下,写了一个闰年的判断函数,然后通过函数的运行结果来决定二月的天数。

还有再常成员的处理上也遇到了一些麻烦,虽说不是第一次处理常成员了,但是在文件读入的时候还是遇到了麻烦,总是显示的是输入错误,最后发现是因为重载运算符的时候落掉了数据成员。。。很傻的错误,但是就是发现不了。。。

在第一次写代码的时候我就写了多种数据查询的方法,比如通过名字,学号等等去查询,但是最棘手的还是在处理伪查询上(例如查询一本书的时候,只输入关键字就可以查询出结果),到现在还没有想出办法处理,只能简单的进行类似于查人时,通过查姓,来查出姓名的方式查询。

数据类与操作类的分离,面向对象要的是封装性,操作抽象+数据抽象,继承,写代码写完能够复用最好,乱糟糟的写完不能复用的类扔在那里,以后再也不会用到,浪费时间,完全可以写一些代码条理清晰,更重要的是,下次相似的代码不用再继续写,这应该是应该具备的素养。或者也可以采用最近学习的算法设计里面的方式,通过各种模式来设计,但是不符合老师的要求,也就没有使用,但是想了一下如果通过设计模式来写的话,应该是比一个数据类一个操作类来的更加简便明了,数据的耦合性也会更低,继承或者修改添加相关功能的时候也会更加的方便。

你可能感兴趣的:(C++)