简易记录一下代码之后再完善

.pro文件

#-------------------------------------------------
#
# Project created by QtCreator 2023-02-01T09:38:10
#
#-------------------------------------------------QT       += core gui sqlgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = untitled15
TEMPLATE = app# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0RC_ICONS = th1.icoSOURCES += \main.cpp \widget.cpp \kaiguan.cpp \chufa.cpp \daoda.cpp \chupiao.cpp \chepiaoxinxi.cpp \chepiaoxinxijihe.cpp \showchepiao.cpp \form.cpp \messagew.cpp \formrengong.cppHEADERS += \widget.h \kaiguan.h \chufa.h \daoda.h \chupiao.h \chepiaoxinxi.h \chepiaoxinxijihe.h \showchepiao.h \form.h \messagew.h \formrengong.hFORMS += \widget.ui \form.ui \formrengong.uiRESOURCES += \tupian.qrc

Headers文件

1.chepiaoxinxi.h文件

#ifndef CHEPIAOXINXI_H
#define CHEPIAOXINXI_H
#include <QString>class ChePiaoXinXi
{
public:int id;//车票idQString start_name;//车票出发站名称QString end_name;//车票到达站名称int money;//车票价格int zhuangtai;//车票状态,0表示新购的车票,1表示已经进站,2表示已经出站ChePiaoXinXi();ChePiaoXinXi(int id1,QString start_name1,QString end_name1,int money1,int zhuangtai1);
};#endif // CHEPIAOXINXI_H

2.chepiaoxinxijihe.h

#ifndef CHEPIAOXINXIJIHE_H
#define CHEPIAOXINXIJIHE_H
#include <QList>
#include <QString>
#include "chepiaoxinxi.h"
class ChePiaoXinXiJiHe
{
public://<ChePiaoXinXi>泛型,这个集合里放这种类型的数据static QList<ChePiaoXinXi> chepiaoList;ChePiaoXinXiJiHe();static int addChePiaoXinXi(int id1,QString start_name1,QString end_name1,int money1,int zhuangtai1);
};#endif // CHEPIAOXINXIJIHE_H

3.chufa.h

#ifndef CHUFA_H
#define CHUFA_H#include <QWidget>
#include <QLabel>
#include <QPushButton>
#include "kaiguan.h"
class ChuFa : public QWidget
{Q_OBJECT
public:explicit ChuFa(QWidget *parent = nullptr);QLabel label;QPushButton button_ok;QPushButton button_can;void button_can_clicked();//button_can按钮的槽函数void button_ok_clicked();//button_ok按钮的槽函数signals:public slots:
};#endif // CHUFA_H

4.chupiao.h

#ifndef CHUPIAO_H
#define CHUPIAO_H#include <QWidget>
#include <QLabel>
#include <QPushButton>
#include "kaiguan.h"
#include "chepiaoxinxi.h"
#include "chepiaoxinxijihe.h"
#include <QString>
#include "showchepiao.h"
#include <QHash>
#include <QPair>
class ChuPiao : public QWidget
{Q_OBJECT
public:explicit ChuPiao(QWidget *parent = nullptr);QLabel label;QPushButton button_ok;QPushButton button_can;void button_can_clicked();//button_can按钮的槽函数void button_ok_clicked();//button_ok按钮的槽函数ShowChePiao showchepiao;static const QHash<QString,QPair<int,int>> mp;
signals:public slots:
};#endif // CHUPIAO_H

5.daoda.h

#ifndef DAODA_H
#define DAODA_H#include <QWidget>
#include <QLabel>
#include <QPushButton>
#include "kaiguan.h"
#include "chupiao.h"
class DaoDa : public QWidget
{Q_OBJECT
public:explicit DaoDa(QWidget *parent = nullptr);QLabel label;QPushButton button_ok;QPushButton button_can;void button_can_clicked();//button_can按钮的槽函数void button_ok_clicked();//button_ok按钮的槽函数ChuPiao chupiao;
signals:public slots:
};#endif // DAODA_H

6.form.h

#ifndef FORM_H
#define FORM_H#include <QWidget>
#include <QString>
#include "chepiaoxinxi.h"
#include "chepiaoxinxijihe.h"
#include "messagew.h"
namespace Ui {
class Form;
}class Form : public QWidget
{Q_OBJECTpublic:explicit Form(QWidget *parent = 0);~Form();int zhaojiOK(int id1,QString zhangming,QString jinchu);MessageW messsage;void chepiaojiemian(QString str);
private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_3_clicked();void on_pushButton_4_clicked();void on_pushButton_5_clicked();void on_pushButton_6_clicked();void on_pushButton_7_clicked();void on_pushButton_8_clicked();void on_pushButton_9_clicked();void on_pushButton_10_clicked();void on_pushButton_12_clicked();void on_pushButton_11_clicked();void on_pushButton_25_clicked();void on_pushButton_26_clicked();void on_pushButton_32_clicked();void on_pushButton_31_clicked();void on_pushButton_28_clicked();void on_pushButton_27_clicked();void on_pushButton_13_clicked();void on_pushButton_14_clicked();void on_pushButton_15_clicked();void on_pushButton_16_clicked();void on_pushButton_17_clicked();void on_pushButton_18_clicked();void on_pushButton_29_clicked();void on_pushButton_30_clicked();void on_pushButton_19_clicked();void on_pushButton_21_clicked();void on_pushButton_20_clicked();void on_pushButton_22_clicked();void on_pushButton_23_clicked();void on_pushButton_24_clicked();void on_pushButton_34_clicked();void on_pushButton_33_clicked();void on_pushButton_35_clicked();void on_pushButton_36_clicked();private:Ui::Form *ui;
};#endif // FORM_H

