这个就是一个分组神器,可以根据输入的总人数 ,以及想设定的每组人数,把这些人随机分成小组,很适合班级分组使用
头文件:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QDebug>
#include <QImage>
#include <QMessageBox>
#include <QPalette>//调色板
#include <QPixmap>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void on_btn_F_clicked();
void on_btn_C_clicked();
void on_btn_R_clicked();
private:
Ui::Widget *ui;
private:
int NumPeople;
int NumGroup;
private:
};
#endif // WIDGET_H
cpp:
#include "widget.h"
#include "ui_widget.h"
#include <typeinfo>
#include <QByteArray>
#include <QColorDialog>
#include <QPalette>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setFixedSize(this->width(),this->height());
QImage image(":\\image\\star.png");
setWindowTitle("分组神器");
QPixmap pix;
pix.load(":/image/5.jpg","jpg");
QPalette pal;
pal=this->palette();
pal.setBrush(QPalette::Background,QBrush(pix));
this->setPalette(pal);
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
setMouseTracking(true);
setFixedSize(this->width(),this->height());
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_btn_F_clicked()
{
if(ui->Person_Edit->text()==""||ui->Group_Edit->text()==""){
QMessageBox::StandardButton result=QMessageBox::critical(this, "注意","输入不能为空");
}
int flag=1;
QString str;
//记录第几组
int count=1;
NumPeople=ui->Person_Edit->text().toInt();
NumGroup=ui->Group_Edit->text().toInt();
int i,j;
char *name[]={
"南添松 ", "柳嘉豪 ", "史明坤 ", "凌丰骏 ",
"刘旖玏 ", "罗浩 ", "郑宇航 ", "刘世杰 ",
"李风序 ", "童文彦 ", "安康 ", "张奥伟 ",
"韩朝晖 ", "白少航 ", "王阳 ", "殷秀晨 ",
"刘夏颖 ", "方俊杰 ", "姚飞 ", "杨文婷 ",
"程露娜 ", "赵庆 ", "张展鹏 ", "刘旺海 ",
"张倩 ", "张奇 ", "赵源敏 ", "尹浩 ",
"惠晨卓 ", "李国栋 ", "李宇博 ", "张雅倩 ",
"杨坤 ", "冯晨露 ", "唐静博 ", "王一雄 ",
"苏乐 "
};
srand( (unsigned)time(NULL) ); //以系统时间来设置随机数种子的函数,与rand函数一起使用
int last = NumPeople-1;
for(j=0; j<NumPeople-1; j++)
{
int index = rand()%NumPeople;
char *tmp=name[last];
name[last]=name[index];
name[index]=tmp;
last--;
}
for( i=0; i<NumPeople; i++)
{
if(flag==1){
str.append("第1组:");
flag=0;
}
str.append(name[i]);
str.append("");
if( (i+1)%NumGroup==0 ){
count++;
qDebug()<<count;
str.append("\n\n");
str.append(QString("第%1组:").arg(count));
}
ui->textBrowser->setText(str);
}
}
void Widget::on_btn_C_clicked()
{
on_btn_F_clicked();
}
void Widget::on_btn_R_clicked()
{
if(ui->Person_Edit->text()==""||ui->Group_Edit->text()==""){
QMessageBox::StandardButton result=QMessageBox::critical(this, "注意","输入不能为空");
}
ui->textBrowser->clear();
ui->Person_Edit->clear();
ui->Group_Edit->clear();
}
主要就是这样的逻辑,核心就是把生成数组下标随机数,交换数组内容,很简单,适合入门看看