用c++编写的图书管理系统项目,已录入超过4.6 万条的图书信息和超过1.5万条的用户信息,有增删改查图书,增删改查用户,借还图书等功能。
源码地址:
https://gitee.com/aimaier4869/interlib-library-manager
运行时的截图(部分)
概况
用c++编写的图书管理系统项目,已录入超过4.6 万条的图书信息和超过1.5万条的用户信息,有增删改查图书,增删改查用户,借还图书等功能。
页面的组成: 每个页面由可点击的文本Link,仅用于显示的文本Text,输入框InputBox以及用标准输出流输出的文字组成,其中Link和InputBox为可点击元素。
整体逻辑: 程序开始执行后首先会渲染基本边框、标题等基本框架,然后切换到登录页面,并开始监听控制台内的点击事件,按照鼠标在控制台内点击的坐标和每个元素自身的坐标判断出被点击的元素,如果某个可点击的元素被点击时就通过调用其点击函数来处理不同的事。
页面是如何切换的? 全局作用域中提供了三个变量LinksArr,TextsArr,InputBoxsArr分别存放当前页面中所有Link,Text,InputBox类型,在每个页面文件中都会提供一个函数,在该函数内按照本页的内容new出相应的元素组成三个数组分别赋给三个全局变量,然后只要先清屏再渲染三个全局变量中的元素即达到了切换页面的效果。见下图:
功能介绍
可以用账号:admin,密码:123456进行登录
登录
- 渲染界面之前自动调整窗口大小,保证页面渲染完整
- 登录时验证用户名密码的非空性,再检查是否匹配
- 输入框被点击时让页面中的其他元素变暗,从而达到输入框聚焦效果
- 输入密码时密码以*的形式显示,保护用户隐私
- 密码只能由小写、大写字母和数字组合,其他符号无法输入
- 密码框失去焦点后再次获取焦点时可接着编辑上次的内容(普通输入框不能)
- 所有用户均可以通过自己的用户名和密码以管理员和普通用户两种模式登录,即用户没有身份区别
用户列表
- 管理员可以通过用户名精确查到用户信息
- 管理员可以添加新用户,添加时只需输入用户名即可,密码默认为123456
- 添加新用户时会先验证用户名的唯一性,如果要添加的用户已经存在则提示用户已存在无法添加
- 新用户会被插入到用户数据列表的最前面
- 用户列表以分页的形式展现,每页展示10条,可以通过点击页面中的下一页,上一页按钮进行换页
- 可以通过点击当前用户信息行末的操作按钮可以对用户进行删除,重置密码等操作
- 展示用户密码时,如果用户没改过密码则直接以明文显示,如果用户已经改过密码则会以*的形式显示,而达到保护用户隐私的目的(就算是管理员也不能看到用户的密码,只能重置)
图书列表
- 在图书管理页面中,可以通过图书名称精确查找到某一本书
- 可以通过作者查找到该作者的所有书籍
- 可以通过ISBN精确查找到某一本书,ISBN唯一且一旦录入后不可修改
- 可以通过分类号查找到该分类里的所有书籍,支持多级分类,例如:当分类号输入框获取焦点时,会在左边列出当前分类层级下的所有分类(参考中图分类法)搜索T会找到所有的工业技术类书籍搜索TP会找到所有工业技术 > 自动化技术、计算机技术类书籍搜索TP3会找到所有工业技术 > 自动化技术、计算机技术 > 计算机技术类书籍搜索TP31会找到所有工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件类书籍等等
- 以上四条内容可以进行联合搜索,例如你可以查找某个做个分类为XX的所有书
- 图书列表依然以分页的形式展现,每页展示10条,可以通过点击页面中的下一页,上一页按钮进行换页
新增修改图书
- 点击新增图书按钮后会跳转到新增图书页面,可以在该页面中输入图书信息后决定添加或取消
- 添加新书时,图书的四项基本信息都不能为空,ISBN不能重复
- 通过点击列表行末的操作按钮对图书进行删除,修改操作,点击修改时会跳转到修改图书页面
- 修改图书页面中会自动展示出该书的现有信息,ISBN不可修改,其他信息可修改
借阅图书
- 点击退出登录按钮后会跳转到登录页面
- 以普通用户模式登陆后会跳转到借阅图书页面,页面中的搜索功能与管理员图书管理页面一致
- 可以点击行末的借阅按钮借阅图书,如果已经借过这本书并且尚未归还时不能再次借阅该书
- 可以在借阅记录页面中通过ISBN精确查找到自己记录中的某一个本书
- 借阅后尚未归还的书籍会在状态处标记尚未归还,并会有归还操作按钮,已归还的书籍的状态处不显示内容,操作按钮也不会显示
借阅记录
- 可以点击归还按钮归还该书,归还后可以再次在借阅图书页面中借阅该书
- 借阅记录页面中,会通过ISBN自动将图书名称显示在列表中,如果图书名称被修改过了也会同步,如果图书被删除那么在图书名称处显示未找到,该图书可能已被删除!
修改密码
- 可以在帐户设置页面中修改自己的密码当前密码,新密码,重复新密码均不能为空新密码,重复新密码的内容必须一致新密码不能与旧密码相同输入的当前密码要正确
- 修改密码后会自动退出登录,然后就可以用新密码登录