前情回顾
- 自定义
preconf.h
头文件。作用:被核心头文件所包含,从而调用相关已定义的数据 - 定义
Boolean
、Status
两种返回值类型,本质上是int
类型 - 定义
SqList
、ElemType
了两个结构体,实则属于独立结构的Struct嵌套 - 定义并初始化
SysConfig
结构体
一、本次目标
根据学生管理系统的功能特性与线性表的ADT描述,确定并编写相关的基本操作,便于后续的文件调用。
GitHub:https://github.com/ITchujian/StudentManagementSystem_2022_C
注:为方便分享本次开发的经验,我将把分析过程以及代码书写过程,以文字、图片形式合计放于开发记录中,但是一些非常基础的行为动作我将不会讲解或者阐述。
当前位置:【1.2 C案例】请君与我用C语言写一个千行的学生管理系统
可跳转:
- 【1 C案例】请君与我用C语言写一个千行的学生管理系统
- 【1.1 C案例】请君与我用C语言写一个千行的学生管理系统
- 【1.3 C案例】请君与我用C语言写一个千行的学生管理系统
- 【1.4 C案例】请君与我用C语言写一个千行的学生管理系统
- 【1.5 C案例】请君与我用C语言写一个千行的学生管理系统
- 【1.6 C案例】请君与我用C语言写一个千行的学生管理系统
二、开发记录
步骤1
ADT——Abstract Data Type,意为抽象数据类型
,我的理解:
描述数据结构的数学模型,以及该模型所能做出的操作
请注意,我们所使用的是线性表的顺序存储结构,而非链式结构,这一点已经在1.1文章的代码中有所体现。
因此,对于学生管理系统的线性表ADT如下:
- 数据对象:D={学生1,学生2,……,学生n},n>=0
- 数据关系:R={相邻学生之间存在先后关系}
- 基本操作表:
序号 | 函数名 | 操作结果 |
---|---|---|
1 | InitList | 初始化,构造空的线性表 |
2 | DestroyList | 销毁线性表 |
3 | ClearList | 清空线性表 |
4 | ListEmpty | 判断空的线性表 |
5 | ListLength | 返回线性表长度 |
6 | GetElem | 获取线性表的数据元素 |
7 | LocateElem | 返回满足一定条件的数据元素的位序 |
8 | SearchElem | 通过数据项搜索线性表 |
9 | ListInsert | 向线性表插入元素 |
10 | ListDelete | 向线性表删除元素 |
11 | ListTraverse | 遍历线性表的数据元素,执行同类型操作 |
12 | SwapElem | 交换两个数据元素的位置 |
13 | ListSort | 排序整个线性表 |
以上表格中,绝大部分的操作我们都将可能用到,拭目以待吧。
步骤2
创建kernel_list.h
(代表这是一个与表相关的核心文件,后续的其他文件都需要调用该头文件中的操作)
此时VS2022已经给我们的头文件顶行加上了如下代码:
#pragma once
看来微软官方的IDE也比较推荐我们使用这种