7.formrengong.h文件

#ifndef FORMRENGONG_H
#define FORMRENGONG_H#include <QWidget>
#include <QSqlTableModel> //数据模型
#include "chepiaoxinxi.h"
#include "chepiaoxinxijihe.h"
//QSqlTableModel数据模型里放数据,显示数据模型中的数据,QTableView
//QSqlTableModel->QTableView
namespace Ui {
class FormRenGong;
}class FormRenGong : public QWidget
{Q_OBJECTpublic:explicit FormRenGong(QWidget *parent = 0);~FormRenGong();private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_3_clicked();void UpdateChePiao();
private:Ui::FormRenGong *ui;QSqlTableModel *model;
};#endif // FORMRENGONG_H

8.kaiguan.h文件

#ifndef KAIGUAN_H
#define KAIGUAN_H
#include <QString>class KaiGuan
{
public:KaiGuan();static int cf;//记录出发状态,cf=0表示没有出发,cf=1表示已经出发static int dd;//记录到达状态,dd=0表示没有到达,dd=1表示已经到达static int start;//记录出发站的下标static int end;//记录到达站下标static QString names[18];static int new_id;//记录最新车票的id};#endif // KAIGUAN_H

9.messagew.h文件

#ifndef MESSAGEW_H
#define MESSAGEW_H#include <QWidget>
#include <QLabel>
class MessageW : public QWidget
{Q_OBJECT
public:explicit MessageW(QWidget *parent = nullptr);QLabel label;
signals:public slots:
};#endif // MESSAGEW_H

10.showchepiao.h文件

#ifndef SHOWCHEPIAO_H
#define SHOWCHEPIAO_H#include <QWidget>
#include <QLabel>
#include <QString>
class ShowChePiao : public QWidget
{Q_OBJECT
public:explicit ShowChePiao(QWidget *parent = nullptr);QLabel label;
signals:public slots:
};#endif // SHOWCHEPIAO_H

11.widget.h文件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
//导入出发窗口头文件
#include "chufa.h"
#include "kaiguan.h"
#include "daoda.h"
#include <QList>
#include <QPainterPath>
namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();ChuFa chufa;//定义出发窗口对象DaoDa daoda;//定义到达窗口对象
private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_3_clicked();void on_pushButton_4_clicked();void on_pushButton_5_clicked();void on_pushButton_13_clicked();void on_pushButton_15_clicked();void on_pushButton_7_clicked();void on_pushButton_6_clicked();void on_pushButton_8_clicked();void on_pushButton_16_clicked();void on_pushButton_9_clicked();void on_pushButton_14_clicked();void on_pushButton_17_clicked();void on_pushButton_10_clicked();void on_pushButton_18_clicked();void on_pushButton_11_clicked();private:Ui::Widget *ui;
};#endif // WIDGET_H

Sources文件

1.chepiaoxinxi.cpp

#include "chepiaoxinxi.h"ChePiaoXinXi::ChePiaoXinXi()
{}
ChePiaoXinXi::ChePiaoXinXi(int id1,QString start_name1,QString end_name1,int money1,int zhuangtai1){id=id1;start_name=start_name1;end_name=end_name1;money=money1;zhuangtai=zhuangtai1;
}

2.chepiaoxinxijihe.cpp

#include "chepiaoxinxijihe.h"ChePiaoXinXiJiHe::ChePiaoXinXiJiHe()
{}
QList<ChePiaoXinXi> ChePiaoXinXiJiHe::chepiaoList={};
int ChePiaoXinXiJiHe::addChePiaoXinXi(int id1,QString start_name1,QString end_name1,int money1,int zhuangtai1){//chepiaoList.count()统计集合中有多少对象//统计集合中有多少张车票if(chepiaoList.count()==0){id1=0;ChePiaoXinXi cp(id1,start_name1,end_name1,money1,zhuangtai1);chepiaoList.append(cp);return cp.id;}else {//先取到最后一张车票//取最后一张车票的idChePiaoXinXi cp=chepiaoList.last();//取最后一张车票的id//取最后一张车票的id+1就是新车票的idid1=cp.id+1;ChePiaoXinXi new_cp(id1,start_name1,end_name1,money1,zhuangtai1);chepiaoList.append(new_cp);return new_cp.id;}
}

3.chufa.cpp

