学生管理系统

一、设计界面

1、主界面

2、添加学生界面

3、查询界面

二、addstudent.h文件

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

三、chaxun.h文件

#ifndef CHAXUN_H
#define CHAXUN_H
#include <QFile>
#include <QTextStream>
#include <QIODevice>
#include <QDialog>
#include <QList>
#include <QString>
#include <QStandardItem>
#include <QStandardItemModel>
namespace Ui {
class chaxun;
}

class chaxun : public QDialog
{
    Q_OBJECT

public:
    explicit chaxun(QWidget *parent = 0);
    ~chaxun();
    int readFromFile();
    void doQuert(int index,QString cnt);
    void disPlay(int row,QStringList subs);
    void cahxunInit(void);
private slots:
    void on_byn_search_clicked();

private:
    Ui::chaxun *ui;
    QList<QString> stu_lines;
    QStandardItemModel *model;


};

#endif // CHAXUN_H

四、mainwindow.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "addstudent.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();



private slots:
    void actionaddStu();
    void actionChaxun();


private:
    Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

五、addstudent.c文件

#include "addstudent.h"
#include "ui_addstudent.h"
#include <QString>
#include <QDebug>
#include <QMessageBox>
#include <QPushButton>
#include <QCheckBox>
#include <QFile>
#include <QTextStream>
#include <QIODevice>
#include <QList>
#include <QAbstractButton>
#include <QCheckBox>

addstudent::addstudent(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::addstudent)
{
    ui->setupUi(this);
    connect(this->ui->btn_cancel,SIGNAL(clicked(bool)),this,SLOT(close()));
}

addstudent::~addstudent()
{
    delete ui;
}

void addstudent::on_btn_ok_clicked()
{
    QString name = this->ui->le_name->text();
    QString id   = this->ui->le_id->text();
    QString age  = this->ui->cbb_age->currentText();
    QString dev  = this->ui->cbb_yx->currentText();



    QButtonGroup getModeSelect;
    getModeSelect.addButton(ui->rbtm_male,1);//将radioMode加进组
    getModeSelect.addButton(ui->rbtn_famale,2);
    QString content;
    QString cnt;



    QList<QAbstractButton *> ins_list = this->ui->insGroup_2->buttons();
    QString ins;
    int i =0 ;
    for(i =0;i<ins_list.length();i++)
    {
        QAbstractButton *che = ins_list.at(i);
        if(che->isChecked())
        {
            ins += che->text() + ",";
        }
    }




    if(getModeSelect.checkedId() == 1)
    {
        content = name + '\n' + id+ '\n'+ "male"+'\n'+ age + '\n' + dev +'\n' + ins;
        cnt = name + ' ' + id+ ' '+ "male"+' '+ age + ' ' + dev +' ' + ins+ '\n';
    }
    else
    {
        content = name + '\n' + id+ '\n'+ "female"+'\n'+ age + '\n' + dev +'\n' + ins;
        cnt =     name + ' '  + id+ ' ' + "female"+' ' + age + ' '  + dev +' '  + ins+ '\n';
    }


     writeToFile(cnt);
    if(name.length()<1||id.length()<1)
    {
        QMessageBox::critical(this,"error ","Information error ","ok","cancel");
    }
    else
    {
        int ret = QMessageBox::critical(this,"Please confirm information.",content,"ok","cancel");
        if(ret == 0)
        {

            clearUserInterface();

        }
    }
}


void addstudent::clearUserInterface()
{
    this->ui->le_name->clear();
    this->ui->le_id->clear();
    this->ui->rbtm_male->setChecked(true);

    this->ui->cbb_age->setCurrentIndex(0);
    this->ui->cbb_yx->setCurrentIndex(0);
    this->ui->rbtm_male->setChecked(true);
    this->ui->le_name->setFocus();


}



void addstudent::writeToFile(QString cnt)
{

    QFile file("stu.txt");
    if(!file.open(QIODevice::Append|QIODevice::Text))
    {
        QMessageBox::critical(this,"error","Failed to open file","ok","cancel");
        return;
    }
    QTextStream out(&file);
    out << cnt;
    file.close();
}






void addstudent::on_le_name_cursorPositionChanged(int arg1, int arg2)
{

}

