不仅仅是图书信息管理系统
基于双链表,采用面向对象编程方法制作的图书管理系统
❞
效果演示
root用户:账号:0,密码:0
普通用户:账号:1001,密码:666666
图书信息
没有完全演示,只是个大概,微信gif只能300帧以内
框架结构
数据层:双链表管理
核心层:用户管理、图书管理
用户管理:
用户分三种:readonly、write、root(可删除数据)
功能:Exit(退出), Add(添加), Show(显示), Change(修改), Delete(删除), Search(查找)
图书管理:
权限分级:暂未实现(可自行实现)
功能:EXIT(退出), ADD(添加), SHOW(显示), CHANGE(修改), DELETE(删除), SEARCH(查找)
ps:用这个双链表框架可以解决99.9%的各种信息管理系统(增删改查)问题,那%0.1就是给自己留的后路,毕竟没有什么问题可以100%解决
以后再跟我提xxx管理系统我就给你扔过去这对代码,自己去实现
核心部分:双链表的实现
双链表
typedefstruct deroy_node
{
void* data;
struct deroy_node* prev;
struct deroy_node* next;
}deroy_node_t;
typedefderoy_node_t* deroy_node_pt;
typedefstruct deroy_list
{
int limit_size;
deroy_node_pt head;
deroy_node_pt tail;
}deroy_list_t;
typedefderoy_list_t* deroy_list_pt;
为什么链表里面的data是void*呢,谭浩强的C语言不是这样教的啊
void类型是空类型,可以转成任意一种类型,你不知道你插入的数据的结构体是什么,或者说你要插入多种数据的结构体,确定的结构体已经不能够满足需求了,需要定义void*类型来指向你要添加进链表的结构体数据
我们需要实现一些函数来管理链表,注意o,前方高能,小白勿看
功能函数
/*初始化链表*/
deroy_list_pt deroy_list_create(void);
/*插入节点*/
int deroy_list_insert_before(deroy_list_t** list_head, int num, void* new_node_data);
/*删除节点*/
int deroy_list_delete(deroy_list_t** list_head, int num);
/*修改节点*/
int deroy_list_