#include "chufa.h"
#include <QFont>
ChuFa::ChuFa(QWidget *parent) : QWidget(parent)
{label.setParent(this);//设置标签的父窗口label.setText("您确定从此站出发?");//设置标签的文本QFont ft;//定义字体对象ft.setPointSize(20);//设置字体大小为20号label.setFont(ft);//设置标签的字体为ftlabel.move(80,80);//设置标签的位置label.resize(380,60);button_ok.setParent(this);//设置确定按钮父窗口button_ok.setText("确定");//设置确定按钮文本button_ok.move(80,200);//设置确定按钮位置button_can.setParent(this);button_can.setText("取消");button_can.move(280,200);connect(&button_can,&QPushButton::clicked,this,&ChuFa::button_can_clicked);connect(&button_ok,&QPushButton::clicked,this,&ChuFa::button_ok_clicked);}
void ChuFa::button_can_clicked(){KaiGuan::cf=0;KaiGuan::dd=0;this->close();}
void ChuFa::button_ok_clicked(){KaiGuan::cf=1;KaiGuan::dd=0;this->close();
}

4.chupiao.cpp

#include "chupiao.h"
//集合头文件  数组
#include <QList>
//数组  字节数组头文件
#include <QByteArray>
#include <QString>
#include <QDebug>
//时间头文件   小时  分  秒
#include<QTime>
//日期头文件  年  月  日
#include<QDate>
#include <QList>
//数据库头文件
#include <QSqlDatabase>
#include <QDebug>
//弹出消息框头文件
#include <QMessageBox>
//数据库错误处理头文件
#include <QSqlError>
#include <QString>
//数据库查询头文件
#include <QSqlQuery>
//数据参数绑定头文件
#include <QVariantList>
#include <QtMath>
const QHash<QString,QPair<int,int>> ChuPiao::mp={{"静安寺",{4,2}},{"南京西路",{4,4}},{"人民广场",{4,6}},{"南京东路",{4,8}},{"陆家嘴",{5,10}},{"东昌路",{6,12}},{"常熟路",{8,2}},{"陕西南路",{8,4}},{"新天地",{9,5}},{"老西门",{9,7}},{"大世界",{5,7}},{"黄陂南路",{6,5}},{"豫园",{6,8}},{"天潼路",{3,8}},{"国际客运中心",{2,10}},{"曲阜路",{2,6}},{"汉中路",{2,4}},{"长寿路",{2,2}},};ChuPiao::ChuPiao(QWidget *parent) : QWidget(parent)
{label.setParent(this);//设置标签的父窗口QFont ft;//定义字体对象ft.setPointSize(20);//设置字体大小为20号label.setFont(ft);//设置标签的字体为ftlabel.move(20,80);//设置标签的位置label.resize(500,60);button_ok.setParent(this);//设置确定按钮父窗口button_ok.setText("确定");//设置确定按钮文本button_ok.move(80,200);//设置确定按钮位置button_can.setParent(this);button_can.setText("取消");button_can.move(280,200);connect(&button_ok,&QPushButton::clicked,this,&ChuPiao::button_ok_clicked);connect(&button_can,&QPushButton::clicked,this,&ChuPiao::button_can_clicked);
}
void ChuPiao::button_ok_clicked(){int id1=0;QString start_name1=KaiGuan::names[KaiGuan::start];QString end_name1=KaiGuan::names[KaiGuan::end];//计算两点距离distint dist=abs(mp[start_name1].first-mp[end_name1].second)+abs(mp[start_name1].second-mp[end_name1].second);/*/*    每次费用计算规则:/*    起步价:首4公里人民币2元;/*    4公里至12公里部分,每人民币1元可乘坐4公里;/*    12公里至24公里部分,每人民币1元可乘坐6公里;/*    超过24公里,每人民币1元可乘坐8公里。*/int money1;if(dist<=4)money1=2;else if(dist<=12)money1=2+(dist-4)/4*1;else if(dist<=24)money1=4+(dist-12)/6*1;else money1=10+(dist-24)/8;int zhuangtai1=0;KaiGuan::new_id= ChePiaoXinXiJiHe::addChePiaoXinXi(id1,start_name1,end_name1,money1,zhuangtai1);ChePiaoXinXi cp=ChePiaoXinXiJiHe::chepiaoList.last();QString str=QString("车票id:%1  出发站:%2 -> 到达站:%3,费用为 %4 元").arg(cp.id).arg(cp.start_name).arg(cp.end_name).arg(cp.money);showchepiao.label.setText(str);showchepiao.setFixedSize(800,200);//QTime类  QTime::currentTime()获取当前时间QTime time=QTime::currentTime();//time.toString("hh:mm:ss")将时间以小时:分:秒的格式转化为字符串QString str1=time.toString("hh:mm:ss");qDebug()<<str1;//QDate 日期类  QDate::currentDate()获取当前系统日期QDate date=QDate::currentDate();//date.toString("yyyy-MM-dd") 将日期以 年-月-日的形式转化为字符串QString str2=date.toString("yyyy-MM-dd");qDebug()<<str2;//显示Qt现有的所有数据库驱动qDebug()<<QSqlDatabase::drivers();//创建数据库链接  db就是链接数据库的对象//QSqlDatabase::addDatabase("QMYSQL"); 添加数据库驱动//QMYSQL  mysql数据库驱动QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");db.setPort(3306);//设置数据库//192.168.1.100//设置数据库的主机ip  127.0.0.1是本机ipdb.setHostName("127.0.0.1");//数据库主机ip//设置数据库用户名  root是最高管理员用户db.setUserName("root");//数据库用户名//设置数据库密码  是你的mysql数据库的密码db.setPassword("123456");//数据库密码//设置链接到具体的哪个数据库上  ditiedatabase数据库名db.setDatabaseName("ditiedatabase");//数据库名字//打开数据库//db.open()打开数据库 返回值是true 或 false//ture 打开成功, false打开失败if(db.open()==false){//QMessageBox弹出窗口类//warning  警告窗口//warning(this,"waring",db.lastError().text())//this 这个警告的父对象,"waring"警告//db.lastError().text() 警告的文本//数据库最后一个错误信息QMessageBox::warning(this,"waring",db.lastError().text());}//是Qt执行sql语句的类//Qt里如何操作数据库,Qt通过sql语句操作数据库//Qt里准备了用于操作数据库Sql语句的类//QSqlQuery类定对象queryQSqlQuery query;//query.prepare是绑定sql语句//:id,:date,:name,:time 参数 将来赋值query.prepare("insert into chepiao (id,date,start_name,end_name,money,zhuangtai) values (:id,:date,:start_name,:end_name,:money,:zhuangtai)");//添加绑定数据//QVariantList  用来绑定参数数据// QVariantList idList; 生成对象QVariantList idList;//给idList赋值为111idList << ChePiaoXinXiJiHe::chepiaoList.last().id;//query中的sql语句里的:id的值是idList  也就是111   :id=111query.bindValue(":id",idList);// QVariantList dateList  生成对象QVariantList dateList;//给dateList赋值为str2  str2就是当前日期dateList << str2;//query中sql语句的:date赋值为dateList   也就是:date=str2query.bindValue(":date",dateList);QVariantList start_name;start_name << ChePiaoXinXiJiHe::chepiaoList.last().start_name;//:name="aaaa"query.bindValue(":start_name",start_name);QVariantList end_name;end_name << ChePiaoXinXiJiHe::chepiaoList.last().end_name;//:time=str1query.bindValue(":end_name",end_name);QVariantList money;money << ChePiaoXinXiJiHe::chepiaoList.last().money;//:time=str1query.bindValue(":money",money);QVariantList zhuangtai;zhuangtai << ChePiaoXinXiJiHe::chepiaoList.last().zhuangtai;//:time=str1query.bindValue(":zhuangtai",zhuangtai);//执行批处理//执行sql语句query.execBatch();showchepiao.show();this->close();
}
void ChuPiao::button_can_clicked(){KaiGuan::cf=0;KaiGuan::dd=0;this->close();
}

5.daoda.cpp

#include "daoda.h"
#include <QString>
DaoDa::DaoDa(QWidget *parent) : QWidget(parent)
{label.setParent(this);//设置标签的父窗口label.setText("您确定到达此站?");//设置标签的文本QFont ft;//定义字体对象ft.setPointSize(20);//设置字体大小为20号label.setFont(ft);//设置标签的字体为ftlabel.move(80,80);//设置标签的位置label.resize(380,60);button_ok.setParent(this);//设置确定按钮父窗口button_ok.setText("确定");//设置确定按钮文本button_ok.move(80,200);//设置确定按钮位置button_can.setParent(this);button_can.setText("取消");button_can.move(280,200);connect(&button_can,&QPushButton::clicked,this,&DaoDa::button_can_clicked);connect(&button_ok,&QPushButton::clicked,this,&DaoDa::button_ok_clicked);
}
void DaoDa::button_can_clicked(){KaiGuan::cf=0;KaiGuan::dd=0;this->close();
}
void DaoDa::button_ok_clicked(){KaiGuan::cf=0;KaiGuan::dd=1;QString str="确认出票,出发站:"+KaiGuan::names[KaiGuan::start]+"->到达站:"+KaiGuan::names[KaiGuan::end];chupiao.label.setText(str);chupiao.setFixedSize(700,300);chupiao.show();this->close();
}

6.form.cpp

#include "form.h"
#include "ui_form.h"
#include <QDebug>
#include <QList>
//数组  字节数组头文件
#include <QByteArray>
#include <QString>
#include <QDebug>
//时间头文件   小时  分  秒
#include<QTime>
//日期头文件  年  月  日
#include<QDate>
#include <QList>
//数据库头文件
#include <QSqlDatabase>
#include <QDebug>
//弹出消息框头文件
#include <QMessageBox>
//数据库错误处理头文件
#include <QSqlError>
#include <QString>
//数据库查询头文件
#include <QSqlQuery>
//数据参数绑定头文件
#include <QVariantList>
Form::Form(QWidget *parent) :QWidget(parent),ui(new Ui::Form)
{ui->setupUi(this);
}Form::~Form()
{delete ui;
}
int Form::zhaojiOK(int id1,QString zhangming,QString jinchu){int i=0;//循环变量for(i=0;i<ChePiaoXinXiJiHe::chepiaoList.count();i++){ChePiaoXinXi cp=ChePiaoXinXiJiHe::chepiaoList[i];if(cp.id==id1){if(jinchu=="进"){if(cp.start_name==zhangming && cp.zhuangtai==0){ChePiaoXinXiJiHe::chepiaoList[i].zhuangtai=1;return 1;}else{return 2;}}else{if(cp.end_name==zhangming && cp.zhuangtai==1){ChePiaoXinXiJiHe::chepiaoList[i].zhuangtai=2;return 1;}else {return 2;}}}}return 0;
}
void Form::chepiaojiemian(QString str){int id=ui->lineEdit->text().toInt();//QString str=ui->pushButton->text();//qDebug()<<str;//安立路,进//切割字符串QList<QString> list1=str.split(",");//qDebug()<<list1[0];//list1[0]  安立路//qDebug()<<list1[1];//list1[1] 进int f=zhaojiOK(id,list1[0],list1[1]);if(f==1){QString str="请"+list1[1]+"站";QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");//设置数据库//192.168.1.100//设置数据库的主机ip  127.0.0.1是本机ipdb.setHostName("127.0.0.1");//数据库主机ip//设置数据库用户名  root是最高管理员用户db.setUserName("root");//数据库用户名//设置数据库密码  是你的mysql数据库的密码db.setPassword("123456");//数据库密码//设置链接到具体的哪个数据库上  ditiedatabase数据库名db.setDatabaseName("ditiedatabase");//数据库名字//打开数据库//db.open()打开数据库 返回值是true 或 false//ture 打开成功, false打开失败if(db.open()==false){//QMessageBox弹出窗口类//warning  警告窗口//warning(this,"waring",db.lastError().text())//this 这个警告的父对象,"waring"警告//db.lastError().text() 警告的文本//数据库最后一个错误信息QMessageBox::warning(this,"waring",db.lastError().text());}if(list1[1]=="进"){QSqlQuery query;//query.prepare是绑定sql语句//:id,:date,:name,:time 参数 将来赋值query.prepare("update chepiao set zhuangtai=:zhuangtai where id=:id");//添加绑定数据//QVariantList  用来绑定参数数据// QVariantList idList; 生成对象QVariantList idList;//给idList赋值为111idList << id;//query中的sql语句里的:id的值是idList  也就是111   :id=111query.bindValue(":id",idList);// QVariantList dateList  生成对象QVariantList zhuangtai;zhuangtai << 1;query.bindValue(":zhuangtai",zhuangtai);//执行批处理//执行sql语句query.execBatch();}else{QSqlQuery query;//query.prepare是绑定sql语句//:id,:date,:name,:time 参数 将来赋值query.prepare("update chepiao set zhuangtai=:zhuangtai where id=:id");//添加绑定数据//QVariantList  用来绑定参数数据// QVariantList idList; 生成对象QVariantList idList;//给idList赋值为111idList << id;//query中的sql语句里的:id的值是idList  也就是111   :id=111query.bindValue(":id",idList);// QVariantList dateList  生成对象QVariantList zhuangtai;zhuangtai << 2;query.bindValue(":zhuangtai",zhuangtai);//执行批处理//执行sql语句query.execBatch();}messsage.label.setText(str);messsage.show();}else if(f==2){QString str="不能"+list1[1]+"站,"+"请到售票处处理";messsage.label.setText(str);messsage.show();}else{QString str="没有这张车票";messsage.label.setText(str);messsage.show();}
}
void Form::on_pushButton_clicked()
{QString str=ui->pushButton->text();chepiaojiemian(str);
}void Form::on_pushButton_2_clicked()
{QString str=ui->pushButton_2->text();chepiaojiemian(str);
}void Form::on_pushButton_4_clicked()
{QString str=ui->pushButton_4->text();chepiaojiemian(str);
}void Form::on_pushButton_6_clicked()
{QString str=ui->pushButton_6->text();chepiaojiemian(str);}void Form::on_pushButton_7_clicked()
{QString str=ui->pushButton_7->text();chepiaojiemian(str);
}void Form::on_pushButton_8_clicked()
{QString str=ui->pushButton_8->text();chepiaojiemian(str);
}void Form::on_pushButton_9_clicked()
{QString str=ui->pushButton_9->text();chepiaojiemian(str);
}void Form::on_pushButton_10_clicked()
{QString str=ui->pushButton_10->text();chepiaojiemian(str);
}void Form::on_pushButton_12_clicked()
{QString str=ui->pushButton_12->text();chepiaojiemian(str);
}void Form::on_pushButton_11_clicked()
{QString str=ui->pushButton_11->text();chepiaojiemian(str);
}void Form::on_pushButton_3_clicked()
{QString str=ui->pushButton_3->text();chepiaojiemian(str);
}void Form::on_pushButton_5_clicked()
{QString str=ui->pushButton_5->text();chepiaojiemian(str);
}void Form::on_pushButton_25_clicked()
{QString str=ui->pushButton_25->text();chepiaojiemian(str);
}void Form::on_pushButton_26_clicked()
{QString str=ui->pushButton_26->text();chepiaojiemian(str);
}void Form::on_pushButton_32_clicked()
{QString str=ui->pushButton_32->text();chepiaojiemian(str);
}void Form::on_pushButton_31_clicked()
{QString str=ui->pushButton_31->text();chepiaojiemian(str);
}void Form::on_pushButton_28_clicked()
{QString str=ui->pushButton_28->text();chepiaojiemian(str);
}void Form::on_pushButton_27_clicked()
{QString str=ui->pushButton_27->text();chepiaojiemian(str);
}void Form::on_pushButton_13_clicked()
{QString str=ui->pushButton_13->text();chepiaojiemian(str);
}void Form::on_pushButton_14_clicked()
{QString str=ui->pushButton_14->text();chepiaojiemian(str);
}void Form::on_pushButton_15_clicked()
{QString str=ui->pushButton_15->text();chepiaojiemian(str);
}void Form::on_pushButton_16_clicked()
{QString str=ui->pushButton_16->text();chepiaojiemian(str);
}void Form::on_pushButton_17_clicked()
{QString str=ui->pushButton_17->text();chepiaojiemian(str);
}void Form::on_pushButton_18_clicked()
{QString str=ui->pushButton_18->text();chepiaojiemian(str);
}void Form::on_pushButton_29_clicked()
{QString str=ui->pushButton_29->text();chepiaojiemian(str);
}void Form::on_pushButton_30_clicked()
{QString str=ui->pushButton_30->text();chepiaojiemian(str);
}void Form::on_pushButton_19_clicked()
{QString str=ui->pushButton_19->text();chepiaojiemian(str);
}void Form::on_pushButton_21_clicked()
{QString str=ui->pushButton_21->text();chepiaojiemian(str);
}void Form::on_pushButton_20_clicked()
{QString str=ui->pushButton_20->text();chepiaojiemian(str);
}void Form::on_pushButton_22_clicked()
{QString str=ui->pushButton_22->text();chepiaojiemian(str);
}void Form::on_pushButton_23_clicked()
{QString str=ui->pushButton_23->text();chepiaojiemian(str);
}void Form::on_pushButton_24_clicked()
{QString str=ui->pushButton_24->text();chepiaojiemian(str);
}void Form::on_pushButton_34_clicked()
{QString str=ui->pushButton_34->text();chepiaojiemian(str);
}void Form::on_pushButton_33_clicked()
{QString str=ui->pushButton_33->text();chepiaojiemian(str);
}void Form::on_pushButton_35_clicked()
{QString str=ui->pushButton_35->text();chepiaojiemian(str);
}void Form::on_pushButton_36_clicked()
{QString str=ui->pushButton_36->text();chepiaojiemian(str);
}

7.formrengong.cpp

#include "form.h"
#include "ui_form.h"
#include <QDebug>
#include <QList>
//数组  字节数组头文件
#include <QByteArray>
#include <QString>
#include <QDebug>
//时间头文件   小时  分  秒
#include<QTime>
//日期头文件  年  月  日
#include<QDate>
#include <QList>
//数据库头文件
#include <QSqlDatabase>
#include <QDebug>
//弹出消息框头文件
#include <QMessageBox>
//数据库错误处理头文件
#include <QSqlError>
#include <QString>
//数据库查询头文件
#include <QSqlQuery>
//数据参数绑定头文件
#include <QVariantList>
Form::Form(QWidget *parent) :QWidget(parent),ui(new Ui::Form)
{ui->setupUi(this);
}Form::~Form()
{delete ui;
}
int Form::zhaojiOK(int id1,QString zhangming,QString jinchu){int i=0;//循环变量for(i=0;i<ChePiaoXinXiJiHe::chepiaoList.count();i++){ChePiaoXinXi cp=ChePiaoXinXiJiHe::chepiaoList[i];if(cp.id==id1){if(jinchu=="进"){if(cp.start_name==zhangming && cp.zhuangtai==0){ChePiaoXinXiJiHe::chepiaoList[i].zhuangtai=1;return 1;}else{return 2;}}else{if(cp.end_name==zhangming && cp.zhuangtai==1){ChePiaoXinXiJiHe::chepiaoList[i].zhuangtai=2;return 1;}else {return 2;}}}}return 0;
}
void Form::chepiaojiemian(QString str){int id=ui->lineEdit->text().toInt();//QString str=ui->pushButton->text();//qDebug()<<str;//安立路,进//切割字符串QList<QString> list1=str.split(",");//qDebug()<<list1[0];//list1[0]  安立路//qDebug()<<list1[1];//list1[1] 进int f=zhaojiOK(id,list1[0],list1[1]);if(f==1){QString str="请"+list1[1]+"站";QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");//设置数据库//192.168.1.100//设置数据库的主机ip  127.0.0.1是本机ipdb.setHostName("127.0.0.1");//数据库主机ip//设置数据库用户名  root是最高管理员用户db.setUserName("root");//数据库用户名//设置数据库密码  是你的mysql数据库的密码db.setPassword("123456");//数据库密码//设置链接到具体的哪个数据库上  ditiedatabase数据库名db.setDatabaseName("ditiedatabase");//数据库名字//打开数据库//db.open()打开数据库 返回值是true 或 false//ture 打开成功, false打开失败if(db.open()==false){//QMessageBox弹出窗口类//warning  警告窗口//warning(this,"waring",db.lastError().text())//this 这个警告的父对象,"waring"警告//db.lastError().text() 警告的文本//数据库最后一个错误信息QMessageBox::warning(this,"waring",db.lastError().text());}if(list1[1]=="进"){QSqlQuery query;//query.prepare是绑定sql语句//:id,:date,:name,:time 参数 将来赋值query.prepare("update chepiao set zhuangtai=:zhuangtai where id=:id");//添加绑定数据//QVariantList  用来绑定参数数据// QVariantList idList; 生成对象QVariantList idList;//给idList赋值为111idList << id;//query中的sql语句里的:id的值是idList  也就是111   :id=111query.bindValue(":id",idList);// QVariantList dateList  生成对象QVariantList zhuangtai;zhuangtai << 1;query.bindValue(":zhuangtai",zhuangtai);//执行批处理//执行sql语句query.execBatch();}else{QSqlQuery query;//query.prepare是绑定sql语句//:id,:date,:name,:time 参数 将来赋值query.prepare("update chepiao set zhuangtai=:zhuangtai where id=:id");//添加绑定数据//QVariantList  用来绑定参数数据// QVariantList idList; 生成对象QVariantList idList;//给idList赋值为111idList << id;//query中的sql语句里的:id的值是idList  也就是111   :id=111query.bindValue(":id",idList);// QVariantList dateList  生成对象QVariantList zhuangtai;zhuangtai << 2;query.bindValue(":zhuangtai",zhuangtai);//执行批处理//执行sql语句query.execBatch();}messsage.label.setText(str);messsage.show();}else if(f==2){QString str="不能"+list1[1]+"站,"+"请到售票处处理";messsage.label.setText(str);messsage.show();}else{QString str="没有这张车票";messsage.label.setText(str);messsage.show();}
}
void Form::on_pushButton_clicked()
{QString str=ui->pushButton->text();chepiaojiemian(str);
}void Form::on_pushButton_2_clicked()
{QString str=ui->pushButton_2->text();chepiaojiemian(str);
}void Form::on_pushButton_4_clicked()
{QString str=ui->pushButton_4->text();chepiaojiemian(str);
}void Form::on_pushButton_6_clicked()
{QString str=ui->pushButton_6->text();chepiaojiemian(str);}void Form::on_pushButton_7_clicked()
{QString str=ui->pushButton_7->text();chepiaojiemian(str);
}void Form::on_pushButton_8_clicked()
{QString str=ui->pushButton_8->text();chepiaojiemian(str);
}void Form::on_pushButton_9_clicked()
{QString str=ui->pushButton_9->text();chepiaojiemian(str);
}void Form::on_pushButton_10_clicked()
{QString str=ui->pushButton_10->text();chepiaojiemian(str);
}void Form::on_pushButton_12_clicked()
{QString str=ui->pushButton_12->text();chepiaojiemian(str);
}void Form::on_pushButton_11_clicked()
{QString str=ui->pushButton_11->text();chepiaojiemian(str);
}void Form::on_pushButton_3_clicked()
{QString str=ui->pushButton_3->text();chepiaojiemian(str);
}void Form::on_pushButton_5_clicked()
{QString str=ui->pushButton_5->text();chepiaojiemian(str);
}void Form::on_pushButton_25_clicked()
{QString str=ui->pushButton_25->text();chepiaojiemian(str);
}void Form::on_pushButton_26_clicked()
{QString str=ui->pushButton_26->text();chepiaojiemian(str);
}void Form::on_pushButton_32_clicked()
{QString str=ui->pushButton_32->text();chepiaojiemian(str);
}void Form::on_pushButton_31_clicked()
{QString str=ui->pushButton_31->text();chepiaojiemian(str);
}void Form::on_pushButton_28_clicked()
{QString str=ui->pushButton_28->text();chepiaojiemian(str);
}void Form::on_pushButton_27_clicked()
{QString str=ui->pushButton_27->text();chepiaojiemian(str);
}void Form::on_pushButton_13_clicked()
{QString str=ui->pushButton_13->text();chepiaojiemian(str);
}void Form::on_pushButton_14_clicked()
{QString str=ui->pushButton_14->text();chepiaojiemian(str);
}void Form::on_pushButton_15_clicked()
{QString str=ui->pushButton_15->text();chepiaojiemian(str);
}void Form::on_pushButton_16_clicked()
{QString str=ui->pushButton_16->text();chepiaojiemian(str);
}void Form::on_pushButton_17_clicked()
{QString str=ui->pushButton_17->text();chepiaojiemian(str);
}void Form::on_pushButton_18_clicked()
{QString str=ui->pushButton_18->text();chepiaojiemian(str);
}void Form::on_pushButton_29_clicked()
{QString str=ui->pushButton_29->text();chepiaojiemian(str);
}void Form::on_pushButton_30_clicked()
{QString str=ui->pushButton_30->text();chepiaojiemian(str);
}void Form::on_pushButton_19_clicked()
{QString str=ui->pushButton_19->text();chepiaojiemian(str);
}void Form::on_pushButton_21_clicked()
{QString str=ui->pushButton_21->text();chepiaojiemian(str);
}void Form::on_pushButton_20_clicked()
{QString str=ui->pushButton_20->text();chepiaojiemian(str);
}void Form::on_pushButton_22_clicked()
{QString str=ui->pushButton_22->text();chepiaojiemian(str);
}void Form::on_pushButton_23_clicked()
{QString str=ui->pushButton_23->text();chepiaojiemian(str);
}void Form::on_pushButton_24_clicked()
{QString str=ui->pushButton_24->text();chepiaojiemian(str);
}void Form::on_pushButton_34_clicked()
{QString str=ui->pushButton_34->text();chepiaojiemian(str);
}void Form::on_pushButton_33_clicked()
{QString str=ui->pushButton_33->text();chepiaojiemian(str);
}void Form::on_pushButton_35_clicked()
{QString str=ui->pushButton_35->text();chepiaojiemian(str);
}void Form::on_pushButton_36_clicked()
{QString str=ui->pushButton_36->text();chepiaojiemian(str);
}

8.kaiguan.cpp

#include "kaiguan.h"KaiGuan::KaiGuan()
{}
int KaiGuan::cf=0;
int KaiGuan::dd=0;
int KaiGuan::start=0;
int KaiGuan::end=0;
QString KaiGuan::names[18]={"静安寺","南京西路","人民广场","南京东路","陆家嘴","东昌路","常熟路","陕西南路","新天地","老西门","大世界","黄陂南路","豫园","天潼路","国际客运中心","曲阜路","汉中路","长寿路"};
int KaiGuan::new_id=0;

9.main.cpp

#include "widget.h"
#include <QApplication>
#include "form.h"
#include "formrengong.h"
int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();Form w2;w2.show();FormRenGong w3;w3.show();return a.exec();
}

