一、前言
2022年春节将至,在此祝看到此篇文章的各位大大财源滚滚,发得像肥虎,壮得也似虎!
终于学完了C语言的语法知识,同时也意味着我的好日子已经到头了,作为非科班的学生,之前仅仅接触了Python、Java之类的面向对象语言,未曾学过C,而作为刚品尝完C基础的一名学生,C语言的指针真的是令人感概万分,高风险高回报的操作内存,实属有点6。
我将用这门危险的语言继续在我电脑里反复调试,因为我还要深入学习数据结构,为跨考做准备,数据结构这门课程偏向锻炼的是程序员的思想,而且难度颇高。而在C语言“结课”的当天,这么美好的一天,不奖励自己一个由C编写的项目
说不过去吧?无意间看到了其他大大的学生管理系统
,这个项目难度一般,多样性广,还可以为学习《数据结构》做一个预习,更算是对前面学习C语言的总结吧。
这里没使用单链表
,而使用《数据结构》中最常用最简单的——顺序表
,至于原因——易上手、好水文🤣。
该博客文章是我一边开发项目一边写的,目前源码已经提交到了GiHub上,文章记录了我“编程年幼期”的开发思路、遭遇的bug、调试过程。
GitHub:https://github.com/ITchujian/StudentManagementSystem_2022_C
二、目录
- 【开发细节】用C语言基础写学生管理系统(一)
- 【开发细节】用C语言基础写学生管理系统(二)
- 【开发细节】用C语言基础写学生管理系统(三)
- 【开发细节】用C语言基础写学生管理系统(四)
- 【开发细节】用C语言基础写学生管理系统(五)
- 【开发细节】用C语言基础写学生管理系统(六)
- 【开发细节】用C语言基础写学生管理系统(七)
三、设计思路
-
核心
- 线性表操作
-
功能实现
- 学生信息浏览系统
- 查看所有学生信息
- 学号搜索引擎
- 列表排序引擎
- 名词查询引擎
- 学生统计系统
- 学生信息修改系统
- 添加学生
- 修改信息
- 删除学生
- 重置空表
- 学生数据存储
- 系统设置
- 学生信息浏览系统
-
文件读写
- 二进制数据流的读写
- 多级目录的创建
- 各个文件的初始化载入
四、开发规范
命名比较杂乱,主要是为了全部都尝试一遍,最后总结出自我感觉舒服点的命名方法,时过一年,重回这篇博文,感觉相差不大
- 核心文件中的函数名遵循大驼峰命名法,如GetElem(void *);
- 非核心文件中的函数名遵循小驼峰命名法,如homeMenu(void);
- 宏定义变量遵循下划线命名(大写),如LIST_INIT_SIZE;
- 非宏定义变量遵循下划线命名(小写),如browse_select;
- 文件头部注释
/*********************************************************************
* 转载请注明来源/Reprint please indicate the source
* @FileName 文件名.h
* @Description 中文/英文
* @History
* version author data introduction and operations
* 1.0 初见 2022-01-23 Create
* *** *** ****-**-** *******
*/
- 通用注释
/*********************************************************************
* @chujian(cn) 打印表内单行信息
* @chujian(en) Print a single row of information in the table
*/
- 极少情况下使用单行注释符
// 解决宏名引发的各种奇怪问题/Solve various strange problems caused by macro names
- 函数返回类型除了C内置的那些类型,必须定义:Status表示状态,Boolean表示布尔值。
五、开发环境
- 系统:Windows 11 Insider Preview 22538.1000 (rs_prerelease)
- IDE:Visual Studio 2022 社区版