MyLibrary --Qt + sqlite 图书馆管理系统

本文介绍了使用Sqlite和Qt技术构建的电子图书馆管理系统,包括入库、查询、借书、还书等功能。系统分为用户和管理员两部分,具备基本的图书管理和用户操作,同时详细描述了数据库设计、界面设计以及QSS样式应用。提供了一个简易的图书管理解决方案。
摘要由CSDN通过智能技术生成

MyLibrary

介绍

基于Sqlite 和 Qt 技术实现电子图书馆的智慧综合管理

参考资料:

https://blog.csdn.net/lishichengyan/article/details/76760859

https://blog.csdn.net/a947877846/article/details/78751646

https://www.itread01.com/p/1394465.html

如果图片不能正常显示,可用另外一个网址:

https://www.yuque.com/docs/share/53c2d429-546a-40cd-8468-898fad8841fd?# 《Qt 图书馆管理系统》

一、实验目的

1、 设计并实现一个精简的图书管理系统,具有入库、查询、借书、还书、借书证管理等基本功能。

2、 通过本次设计来加深对数据库的了解和使用,同时提高自身的系统编程能力。

二、实验平台

开发工具 :Qt creator 4.14.2(Qt版本:5.15.2 64bits)

数据库平台:SQLITE

实验平台 :Windows10

三、系统架构描述

本系统主要包括以下模块/功能:

编号模块功能
1使用须知点击后弹出使用须知。
2注册用于用户注册,供用户输入用户名、密码、并确认密码。只有注册后方可借书。
3用户登录
4管理员登陆
5图书查询可在输入栏中输入书籍名称,点击"点我搜索"按钮查询这本书的信息
6借书用于用户借书
7还书用于用户还书。
8显示所有书籍进入管理员界面后方可使用,点击显示库存所有书籍。
9新书入库进入管理员界面后方可使用,可输入书籍信息,点击提交按钮完成新书入库
10数据排序进入管理员界面后方可使用,方便管理员掌握数据库情况。
11查看借阅情况进入管理员界面后方可使用,查看用户借阅情况。
12查看用户表进入管理员界面后方可使用,查看注册的用户信息。
13删除用户(收回权限)进入管理员界面后方可使用,删除用户。

其中(1)、(2)、(5)属于公用功能,也就是说,任何使用这款软件的人都可以查看使用须知、注册以及查询图书信息;(3)、(6)、(7)为用户设计,只有注册过的用户才能借书、还书。余下的模块/功能为管理员设计,是本系统中最复杂的部分。

需要说明的是,我没有设计管理员注册模块,因为在实际的应用情境中,显然不是随便一个人都能通过注册成为某个系统的管理员,所以,管理员权限由我这个"最高的管理员"直接在数据库中添加,从而防止了使用过程中可能出现的安全问题。

image

四、数据库设计

推荐使用 sqlite expert professional 管理工具,创建数据库和表结构

1.png

1) 数据库结构

字段名类型介绍备注
Book表
idtextISBN书号主键
nametext书名
authortext作者
pubtext出版社
pub_datetext出版日期yyyy-MM
availbool是否可借是1,否0
storeinteger库存
totalinteger总数
priceREAL价格
Loan表
user_idtext用户外键
book_idtext书籍外键
Loan_datetext借阅日期yyyy-MM-dd
Back_datetext应还日期yyyy-MM-dd
Manager表
idtext管理员主键
pwdtext密码
User表
idtext用户主键
pwdtext密码
emailtext邮箱
loaninteger借阅数
maxinteger可借阅数

2)添加测试数据

insert into `manager` values('manager01','123456');
insert into `user` values('1','1');
insert into `book` values
('01','C++程序设计','孟宪福','清华大学出版社','2010-12-12', 1,5, 10, 28.00),
('02','C++ Primer','Stanley B.Lippman','人民邮电出版社','2010-12-12', 1,5, 10, 28.00),
('03','浮士德','歌德','人民文学出版社','2010-12-12', 1,5, 10, 28.00),
('04','简明法语教程','孙辉','外研社','2010-12-12', 1,5, 10, 28.00),
('05','Linear Algebra','Gilbert Strang','高等教育出版社','2010-12-12', 1,5, 10, 28.00);

五、界面设计

1) 主界面 / 用户页面

image.png

2) 主界面 / 管理员页面

image.png

3)登录页面

image.png

4)注册页面

image.png

5)用户须知页面

image.png

页面不多,涉及的类也不多,但是分包管理,还是会更加方便

6)工程文件子文件管理

image.png

7)设置应用程序图标

RC_ICONS = library.ico

详见官档 《Setting the Application Icon》

六、添加QSS样式文件

1)loadQssFile 函数

inline void loadQssFile(QString fileName) {
  QFile file(fileName);
  file.open(QFile::ReadWrite |
            QIODevice::Text);  // 如果文件不存在,会创建该文件
  qApp->setStyleSheet(file.readAll());
  file.close();
}

2)watchQssFile 函数

inline void watchQssFile(QString fileName) {
  QFileSystemWatcher* watch = new QFileSystemWatcher(qApp);
  watch->addPath(fileName);
  QObject::connect(watch, &QFileSystemWatcher::fileChanged, [fileName] {
//    cout << "watchQssFile";
    loadQssFile(fileName);
  });
}

3) 快捷键打开

  Welcome w;
  QShortcut sc(QKeySequence("ctrl+q"), &w);
  QObject::connect(&sc, &QShortcut::activated, [fileName] {
    static int flag = 0;
    if (flag == 0) {
      QFileInfo info(fileName);
      QDesktopServices::openUrl(QUrl::fromLocalFile(info.absoluteFilePath()));
    }
  });

七、程序运行界面

1.gif

参考了一些大佬的资料,若有侵权,请告之。

附上仓库地址:https://gitee.com/shenjiguicang/my-library

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值