10.messagew.cpp

#include "messagew.h"
#include <QFont>
MessageW::MessageW(QWidget *parent) : QWidget(parent)
{label.setParent(this);label.resize(700,100);label.move(20,10);QFont ft;ft.setPointSize(20);label.setFont(ft);
}

11.showchepiao.cpp

#include "showchepiao.h"ShowChePiao::ShowChePiao(QWidget *parent) : QWidget(parent)
{label.setParent(this);label.resize(700,100);QFont ft;ft.setPointSize(20);label.setFont(ft);label.move(20,10);
}

12.widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QPainter>
#include <QDateTime>
Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);
}
Widget::~Widget()
{delete ui;
}
const int N=600;
void Widget::on_pushButton_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=0;chufa.label.setText("您确定从静安寺出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=0;daoda.label.setText("您确定到达静安寺?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_2_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=1;chufa.label.setText("您确定从南京西路出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=1;daoda.label.setText("您确定到达南京西路?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_3_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=2;chufa.label.setText("您确定从人民广场出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=2;daoda.label.setText("您确定到达人民广场?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_4_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=3;chufa.label.setText("您确定从南京东路出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=3;daoda.label.setText("您确定到达南京东路?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_5_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=4;chufa.label.setText("您确定从陆家嘴出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=4;daoda.label.setText("您确定到达陆家嘴?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_13_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=5;chufa.label.setText("您确定从东昌路出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=5;daoda.label.setText("您确定到达东昌路?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_15_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=17;chufa.label.setText("您确定从长寿路出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=17;daoda.label.setText("您确定到达长寿路?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_7_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=16;chufa.label.setText("您确定从汉中路出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=16;daoda.label.setText("您确定到达汉中路?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_6_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=15;chufa.label.setText("您确定从曲阜路出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=15;daoda.label.setText("您确定到达曲阜路?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_8_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=13;chufa.label.setText("您确定从天潼路出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=13;daoda.label.setText("您确定到达天潼路?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_16_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=14;chufa.label.setText("您确定从国际客运中心出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=14;daoda.label.setText("您确定到达国际客运中心?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_9_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=7;chufa.label.setText("您确定从陕西南路出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=7;daoda.label.setText("您确定到达陕西南路?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_14_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=9;chufa.label.setText("您确定从老西门出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=9;daoda.label.setText("您确定到达老西门?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_17_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=12;chufa.label.setText("您确定从豫园出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=12;daoda.label.setText("您确定到达豫园?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_10_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=11;chufa.label.setText("您确定从黄陂南路出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=11;daoda.label.setText("您确定到达黄陂南路?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_18_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=8;chufa.label.setText("您确定从新天地出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=8;daoda.label.setText("您确定到达新天地?");daoda.setFixedSize(N,300);daoda.show();}
}void Widget::on_pushButton_11_clicked()
{if(KaiGuan::cf==0){KaiGuan::start=10;chufa.label.setText("您确定从大世界出发?");chufa.setFixedSize(N,300);//设置出发窗口固定宽高chufa.show();}else{KaiGuan::end=10;daoda.label.setText("您确定到达大世界?");daoda.setFixedSize(N,300);daoda.show();}
}

基于物联网地铁自动售票检票智能系统相关推荐

  1. c语言自动售票课程设计报告,C语言课程设计-地铁自动售票图形模拟系统.doc

    word文档 可自由复制编辑 word文档 可自由复制编辑 C语言课程设计 需求分析与系统设计报告 (模拟地铁自动售票系统) (最终版本) 题目:地铁自动售票图形模拟系统 修订历史记录 日期 版本 说 ...

  2. 基于物联网的自动灌溉系统的设计与实现

    本设计是基于物联网的自动灌溉系统,主要实现以下功能: 1,OLED显示温湿度和土壤温湿度: 2,可通过继电器实现自动灌溉和自动加热的功能: 3,通过lora构建自组网,进行主从机间的数据传输,再通过W ...

  3. 地铁售票系统java代码_VHDL 地铁自动售票系统

    [实例简介] VHDL 地铁自动售票系统 等待状态 自检状态 详细注释 状态机编写 [实例截图] [核心代码] d74c0e52-4d27-45b1-8cb8-de3249072b91 └── sal ...

  4. 关于地铁自动售票系统的业务建模(1)

    在下用UML做了一个地铁自动售票系统的business use case diagram. 总的用例描述如下: 1.自动售票系统是为T城市开发的,所以该城市的所有年纪大于12的都有一张电子卡,他们可以 ...

  5. 模拟地铁自动售票系统C语言,基于PLC的地铁自动售票机控制系统设计.doc

    基于PLC的地铁自动售票机控制系统设计 基于PLC的地铁自动售票机控制系统设计 摘 要:随着社会经济的迅速发展,地铁列车也开始广泛出现于人们视野中.地铁列车具有形式速度快,价格低廉的优势,因此在各大城 ...

  6. C++面向对象程序设计:地铁自动售票系统

    题目描述: 地铁是当今城市较为流行的一种铁路运输的形式,地铁能避免城市地面拥挤,充分利用空间,具有运量大.准时.正点率较其他公交高.速度快等优点.请设计一个简易的.带菜单的地铁自动售票机系统. 功能需 ...

  7. c++设计地铁售票系统_用C++(用三个类)地铁自动售票系统,,我不会弄,有人弄过么...

    展开全部 //================================ // Router.h #include #include using namespace std; // 路线 cla ...

  8. 【NodeJs-5天学习】第三天实战篇② ——基于物联网的WiFi自动打卡考勤系统

    [NodeJs-5天学习]第三天实战篇② --基于物联网的WiFi自动打卡考勤系统 1. 前言 2.实现思路 2.1 NodeJs服务器代码 2.1.1 对接Express服务器 2.1.2 对接Ma ...

  9. 【物联网服务NodeJs-5天学习】第三天实战篇② ——基于物联网的WiFi自动打卡考勤系统

    [NodeJs-5天学习]第三天实战篇② --基于物联网的WiFi自动打卡考勤系统 1. 前言 2.实现思路 2.1 NodeJs服务器代码 2.1.1 对接Express服务器 2.1.2 对接Ma ...

最新文章

  1. Linux单网卡多个IP(或者多个网卡多个IP)设置
  2. zookeeper web ui--gt;node-zk-browser安装
  3. 1063 Set Similarity (25 分)【难度: 一般 / 知识点: STL中set的应用】
  4. css定位position
  5. CSS, JavaScript, jQuery实现标签页切换
  6. java编程应该要的英语_java编程中常用英语单词
  7. git init github
  8. php 车牌号,总结关于车牌注意点
  9. web前端设计--二级菜单栏
  10. ICMP Flood防范
  11. 数据立方体的基本计算
  12. 公司总经理KPI考核指标
  13. 数理方程——达朗贝尔公式
  14. ios第三方数据请求 UI_15
  15. 百度的工业互联网新解,“开物”加速工业智能化升级
  16. 佛用品须以恭敬心待之
  17. malloc函数未定义
  18. 中小企业网上手机订货下单软件|移讯云订货通订单管理系统后台功能模块
  19. 涉密资质是什么?有哪些好处
  20. 面试题-批量向MySQL导入1000万条数据有什么方法?

热门文章

  1. 小书匠绑定阿里云oss+阿里云oss图片url永久有效设置--菜鸟小回
  2. matlab2017b怎么进行sil测试,基于Matlab的模型自动测试方法与流程
  3. i312100f和i512400f哪个好 i312100f和i512400f差多少
  4. CRC校验的原理及实现方法
  5. pajek06-09:中心度
  6. qt 加载winPcap库
  7. 腾讯Angel Graph团队刷新GNN最强榜单OGB世界纪录!
  8. BZOJ 2999 inint【数DP优化】(Ender的模拟赛)
  9. 单片机无线遥控盆腔炎治疗仪
  10. html如何设置自动点击,按键精灵怎么设置自动点击