欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【Qt5】评标专家库随机选5人小软件

发布时间:2023/12/14 编程问答 74 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Qt5】评标专家库随机选5人小软件 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1. 软件截图

也适用于其它需要随机选取某个东西的地方,比如随机选择学生、抽奖之类的。

【Qt软件的发布参考此文:【Qt5】Qt小软件发布_qilei2010的博客-CSDN博客_qt5发布程序】

发布后exe文件及源代码下载地址:评标专家选取小软件.zip-电子政务文档类资源-CSDN下载

其中 myexe 文件夹可以复制到 任意PC上,双击其中的 SelectName.exe就能使用该软件,录入的人员姓名会保存到当前文件夹的 people.txt 中。

2. 设计与实现

开发环境:Windows 10, Qt 5.14.2。

编程实现:没有什么难度,就是 QList 内的元素随机有点难度,我参考此文的代码。

2.1 项目结构截图

2.2 主要代码

mainwindow.cpp

#include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->txtName = "people.txt";//创建保存人名的文件QFile file(this->txtName);if(!file.exists()){file.open(QIODevice::WriteOnly);file.close();} }MainWindow::~MainWindow() {delete ui; }//数组元素的乱序排列 QList<QString> MainWindow::LuanXu(QList<QString> list) {int length = list.size();for(int i=0;i<length;i++){QTime t = QTime::currentTime();qsrand(t.msec()+t.second()*1000);int r = i+qrand()%(length-i);QString temp=list[i];list[i]=list[r];list[r]=temp;}return list; }//点击 标签 void MainWindow::on_tabWidget_tabBarClicked(int index) {QFile file(this->txtName);//显示全部人员if(index == 1){file.open(QIODevice::ReadOnly | QIODevice::Text);QTextStream in(&file);ui->textBrowser->setText(in.readAll());file.close();} }//录入人员 保存按钮 void MainWindow::on_pushButton_2_clicked() {QString pname = ui->nameInput->text();QFile file(this->txtName);//读取people.txt,若无则创建if(!file.exists()){file.open(QIODevice::WriteOnly);file.close();}else{//文件存在file.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text);QTextStream stream(&file);stream<<pname<<"\n";file.close();QMessageBox::information(NULL, "提示", "保存成功");ui->nameInput->clear();this->on_tabWidget_tabBarClicked(1); //刷新全部人员显示} }//随机选取人员 void MainWindow::on_pushButton_clicked() {//读取文件QFile file(this->txtName);file.open(QIODevice::ReadOnly | QIODevice::Text);QList<QString> oraList;QTextStream in(&file);QString line = in.readLine();while (!line.isNull()){oraList.append(line);line = in.readLine();}file.close();if(oraList.size()<9){QMessageBox::information(NULL, "提示", "人员不足9名,请先录入人员");}else{//随机选取QList<QString> list = LuanXu(oraList);QString rstName = list[0]+" "+list[1]+" "+list[2]+" "+list[3]+" "+list[4];QString secName = list[5]+" "+list[6]+" "+list[7]+" "+list[8];ui->lineEdit->setText(rstName);ui->lineEdit_2->setText(secName);} }

mainwindows.h

#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QDebug> #include <QMessageBox> #include <QFile> #include <QList> #include <QTime>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);QList<QString> LuanXu(QList<QString> list);~MainWindow();private slots:void on_tabWidget_tabBarClicked(int index);void on_pushButton_2_clicked();void on_pushButton_clicked();private:Ui::MainWindow *ui;QString txtName; }; #endif // MAINWINDOW_H

总结

以上是生活随笔为你收集整理的【Qt5】评标专家库随机选5人小软件的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。