关于本篇博客内容,我大概分成了三个部分进行讲述:对于源代码的解读、二次重开发后程序的介绍和自己在做完对他人代码的解读和重开发后自己的一些感想。
一、源代码的解读
1.功能解读
先放出源代码的程序运行主界面:
从这张图片中,我们很容易的知道,该程序的主要功能有6条:1)增加学生信息2)显示学生信息3)删除学生信息4)学生信息查找5)修改学生信息6)系统安全退出
在进入各个功能中进行实际使用体验:
1)增加学生信息
从上图,我们可以看出程序主要对学生的学号、姓名、性别、年龄和系别进行录入。
2)显示学生信息
该功能主要将储存的学生信息全部显示。
3)删除学生信息
该功能主要对学生姓名进行查找后再将存储信息符合的进行删除,然后再将删除后存储的学生信息进行全部输出显示。
4)学生信息查找
此处功能的实现也是通过对学生姓名的查找。从上面截图可以看见,他显示的是请输入要修改的学生的姓名,这是我认为程序存在的缺陷之一,在后面的第三部分会详细讲诉。
5)修改学生信息
该功能主要是对上面进行的操作进行保存。
6)系统安全退出
该功能主要是对上面进行的操作进行保存,然后退出程序。实际退出时的保存只是文字显示,没有代码对文件进行保存。
2.对应功能所使用的方法
在使用完所有的功能之后,我们可以再次总结出该程序所有的功能:文件读写、界面转换、增加、删除、修改、查询、显示和退出。
上面的功能顺序是按程序运行的顺序进行排列的,所以我们按顺序介绍。
首先文件的读写:
用到文件读写功能主要是程序刚启动程序时文件的读入程序以及修改后信息写入文件。
刚启动程序时文件的读入程序:
修改后信息写入文件(对应源程序功能中的修改学生信息):
增加功能:
上方图片显示的是增加功能所使用的代码。
主要的增加功能在AddItem函数,End是所有学生信息的尾指针,所以新增的信息都会通过input函数增加到尾指针中,然后新建一个指针,新建指针变成尾指针。
删除功能:
修改功能:
查询功能:
上面删除和修改功能中的FindItem就对应着查找功能,但是程序中没有单独的查询功能。
显示功能:
退出功能:
借用界面显示的代码图,退出功能的实现主要是依靠while判断为假,从而退出循环,再退出系统。
总结一下该程序主要用的一些技术:类、switch与case、指针、文件的读写。
3.我认为存在的缺陷
1)增加学生信息没有进行限制,可能会输入相同学号的学生信息,如图:
而实际中是不能存在学号相同的情况的。并且性别也没有进行限制,可能会输入“男/女”之外的字符。
2)菜单页中的文字信息与实际功能存在差异,比如查询功能却变成了修改功能。
3)查询的方式是通过姓名进行查找,然而现实中会存在同名的情况,这将使修改信息存在不严谨性,可能出错。
4)程序的保存操作要单独进行,可能会造成操作的丢失
二、二次重开发后程序的介绍
该部分的内容是对第一部分中提出的缺陷,从而对程序进行的修改和升级。
1)增加输入学号在存储信息中已存在或输入的性别不为“男/女”,则报错,要求重新输入
2)修改菜单页面中的选项的对应代码,以实现对应功能
3)将查询的方式改成以学号进行查询,并且添加单独查询信息功能(查询方式通过学号、姓名和系别查询)
4)将程序的保存操作进行实时保存
三、感想
在经过了此次他人程序的二次开发后,我找到了几点在写代码时十分重要的点:
2.我认为写代码,不要只是一个人死扣,可以多问问别人一些建议,这样会使你的相同程序好上很多。
最后,希望你们在这篇博客中有收获,也可以对我修改过的源代码进行再次开发,同时也可以在下方留言和我进行交流。