用Qt做车辆停车计费系统的代码,不用数据库
时间: 2023-12-03 21:42:31 浏览: 77
以下一个简单的基于Qt的车辆停车计费系统代码示例,不需要使用数据库:
```cpp
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
#include <QtWidgets/QLabel>
#include <QtWidgets/QSpinBox>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QMessageBox>
class ParkingMeter : public QWidget
{
Q_OBJECT
public:
ParkingMeter(QWidget *parent = nullptr)
: QWidget(parent)
{
// 创建界面控件
QLabel *titleLabel = new QLabel(tr("车辆停车计费系统"));
QLabel *hoursLabel = new QLabel(tr("停车时长(小时):"));
hoursSpinBox = new QSpinBox;
hoursSpinBox->setRange(0, 24);
hoursSpinBox->setValue(0);
QPushButton *calculateButton = new QPushButton(tr("计费"));
QPushButton *clearButton = new QPushButton(tr("清除"));
// 创建布局
QHBoxLayout *topLayout = new QHBoxLayout;
topLayout->addWidget(titleLabel);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(topLayout);
mainLayout->addWidget(hoursLabel);
mainLayout->addWidget(hoursSpinBox);
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addWidget(calculateButton);
buttonLayout->addWidget(clearButton);
mainLayout->addLayout(buttonLayout);
// 设置窗口布局
setLayout(mainLayout);
// 连接槽函数
connect(calculateButton, &QPushButton::clicked, this, &ParkingMeter::calculate);
connect(clearButton, &QPushButton::clicked, this, &ParkingMeter::clear);
}
private slots:
void calculate()
{
int hours = hoursSpinBox->value();
double cost = 0;
if (hours <= 2) {
cost = 5;
} else {
cost = 5 + (hours - 2) * 1.5;
}
QMessageBox::information(this, tr("计费结果"), tr("停车时长:%1小时\n费用:%2元").arg(hours).arg(cost));
}
void clear()
{
hoursSpinBox->setValue(0);
}
private:
QSpinBox *hoursSpinBox;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
ParkingMeter parkingMeter;
parkingMeter.show();
return app.exec();
}
#include "main.moc"
```
该程序创建了一个简单的窗口,其中包含一个停车时长的SpinBox,一个计费按钮和一个清除按钮。当用户点击计费按钮时,程序将根据停车时长计算费用并显示计费结果。当用户点击清除按钮时,SpinBox中的值将被重置为0。
该程序并没有使用数据库来存储停车记录,而是仅仅计算停车费用。如果需要添加更高级的功能,如停车记录的保存和检索,则需要使用数据库。
阅读全文