基于C语言和txt文件的增删改查
转载请注明出处
1、背景
本系统基于学生信息管理,完成了学生的信息的读取、增加、删除、修改、查询。本身意义可能不大,但是有很多学生再刚开始学习的时候,往往布置的大作业就是利用C语言实现简单的控制台管理系统,往往要求使用的结构是
- 在内存中用链表存储数据
- 从txt中读取信息,并可以删除写入
- 完成信息的展示、增加、删除、修改、查询
以上就是最简单的功能,其他的功能也就是逻辑复杂一些,但是最终都会归结在这些操作上,用txt操作的意义何在?如果真的要做系统的话,应该使用数据库的,但是往往做这个系统的学生还没有学习数据库,所以数据就用简单的txt存储就行了。
2、环境
VS2015 +win10 别的编译器也可以,可以会有略微不一样
3、目的
- 练习和熟悉基本的语法。
- 理解链表这种数据结构,查找、删除等操作,以及和数组的区别
- 简单的容错机制、健壮性
- 字符串处理以及指针的理解
- 如果是小组合作的话,还涉及到合作分工集成,集成对新手来说是个很头疼的问题
4、定义数据结构
/*定义一个学生类型*/
typedef struct student
{
char stuid[16];//学号
char name[16];//学生姓名
int num;//学生学号
struct student* next;//下一个学生的指针
}Stu;
Stu* students;//学生链表
char* stuInfo="test.txt";//学生信息存储的文件
int input = 0;//选择
char tempInput[64];
char tempName[64];
char tempStuid[64];
int tempNum = 0;
以上是我作为示例定义的简单数据结构,结构体中是学生的学号、姓名、学号、指向下一个结构体的指针。
students
是链表的头节点
stuInfo
存储的是学生信息txt
的路径,这里的txt
和工程或exe
放一个层级,当然可以自己改成自己的
temp...
都是用来接收一些数据用的变量
5、定义功能函数
void initFromTxt(void);//初始化读入信息
void deleteInfo(char* stuid);//删除一条信息
void reWrite(void);//将内存中的信息,写入txt
void insert2txt(Stu* stu);//插入一条信息进入文本
int addinfo(char* stuid, char* name, int num);//增加一条信息
void modify(char* stuid, char*name, int num);//修改一条信息
int checkAdd(char* stuid);//判断学号输入是否存在
void showInfo(void);//展示学生信息
Stu* findInfo(char* stuid);//查找学生信息
void view(void);//界面
int checkInput(char* input, int