论从0开始写一个图书管理系统demo -0

it2022-05-05  126

又到了一年一度的毕业季,各种毕设又难倒了一片小老弟,写一两个demo练练手。

需求

随便拿了一个毕设题来弄,需求大概如下

用户分两类,一种是管理员,只有一个,一种是普通借阅者,需要注册,由管理员验证后才能登录系统,进行查询和借阅。管理员的功能:新书录入,浏览,查询,修改和删除,审核注册。借阅者的功能:查询状态并借阅,免费30天,超时要收费。查询功能可以用书名搜,可以用作者名搜借阅者注册需要信息:用户名,密码,确认密码,年龄,性别,联系方式书本信息:书号,书名,作者,出版社,出版时间,图书价格。

需求分析

数据结构主要有两个,一个是书本的,一个是用户的。 为了简单设计,每套数,只馆藏一本,每个用户固定只能借3本。我这边的图书馆,馆藏一般都有2到3本,B级卡能借3本,现在升级到了6本,这个季节都变身成学生自习室了。因为限定了3本,就要在用户结构中,放一个数组,用来存借到的书,而在图书结构中,放一个状态和时间,一旦被借出,状态就记录哪个用户借出的,并记录时间,这样还书的时候,就可以计算是否逾期,并计算需缴付的费用,暂定1毛钱一天。

系统设计

因为有要求用文件存放用户和书本信息,所以不用链表来做,直接文件操作就好了,为了简单设计,管理员密码单独一个文件,当进行管理员登录时,就从这个文件读取这个密码,如果这个文件不存在,就默认管理员空密码,避免缺少这个文件系统运行不了。注册用户放一个文件,因为书本要记录是哪个用户借出的,所以要添加一个用户ID,方便检索,所以文件头部需要一个记录下一个可分配的ID号,之后才是用户结构体块,每一个用户的地址是【文件头大小+用户ID号*块大小】.书本则不需要额外分一个ID,因为书本有唯一编号。

数据结构

//user typedef struct user { int userID; char userName[UNLEN]; char passWord[PWLEN]; int userAge; int userSexy; char userPhoneNum[12]; char userType; //区分管理员和普通用户 int userAttribute; //初始为0,管理员审核通过置1,不通过置-1 }USER; //bookinfo typedef struct book { char bookISBN[20]; char bookName[40]; char bookWirter[20]; char bookPublisher[10]; char bookPubTime[10]; int bookPrice; int bookAttribute; //馆藏未借出为0,借出时记录借阅者ID int time; //借出时间 }BOOKINFO;

辅助工具

一般做小demo和搞小项目的时候,除了编译器,我都会带上我的小伙伴:excel、xmind。 excel在做游戏的各种物品列表的时候,用字符串合并公式,很好的将一大张表迅速转成c的赋值格式,在文本中稍微调整一下,就可以用了,设置可以把注释也能加进去。 xmind能更直观的管理整个架构。

github


最新回复(0)