由于快要进行课程设计,我对那本厚书看着也不是很懂,所以决定笨鸟先飞,这段时间暂时放一下算法,准备一下课设的前期工作,顺便复习一下期末考试。
多文件存储
- 多文件存储顾名思义就是讲数据放在多个文件中,方便维护,但是这必然就要跨文件检索,所以其中又引入了一个主键,来辨别各个数据文件的唯一身份,以依靠这个将数据建立起联系,下面以学生管理系统为例:
学生管理系统涉及三个文件,学生文件,课程文件,成绩文件,和主键文件,所谓主键文件就是存放主键的名字,比如我们要为student分配主键,就要检查主键文件中有没有student这个主键,如果有我们就要累加,没有就为其分配为1,(可能说不清楚,没关系,理解了这部分的代码就可以明白意思了)。
每个结构体是这样定义的:
typedef struct
{
long ID;
char num[10];
char name[30];
}student_t;
//课程结构体
typedef struct
{
long ID;
char name[30];
int credit;
}course_t;
//成绩结构体
typedef struct
{
long ID;
long stuID;
long courID;
int score;
}score_t;
//存储业务数据主键的结构体
typedef struct
{
char name[41];
long key;
}entity_key_t;
通过观察可以发现,成绩结构体中含有,学生ID和课程ID,而学生和课程两个结构体中页含有ID,这样学生就有他对应的唯一的课程和对应的成绩,这就是ID的作用。
github链接
TTMS链表机制
与普通链表车别不是很大,无非是由单链表到全部使用双向循环链表,还有一点就是提供的List,h很方便,其中以宏函数的形式写出了很多链表的基本操作API,使用起来非常方便,测试的样例和list,h也上传到了github远端仓库。
分页器
分页器看起来还是有点帅的,至于其实现原理,由于时间问题我也没有去深入研究,目前还只是停留在会应用的层面,先放几张图看一下什么是分页器
list.h中有相应的宏函数,有兴趣可以探究其作用机理。
git和github
之前学过git和github但是页不写项目,慢慢的也就忘了,由于这次课设是团队开发,所以我又温习了一下git的一些基本命令。