void addstudent::on_le_name_editingFinished()
{

}

void addstudent::on_le_name_returnPressed()
{

}

void addstudent::on_le_name_textChanged(const QString &arg1)
{

}

void addstudent::on_le_name_objectNameChanged(const QString &objectName)
{

}

六、chaxun.cpp文件

#include "chaxun.h"
#include "ui_chaxun.h"
#include <QFile>
#include <QTextStream>
#include <QIODevice>
#include <QMessageBox>
#include <QDebug>
#include <QStringList>
#include <QStandardItem>
#include <QStandardItemModel>
chaxun::chaxun(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::chaxun)
{
    ui->setupUi(this);
    if(readFromFile() == -1)
    {
        QMessageBox::critical(this,"cuowu ","file open fail","ok","cancel");
        this->close();
    }
     this->model = new QStandardItemModel;
    this->ui->tableView->setModel(model);
    cahxunInit();


}
chaxun::~chaxun()
{
    delete ui;
}


int chaxun::readFromFile()
{
    QFile file("stu.txt");
    if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
    {
        return -1;
    }
       QTextStream in(&file);
       while(!in.atEnd())
       {
           QString line = in.readLine() ;
           stu_lines.append(line);
       }
    file.close();

    //int i;
    //for(i = 0;i<stu_lines.length();i++)
    //{
    //  qDebug()<<stu_lines.at(i);
    //}

}

void chaxun::on_byn_search_clicked()
{
    this->model->clear();
    cahxunInit();

    int index = this->ui->cbb_method->currentIndex();
    QString cnt = this->ui->le_cnt->text();
    doQuert(index,cnt);

}



void chaxun::doQuert(int index,QString cnt)
{

    int i =0;
    int row = 0;
    for(i =0;i<stu_lines.length();i++)
    {
        QString line = stu_lines.at(i);
        line = line.trimmed();
        QStringList subs = line.split(" ");
        switch(index){
        case 1:
            if(cnt == subs.at(0))
            {
                disPlay(row++,subs);
            }
            break;
        case 2:
            if(cnt == subs.at(1))
            {
                disPlay(row++,subs);
            }
            break;
        case 3:
            if(cnt == subs.at(2))
            {
                disPlay(row++,subs);
            }
            break;

        default:
            break;
        }

    }
}


void chaxun::disPlay(int row,QStringList subs)
{
    int i=0;
    for(i =0;i<subs.length();i++)
    {

     this->model->setItem(row,i,new QStandardItem(subs.at(i)));


    }
}


void chaxun::cahxunInit(void)
{

    this->model->setHorizontalHeaderItem(0,new QStandardItem("name"));
    this->model->setHorizontalHeaderItem(1,new QStandardItem("number"));
    this->model->setHorizontalHeaderItem(2,new QStandardItem("sex"));
    this->model->setHorizontalHeaderItem(3,new QStandardItem("age"));
    this->model->setHorizontalHeaderItem(4,new QStandardItem("depart"));
    this->model->setHorizontalHeaderItem(5,new QStandardItem("interest"));

    this->ui->tableView->setColumnWidth(0,100);
    this->ui->tableView->setColumnWidth(1,150);
    this->ui->tableView->setColumnWidth(2,100);
    this->ui->tableView->setColumnWidth(3,50);
    this->ui->tableView->setColumnWidth(4,100);
    this->ui->tableView->setColumnWidth(5,300);

}

七、mian.cpp文件

#include "addstudent.h"
#include <QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //addstudent w;
    //w.show();
    MainWindow m;
    m.show();

    return a.exec();
}

八、mainwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include "addstudent.h"
#include "chaxun.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(this->ui->actionTianjiaxus,SIGNAL(triggered(bool)),this,SLOT(actionaddStu()));
    connect(this->ui->actionChaxun,SIGNAL(triggered(bool)),this,SLOT(actionChaxun()));

}

MainWindow::~MainWindow()
{
    delete ui;
}



void MainWindow::actionaddStu()
{
  addstudent a;
  // a.show();
  a.exec();

}
void MainWindow::actionChaxun()
{
    chaxun b;
    b.exec();
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值