学生信息管理系统,本节来分析一下它的源码。
或本地下载:
各位读者可先将源码下载下来浏览一遍,自行尝试梳理程序脉络,做到心中有数。
持久化保存数据的前提是将数据写入磁盘中,本程序也不例外,我们会将学生信息最终都保存到文件中。当增加、删除、修改学生信息时,我们也应该对文件做出同样的操作(这就是此项目的重点):
本项目的代码较多,总共约 400 行,要分门别类、有规划地放到不同的源文件中,即所谓的模块化编程(也称为多文件编程)。
同 C 语言类似,C++ 模块化编程在 .cpp 文件(C 语言中是.c)中定义函数,在 .h 文件( C 语言也是.h)中声明函数和类。
本项目中需要将学生信息保存在文件中,其中要解决的最关键的问题是如何在文件的中间插入、删除、修改数据,以及怎样在文件中定位特定的学生信息。
由于文件中学生信息采用的是顺序存储,也就是将信息依次存储在文件中。这种存储方式有利于检索数据,但不利于数据的插入和删除和修改。
本项目中实现在文件中删除新学生信息的思路是:建立一个全新的空文件,将除此学生信息外的其他所有学生信息依次拷贝到新文件中,然后将此文件内容全部清空,最后再将新建立文件中的所有数据移至原文件中。
我们知道,C++ 将类、函数、宏等都统一纳入了 std 命名空间。同样,本项目中由我们自己编写代码实现的类、函数、宏等也应该放在我们自定义的命名空间中。
由于 C++ 命令空间的基础知识请大家阅读《C++命名空间》一节了解详情。
整个项目分为 5 文件,包括 2 个 .h 文件、2 个 .cpp 文件以及 main.cpp 文件: