与网站云相关的词语今日头条武汉最新消息
书店售书管理系统之增删查改
使用工具:qt vs2019 odbc sqlserver
实现功能:
(1)书目录入:将购进的书目按要求的指标将其录入数据库中。
(2)查询功能:实现按书籍的编号、名称等指标进行售书情况的查询。
(3)修改功能:当书目的某个或者某些指标录入错误时,能对其进行修改。
(4)删除功能:当某些书目销售错误时,应能删除错误记录,同时调整库存。
(5)显示图书信息。
(6)对用户购书、退书情况进行管理。
(7)刷新
整体布局:
将所有按键改成容易辨别的名称。(自己能分清就行)
一、添加功能
在实现添加图书的时候,我采用新的ui界面录入书的信息的形式实现的。
界面设计如下;
对于主设计界面的 添加图书 按钮的代码如下:
connect(ui.Add, &QPushButton::clicked, this, [=]() {ADDBOOK* ad = new ADDBOOK;ad->show(); });
添加功能的具体实现代码如下:
在ADDBOOK.cpp中:
#include "ADDBOOK.h"
#include<qsqlquery.h>//包含查询语言
#include <QDebug>
#include<QtSql/qsqlerror.h>//输出错误语言
#pragma execution_character_set("utf-8")
ADDBOOK::ADDBOOK(QWidget *parent): QWidget(parent)
{ui.setupUi(this);this->setWindowTitle("添加图书");//加背景图QPixmap Images("C:/Users/lenovo/Pictures/20200329175335_erzim.jpg");QPalette Palette = this->palette();Palette.setBrush(QPalette::Window, Images);this->setPalette(Palette);//OK按钮connect(ui.OK, &QPushButton::clicked, this, [=]() { QString number = ui.Num->text(); QString bname = ui.bookna->text();QString writer = ui.writer->text();QString bc = ui.bbc->text();QString type = ui.type->text();QString price = ui.price->text();QString hbs = ui.hbs->text();QString stock = ui.stock->text();if (number.isEmpty() || bname.isEmpty() || writer.isEmpty() || bc.isEmpty() || type.isEmpty() || price.isEmpty() || hbs.isEmpty() || stock.isEmpty()) {QMessageBox::information(this, "添加", "信息不完善,请重新录入");return;}QSqlQuery query;QString qs = QString("insert into binfor(number,bname,writer,bc,type,price,hbs,stock)values('%1','%2', '%3', '%4', '%5', '%6', '%7', '%8')").arg(number).arg(bname).arg(writer).arg(bc).arg(type).arg(price).arg(hbs).arg(stock);if (query.exec(qs)) {//如果插入成功QMessageBox::information(this, "确定", "添加成功");}else {QMessageBox::information(this, "确定", "添加失败");qDebug() << query.lastError().text();//输出错误信息return;}});connect(ui.cancel, &QPushButton::clicked, this, [=]() {this->hide();});}ADDBOOK::~ADDBOOK()
{}
二、查询功能
实现了精确查询和模糊查询两种
如果确定的想要找哪本书,可以直接搜书名找到该书;输入作者,可以找到这个作者的所有书;当用户想要某种类型的书时,可以搜索类型找到该类型的所有书籍;又或者只记得书名的大概,也可以通过模糊查询找到相关的书籍。
代码如下:
//精确查询connect(ui.query, &QPushButton::clicked, this, [=]() {QString bname = ui.lineEdit->text();QString writer = ui.lineEdit->text();QString type = ui.lineEdit->text();model->setFilter(QString("bname = '%1' or writer = '%1' or type = '%1'").arg(bname).arg(writer).arg(type));model->select();ui.information->setModel(model);});//对书名模糊查询connect(ui.queryhu, &QPushButton::clicked, this, [=]() {QString bname = ui.lineEdit->text();if (bname.length() != 0) {model->setFilter(QString("bname like '%%1%'")