版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智慧超市系统的设计-17-第4章软件系统设计4.1软件主流程图主程序首先对单片机进行初始化,使得相应的IO口以及中断寄存器置位,以满足接下来的操作。判断是否有人刷卡,有卡录入卡片信息。为超市的商品设置商品价格,然后用卡片里面的金额进行结算,最后显示剩余的余额;无卡的时候继续检测卡片。开始初始化开始初始化NN是否刷卡是否刷卡YY录入卡片录入卡片设置商品价格设置商品价格结算结算显示余额显示余额结束图4.1系统软件主流程图结束4.2RFID程序的设计射频卡驱动程序:射频卡驱动程序主要负责读取射频卡的信息并进行解析,以便系统能够对其进行处理。驱动程序需要根据射频卡类型和通信协议进行开发,通常采用C/C++等高级语言进行编写。在开发过程中,需要对射频卡读取速度、读取距离、信号强度等方面进行优化,以提高读卡效率和稳定性。射频卡数据处理程序:射频卡数据处理程序主要负责对读取到的射频卡信息进行处理,包括解析射频卡号码、进行验证和查询余额等操作。为了确保系统的安全性和可靠性,需要对数据处理程序进行加密和防篡改设计,避免恶意攻击和数据泄露。射频卡管理程序:射频卡管理程序主要负责管理射频卡的信息,包括新卡注册、卡片信息修改、卡片注销等操作。为了保障系统的稳定性和可靠性,需要对管理程序进行权限控制和异常处理设计,避免管理操作对系统造成不良影响。射频卡通信协议设计:射频卡通信协议设计是RFID系统开发的关键环节之一。通信协议需要满足射频卡与系统之间的数据交互需求,同时保证数据传输的速度和可靠性。在协议设计过程中,需要考虑射频卡的类型和特性,系统的硬件和软件设计,以及数据传输的安全性和稳定性等方面的因素。综上所述,智慧超市系统中RFID射频卡的软件设计需要涉及射频卡驱动程序、射频卡数据处理程序、射频卡管理程序以及射频卡通信协议设计等方面的内容。通过合理的软件设计,可以实现射频卡读取速度、稳定性和安全性等方面的优化,提高系统的性能和用户体验。4.3语音芯片程序的设计语音播报流程图如图4.2所示。开始初始化开始初始化语音播报语音播报YY播报是否结束播报是否结束N解码并填空列队N解码并填空列队结束图4.2语音播报流程图结束在基于STM32的智慧超市系统中,语音芯片的软件设计需要实现以下功能:控制语音芯片的初始化:设置语音芯片的参数和配置寄存器,包括音量、语速、音调等。播放语音:将预先录制好的语音文件存储在芯片中,并通过控制芯片的寄存器实现播放。在超市系统中,语音芯片可以用于播放欢迎语、购物提示、商品介绍等语音内容。停止语音:在需要结束语音播放时,可以控制芯片的寄存器停止播放语音。调整音量、语速、音调等参数:语音芯片可以支持通过控制寄存器来调整音量、语速、音调等参数,可以根据具体情况进行调整。在软件设计中,需要根据语音芯片的规格和控制方式,编写相应的驱动程序,实现以上功能,并与STM32的控制程序进行整合。同时,需要考虑语音播放过程中的时序控制、错误处理等方面的设计。4.4显示屏程序的设计显示屏程序流程图如图4.3所示。开始初始化开始初始化显示屏初始化显示屏初始化YY显示屏清屏显示屏清屏显示屏显示N显示屏显示N结束结束图4.3显示屏程序流程图显示屏驱动程序:液晶显示屏驱动程序是控制显示屏显示内容的关键程序。开发人员需要选择合适的驱动程序,并根据系统的硬件设计和显示屏特性进行相应的配置。驱动程序通常采用C/C++等高级语言进行编写。显示内容管理程序:显示内容管理程序主要负责管理显示屏上的各种信息,如车次、站名、价格等,以及一些提示信息,如等待提示、操作提示等。为了使用户能够更加直观地了解系统信息,显示内容管理程序需要进行界面设计,设置适当的字体、字号、颜色等参数。显示屏刷新程序:显示屏刷新程序是保证显示屏信息更新的关键程序。在设计刷新程序时,需要考虑到系统的稳定性和效率,同时避免出现重复刷新、卡顿等情况。刷新程序通常采用定时刷新的方式,以确保显示屏信息的及时更新。显示屏控制程序:显示屏控制程序主要负责控制显示屏的亮度、音量、开关等操作。在设计控制程序时,需要考虑到系统的稳定性和用户的使用体验,设置合适的操作界面和控制参数,以便用户能够方便地进行操作。综上所述,智慧超市系统中液晶显示屏的软件设计需要涉及显示屏驱动程序、显示内容管理程序、显示屏刷新程序以及显示屏控制程序等方面的内容。通过合理的软件设计,可以实现液晶显示屏信息的及时更新、稳定性和用户体验等方面的优化,提高系统的性能和用户满意度。4.5按键程序的设计在基于STM32的智慧超市系统中,按键模块可以用于实现商品选购、支付等操作。按键模块的软件设计需要实现以下功能:按键扫描:定时扫描按键状态,当检测到有按键按下时,触发相应的操作。操作响应:根据按键的不同,实现不同的功能操作,如商品选购、支付等。防抖动处理:由于按键开关机械结构的特性,按键在瞬间开合时会产生抖动信号,因此需要进行防抖动处理,以确保按键状态的稳定性。多按键处理:考虑到多个按键同时按下的情况,需要对多按键的状态进行处理,以避免按键冲突。操作提示:当按键操作触发后,需要通过语音提示或显示屏等方式提示用户操作的结果。按键模块的软件设计需要根据硬件设计的具体实现方式进行编写,并与其他模块进行协同工作。第5章系统测试5.1系统实物图本课题研究的内容为智慧超市系统的设计。该套系统主要由rfid模块、语音模块、单片机STM32、ZigBee通信模块、按键、OLED屏幕等硬件组成;采用STM32单片机技术将RFID模块采集到的参数通过ZigBee通信模块发送到上位机,采用电脑端作为上位机。系统实物图如图5.1所示。图5.1系统完整实物图5.2测试目的软件测试是为了发现系统中可能存在的缺陷,有的人认为在测试过程中发现的错误越少越好,但事实并不是这样的,只有在测试阶段发现更多的问题才有利于提高软件的完整性。软件测试是一个破坏性的过程,其目的是为了尽可能多地发现软件中的错误,而不是为了演示软件的正确功能。5.3功能测试本课题研究的内容为智慧超市系统的设计。该套系统主要由rfid模块、语音模块、单片机STM32、ZigBee通信模块、按键、OLED屏幕等硬件组成;采用STM32单片机技术将RFID模块采集到的参数通过ZigBee通信模块发送到上位机,采用电脑端作为上位机。系统大概分为两种模式一种是管理员模式,另一种是操作模式;管理员模式主要是在电脑端用于添加商品信息、用户卡片以及信息修改;在操作模式下,当用户消费刷卡显示卡号语音播报卡号在库中存在并完成结算功能,余额信息显示以及余额自动扣除。该智慧超市系统具有录入商品卡信息,为商品卡设置相应的金额的功能,以便用户刷卡,如图5.2所示;该智慧超市系统具有可以显示购买的商品个数信息的功能,以便用户使用时选择商品数量,如图5.3所示;该智慧超市系统具有对商品进行补货的功能,可以自动补充商品,保证用户能够购买商品,如图5.4所示。图5.2商品卡录入测试图5.3购买信息测试图5.4增加商品测试该智慧超市系统具有可以显示购买的商品后台信息的功能,以便用户使用时选择商品信息,如图5.5所示;图5.5购买商品后台信息测试
第6章总结与展望6.1总结基于STM32的智慧超市系统设计是一个综合性的项目,通过将STM32微控制器与各种传感器、显示模块和通信模块集成在一起,实现了智能化的超市管理和服务。在该系统中,我们成功地解决了多个关键问题。首先,通过选择适用的传感器模块,如温湿度传感器、气压传感器、一氧化碳传感器和液化气传感器,我们能够实时监测和控制超市环境的温度、湿度、气压和气体浓度,以确保顾客和员工的舒适与安全。其次,通过LCD液晶显示模块,我们能够在超市内展示实时的商品信息、促销活动和导购指引,提供更好的购物体验和信息传递。此外,通过串口通信模块,我们能够与外部设备、收银系统和后台服务器进行数据交换和通信,实现库存管理、销售统计和远程监控等功能,提高超市运营的效率和管理水平。通过整合这些模块和功能,基于STM32的智慧超市系统设计能够实现自动化的库存管理、智能化的购物体验和远程监控与管理,为超市提供了更高效、便捷、安全的运营环境。同时,通过合理的系统设计和功能扩展,我们可以进一步提升系统性能和用户体验,实现更多创新和智能化的应用。总体而言,基于STM32的智慧超市系统设计不仅解决了传统超市中的多个问题,还提供了更多增值服务和管理手段,将超市运营提升到一个新的水平。通过不断优化和改进,我们可以实现更智能、更智慧的超市系统,满足用户需求的同时,推动超市行业的发展。6.2展望基于STM32的智慧超市系统设计在现代零售行业中具有广阔的应用前景和发展空间。展望未来,我们可以预见以下几个方面的发展趋势:首先,随着物联网和大数据技术的不断发展,智慧超市系统将更加智能化和自动化。通过与其他智能设备和传感器的连接,系统可以实现更精准的数据采集和分析,从而为超市提供更精细化的管理和服务。其次,人工智能技术的应用将为智慧超市系统带来更多创新和智能化的功能。例如,利用图像识别和人脸识别技术,可以实现智能购物车、自助结账系统和个性化推荐服务,提升用户体验和购物效率。此外,智慧超市系统还有望与移动支付和电子钱包等新型支付方式进行无缝集成,提供更便捷、安全的支付体验。另外,基于云计算和云服务的智慧超市系统将成为趋势。通过将数据存储和处理迁移到云端,超市可以实现跨地域的数据共享和远程管理,降低成本并提高系统的可伸缩性和可靠性。最后,环境保护和可持续发展的要求也将对智慧超市系统的设计产生影响。在未来的发展中,更加注重节能、减少浪费和提升可持续性的技术和解决方案将得到广泛应用,使智慧超市系统更加环保和可持续。综上所述,基于STM32的智慧超市系统在未来有着广阔的发展前景。通过不断创新和技术进步,我们可以预见智慧超市系统将实现更智能、便捷和可持续的运营模式,为消费者提供更好的购物体验,为超市行业带来更大的变革和发展。
参考文献[1]张凤鸽,舒诗琦.基于人机工程的超市自助收银机改良设计[J].科学技术创新,2021,12(20):189-192.[2]吴梅,姚敦红.基于UML的无人超市售货系统设计[J].电脑知识与技术,2020.[3]赵妍.服务设计理念在无人售货超市购物车设计中的应用研究[D].青岛大学,2020.[4]朱天昊.基于Android分屏技术的RFID自助收银系统关键技术研究[D].西安电子科技大学,2020.[5]邓英佳,杨婧,赵雪梅,赵绘,刘本本.校园自助收银管理系统[J].电脑知识与技术,2020,16(17):67-68.[6]马培立,张乃欣,陈哲,吴杰,杨雪.全自动无人售货与自动贩卖系统[J].兵工自动化,2020,39(03):32-37.[7]刘佳旻.无人售货超市管理系统的分析与设计[J].电脑知识与技术,2018.[8]张威,田继宏,刘臣奇,崔保乐,徐梦坤.超市无人售货系统的设计与开发[J].计算机产品与流通,2020.[9]滕光松,杨保仁,古仕朝,龙飞宇,陈旭.一种智能超市购物车的设计[J].电子世界,2019.[10]顾兆旭,焦战,崔鹏.基于物联网的智能超市实训室建设方案初探[J].软件工程,2018,21(12):60-62.[11]支忠山.射频识别技术在现代智能超市中的应用研究[J].湖北第二师范学院学报,2018,35(08):40-42.[12]王项奎.基于物联网技术的校园智能超市管理系统设计[J].经贸实践,2018.[13]赵佳辉.无人售货机的研究[J].科技视界,2019.[14]王翔,沈为,曾丹.基于Vue.js的智能超市导航系统[J].工业控制计算机,2018,31(12):133-135.[15]崔阳.基于MQTT协议的扫码支付中间件设计与实现[J].现代计算机,2019.[16]Patents;AgencyReviewsPatentApplicationApprovalRequestfor"InteractiveConsumerSelf-ServiceShoppingSystem"[J].Politics&GovernmentWeek,2013.[17]YazanMohamad,MajdMakdessi,OmarRaad,IssamW.Damaj.SysMARTOutdoorServices:ASystemofConnectedandSmartSupermarkets.[J].CoRR,2019.[18]Allnewrapidchargepointsshouldoffercardpaymentby2020[J].M2Presswire,2019.[19]iAxeptOnlineContactlessbringsSCAcompliantcontactlesscardpaymentsforInternetshopping[J].M2Presswire,2020.[20]GuohuaHu,PascalFeldhaus,YuwuFeng,ShengjieWang,JuanZheng,HuiminDuan,JuanjuanGu.AccuracyImprovementofIndoorReal-TimeLocationTrackingAlgorithmforSmartSupermarketBasedonUltra-Wideband[J].InternationalJournalofPatternRecognitionandArtificialIntelligence,2019,33(12)):13-15.
附录A总原理图图A.1总原理图
附录B程序********************************************************************************************************/#include<QApplication>#include"QSerialPortTerminal.h"#include<QtCore/QTextCodec>#include<QtGui>intmain(intargc,char**argv){QApplicationapp(argc,argv);QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));QSerialPortTerminalwindow;window.setWindowTitle("智慧超市系统");window.show();returnapp.exec();}********************************************************************************************************/#include<QtGui>#include"QSerialPortTerminal.h"#include<QMessageBox>#include<QtSql/QSqlQuery>#include<QDebug>#include<QTextCodec>QStringdata1;QStringdata2;QStringdata3;QStringdata4;QStringdata5;unsignedinttimefz=0;intxlNum=0;QSerialPortTerminal::QSerialPortTerminal(QWidget*parent):QMainWindow(parent){setupUi(this);stackedWidget->setCurrentIndex(0);//m_pTimer=newQTimer(this);connect(m_pTimer,SIGNAL(timeout()),this,SLOT(handleTimeout()));serialPort=newManageSerialPort;connect(serialPort,SIGNAL(newDataReceived(constQByteArray&)),this,SLOT(slot_newDataReceived(constQByteArray&)));//window=======================comboBoxPortName->addItem("com1",QVariant::fromValue(QString("com1")));comboBoxPortName->addItem("com2",QVariant::fromValue(QString("com2")));comboBoxPortName->addItem("com3",QVariant::fromValue(QString("com3")));comboBoxPortName->addItem("com4",QVariant::fromValue(QString("com4")));comboBoxPortName->addItem("com5",QVariant::fromValue(QString("com5")));comboBoxPortName->addItem("com6",QVariant::fromValue(QString("com6")));comboBoxPortName->addItem("com7",QVariant::fromValue(QString("com7")));comboBoxPortName->addItem("com8",QVariant::fromValue(QString("com8")));comboBoxPortName->addItem("com9",QVariant::fromValue(QString("com9")));comboBoxPortName->addItem("com10",QVariant::fromValue(QString("com10")));comboBoxPortName->addItem("com11",QVariant::fromValue(QString("com11")));comboBoxPortName->addItem("com12",QVariant::fromValue(QString("com12")));comboBoxPortName->addItem("com13",QVariant::fromValue(QString("com13")));comboBoxPortName->setCurrentIndex(0);//COM1comboBoxBaudRate->addItem("110",QVariant::fromValue(BAUD110));comboBoxBaudRate->addItem("300",QVariant::fromValue(BAUD300));comboBoxBaudRate->addItem("600",QVariant::fromValue(BAUD600));comboBoxBaudRate->addItem("1200",QVariant::fromValue(BAUD1200));comboBoxBaudRate->addItem("2400",QVariant::fromValue(BAUD2400));comboBoxBaudRate->addItem("4800",QVariant::fromValue(BAUD4800));comboBoxBaudRate->addItem("9600",QVariant::fromValue(BAUD9600));comboBoxBaudRate->addItem("19200",QVariant::fromValue(BAUD19200));comboBoxBaudRate->addItem("38400",QVariant::fromValue(BAUD38400));comboBoxBaudRate->addItem("57600",QVariant::fromValue(BAUD57600));comboBoxBaudRate->addItem("115200",QVariant::fromValue(BAUD115200));comboBoxBaudRate->setCurrentIndex(6);//9600baudsconnect(pushButtonOpen,SIGNAL(clicked()),this,SLOT(slot_openPort()));connect(pushButtonClose,SIGNAL(clicked()),this,SLOT(slot_closePort()));qTableWidget->setColumnCount(6);//设置列数qTableWidget->setRowCount(50);//设置行数qTableWidget->setWindowTitle("QTableWidget");qTableWidget->setColumnWidth(0,200);//设置第四列高度qTableWidget->setColumnWidth(1,200);//qTableWidget->setColumnWidth(2,200);//qTableWidget->setColumnWidth(3,200);//qTableWidget->setColumnWidth(4,200);//qTableWidget->setColumnWidth(5,200);////qTableWidget->verticalScrollBar()->setBaseSize(QSize(20000,20000));//ui->qTableWidget->setRowHeight(0,80);//设置行高度qTableWidget->verticalHeader()->setDefaultSectionSize(50);//设置行距qTableWidget->horizontalHeader()->setStretchLastSection(true);//设置宽度布满全局qTableWidget->verticalHeader()->setStretchLastSection(true);//设置高度布满全局QStringListm_Header;m_Header<<QString("卡号")<<QString("名称")<<QString("种类")<<QString("单价")<<QString("库存")<<QString("时间");qTableWidget->setHorizontalHeaderLabels(m_Header);//添加横向表头qTableWidget->verticalHeader()->setVisible(true);//纵向表头可视化qTableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background-color:#00007f;color:white;}");qTableWidget->horizontalHeader()->setVisible(true);//横向表头可视化qTableWidget->horizontalHeader()->setHighlightSections(false);//ui->tableWidget->setShowGrid(false);//隐藏栅格qTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);//设置编辑方式:禁止编辑表格qTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);//设置表格选择方式:设置表格为整行选中//ui->qTableWidget->setSelectionBehavior(QAbstractItemView::SelectColumns);//设置表格选择方式:设置表格为整列选中//ui->qTableWidget->setSelectionMode(QAbstractItemVieQTableWidget/QTableView的表头不会因为鼠标点击选中而变色w::SingleSelection);//选择目标方式单选qTableWidget->setSelectionMode(QAbstractItemView::MultiSelection);//多选createDataBase();m_pTimer->start(1000);}QSerialPortTerminal::~QSerialPortTerminal(){deleteserialPort;serialPort=NULL;}voidQSerialPortTerminal::createDataBase(){data_table=data_db.createDateBases("jiangjiesql");if(!data_table.open()){QMessageBox::information(this,"警告","数据库打开失败,请重启软件!");return;}QSqlQueryquery(data_table);query.exec("createtablehuan(idintegerprimarykeyAUTOINCREMENT,carvarchar(40),name1varchar(40),zlvarchar(40),djvarchar(40),kcvarchar(40),timevarchar(40))");query.exec();QSqlQueryquery1(data_table);query1.exec("createtableren(idintegerprimarykeyAUTOINCREMENT,carvarchar(40),name1varchar(40),yevarchar(40))");query1.exec();QSqlQueryquery2(data_table);query2.exec("createtablekcq(_idintegerprimarykeyAUTOINCREMENT,xlvarchar(40),name1varchar(40),timevarchar(40))");query2.exec();}voidQSerialPortTerminal::updatetextEditReceive(){QTextCodec*codec=QTextCodec::codecForName("UTF-8");QTextStreamin(allDataReceived);in.setAutoDetectUnicode(false);in.setCodec(codec);QStringdecodedStr=in.readAll();//textEditReceive->setPlainText(decodedStr);}voidQSerialPortTerminal::handleTimeout(){datetime=QDateTime::currentDateTime();QStringtime=datetime.toString("yyyy-MM-ddhh:mm:ss");label_12->setText(time);}voidQSerialPortTerminal::slot_openPort(){//groupBoxSettings->setEnabled(false);pushButtonOpen->setEnabled(false);pushButtonClose->setEnabled(true);//pushButtonSend->setEnabled(true);if(serialPort->isOpen())serialPort->close();//SettingsparametersQVarianttemp1;temp1=comboBoxPortName->itemData(comboBoxPortName->currentIndex());serialPort->setPort(temp1.value<QString>());//Porttemp1=comboBoxBaudRate->itemData(comboBoxBaudRate->currentIndex());serialPort->setBaudRate(temp1.value<BaudRateType>());//BaudRate//temp=comboBoxDataBits->itemData(comboBoxDataBits->currentIndex());//serialPort->setDataBits(temp.value<DataBitsType>());//DataBitsserialPort->setDataBits(DATA_8);//temp=comboBoxParity->itemData(comboBoxParity->currentIndex());serialPort->setParity(PAR_NONE);//Parity//temp=comboBoxStopBits->itemData(comboBoxStopBits->currentIndex());serialPort->setStopBits(STOP_1);//StopBits//temp=comboBoxFlowControl->itemData(comboBoxFlowControl->currentIndex());serialPort->setFlowControl(FLOW_OFF);//FlowControlserialPort->setTimeout(0,10);serialPort->enableSending();serialPort->enableReceiving();serialPort->open();serialPort->receiveData();}voidQSerialPortTerminal::slot_closePort(){serialPort->close();//groupBoxSettings->setEnabled(true);pushButtonOpen->setEnabled(true);pushButtonClose->setEnabled(false);//pushButtonSend->setEnabled(false);}voidQSerialPortTerminal::slot_newDataReceived(constQByteArray&dataReceived){QStrings;constchar*b=dataReceived.data();intsize=0;intn;size=dataReceived.size();for(n=0;n<size;n++){if(b[n]=='w'){Pr_1=0;}elseif(b[n]=='z'){aa[Pr_1]=0;s=&aa[0];if(aa[0]=='1'){if(queryByIDA(s.mid(1,8))==1){label_20->setText(s.mid(1,8));queryByID(s.mid(1,8));QStringsend="w3z";QByteArraysend1=send.toLocal8Bit();serialPort->sendData(send1);}elseif(queryByUserIDA(s.mid(1,8))==1){label_23->setText(s.mid(1,8));queryByUserID(s.mid(1,8));QStringsend="w3z";QByteArraysend1=send.toLocal8Bit();serialPort->sendData(send1);}else{label_20->setText(s.mid(1,8));label_23->setText(s.mid(1,8));}}elseif(aa[0]=='2'){floatdj=lineEdit_7->text().toFloat();intnumkc=lineEdit_8->text().toInt();zj=zj+dj;label_29->setText(QString::number(zj));if(numkc>1){numkc--;lineEdit_8->setText(QString::number(numkc));QSqlQueryquery1(data_table);query1.exec("updatehuansetkc='"+lineEdit_8->text()+"'wherecar='"+label_20->text()+"'");textEdit->append("商品:"+lineEdit_6->text()+"数量:1单价:"+lineEdit_7->text()+"总价:"+QString::number(zj)+"/r/n");}else{QMessageBox::information(this,"警告","库存不足,请及时补充!");}}elseif(aa[0]=='3'){floatye=lineEdit_11->text().toFloat();if(ye>=zj){ye=ye-zj;intzjs=zj*10;intyes=ye*10;QByteArraysend1;send1[0]='w';send1[1]='1';send1[2]=zjs%1000/100+'0';send1[3]=zjs%100/10+'0';send1[4]='.';send1[5]=zjs%10+'0';send1[6]=yes%10000/1000+'0';send1[7]=yes%1000/100+'0';send1[8]=yes%100/10+'0';send1[9]='.';send1[10]=yes%10+'0';send1[11]='z';send1[12]=0;serialPort->sendData(send1);xlNum=0;zj=0;lineEdit_11->setText(QString::number(ye));label_29->setText(QString::number(zj));textEdit->setText("");QSqlQueryquery1(data_table);query1.exec("updaterensetye='"+lineEdit_11->text()+"'wherecar='"+label_23->text()+"'");}else{QMessageBox::information(this,"警告","余额不足,请充值!");}}}else{aa[Pr_1]=b[n];Pr_1++;}}}voidQSerialPortTerminal::on_pushButton_2_clicked(){stackedWidget->setCurrentIndex(0);}voidQSerialPortTerminal::on_pushButton_4_clicked(){if(lineEdit->text()=="admin"&&lineEdit_2->text()=="123"){stackedWidget->setCurrentIndex(0);}else{QMessageBox::information(this,"警告","账号或密码错误");}}voidQSerialPortTerminal::on_pushButton_5_clicked(){stackedWidget->setCurrentIndex(1);}voidQSerialPortTerminal::on_pushButton_3_clicked(){qTableWidget->clearContents();nummin=0;QSqlQueryquery1(data_table);query1.exec("select*fromhuanorderbykcasc");while(query1.next()){qTableWidget->setItem(nummin,0,newQTableWidgetItem(query1.value(1).toString()));//文件号qTableWidget->setItem(nummin,1,newQTableWidgetItem(query1.value(2).toString()));qTableWidget->setItem(nummin,2,newQTableWidgetItem(query1.value(3).toString()));qTableWidget->setItem(nummin,3,newQTableWidgetItem(query1.value(4).toString()));qTableWidget->setItem(nummin,4,newQTableWidgetItem(query1.value(5).toString()));nummin++;if(nummin>49){//ui->qTableWidget->setRowCount(nummin);introw=qTableWidget->rowCount();qTableWidget->insertRow(row);}}}voidQSerialPortTerminal::queryByID(QStringid){qTableWidget->clearContents();nummin=0;QSqlQueryquery1(data_table);query1.exec("select*fromhuanwherecar='"+id+"'");while(query1.next()){lineEdit_6->setText(query1.value(2).toString());lineEdit_9->setText(query1.value(3).toString());lineEdit_7->setText(query1.value(4).toString());lineEdit_8->setText(query1.value(5).toString());}}intQSerialPortTerminal::queryByIDA(QStringid){intresult=0;qTableWidget->clearContents();nummin=0;QSqlQueryquery1(data_table);query1.exec("select*fromhuanwherecar='"+id+"'");while(query1.next()){return1;}returnresult;}voidQSerialPortTerminal::queryByUserID(QStringid){ qTableWidget->clearContents();nummin=0;QSqlQueryquery1(data_table);query1.exec("select*fromrenwherecar='"+id+"'");while(query1.next()){lineEdit_10->setText(query1.value(2).toString());lineEdit_11->setText(query1.value(3).toString());}}intQSerialPortTerminal::queryByUserIDA(QStringid){intresult=0;qTableWidget->clearContents();nummin=0;QSqlQueryquery1(data_table);query1.exec("select*fromrenwherecar='"+id+"'");while(query1.next()){return1;}returnresult;}//QStringsend="w1"+lineEdit_3->text()+"z";//QByteArraysend1=send.toLocal8Bit();//serialPort->sendData(send1);voidQSerialPortTerminal::on_pushButton_7_clicked(){if(label_20->text()==""){QMessageBox::information(this,"通知","卡号为空,不可保存!");}else{if(queryByIDA(label_20->text())==1){QMessageBox::information(this,"通知","卡号已存在,不可保存!");}else{QSqlQueryquery3(data_table);query3.prepare("insertintohuan(car,name1,zl,dj,kc,time)values(?,?,?,?,?,?)");query3.addBindValue(label_20->text());query3.addBindValue(lineEdit_6->text());query3.addBindValue(lineEdit_9->text());query3.addBindValue(lineEdit_7->text());query3.addBindValue(lineEdit_8->text());query3.addBindValue(datetime.toString("yyyy/MM/ddHH:mm:ss"));query3.exec();QMessageBox::information(this,"通知","存储成功");QStringsend="w2z";QByteArraysend1=send.toLocal8Bit();serialPort->sendData(send1);}}}voidQSerialPortTerminal::on_pushButton_8_clicked(){QSqlQueryquery1(data_table);query1.exec("updatehuansetkc='"+lineEdit_8->text()+"'wherecar='"+label_20->text()+"'");QMessageBox::information(this,"通知","库存修改成功!");}voidQSerialPortTerminal::on_pushButton_9_clicked(){if(label_23->text()==""){QMessageBox::information(this,"通知","卡号为空,不可保存!");}else{if(queryByUserIDA(label_23->text())==1){QMessageBox::information(this,"通知","卡号已存在,不可保存!");}else{QSqlQueryquery3(data_table);query3.prepare("insertintoren(car,name1,ye)values(?,?,?)");query3.addBindValue(label_20->text());query3.addBindValue(lineEdit_10->text());query3.addBindValue(lineEdit_11->text());query3.exec();QMessageBox::information(this,"通知","存储成功");QStringsend="w2z";QByteArraysend1=send.toLocal8Bit();serialPort->sendData(send1);}}}voidQSerialPortTerminal::on_pushButton_10_clicked(){QSqlQueryquery1(data_table);query1.exec("updaterensetname1='"+lineEdit_10->text()+"'wherecar='"+label_23->text()+"'");QMessageBox::information(this,"通知","姓名修改成功!");}voidQSerialPortTerminal::on_pushButton_11_clicked(){QSqlQueryquery1(data_table);query1.exec("updaterensetye='"+lineEdit_11->text()+"'wherecar='"+label_23->text()+"'");QMessageBox::information(this,"通知","余额修改成功!");}voidQSerialPortTerminal::queryxl(){m_chart=newQChart();QSqlQueryquery1(data_table);query1.exec("selectdistinctname1fromkcq");while(query1.next()){nameXL.append(query1.value(0).toString());}m_chart=newQChart();QSqlQueryquery2(data_table);query2.exec("select*fromkcqwherename1='"+nameXL.at(0)+"'");while(query1.next()){nameXL.append(query1.value(1).toString());}}voidQSerialPortTerminal::on_pushButton_12_clicked(){QSqlQueryquery1(data_table);query1.exec("updatehuansetdj='"+lineEdit_7->text()+"'wherecar='"+label_20->text()+"'");QMessageBox::information(this,"通知","单价修改成功!");}********************************************************************************************************/#ifndefQSERIALPORTTERMINAL_H#de
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论