IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 职工住房管理系统C++ -> 正文阅读

[C++知识库]职工住房管理系统C++

题目七:职工住房管理系统
该系统需创建和管理如下信息:1、职工信息:工号、姓名、年龄、入职日期、学位、职称、现住房面积、住址、家庭成员数据集。2、家庭成员信息:姓名、性别、年龄、称谓关系。
系统功能要求如下:
1.创建和管理职工信息的对象;
2.创建和管理家庭成员信息的对象;
3.增加和删除职工;
4.针对特定职工增加和删除家庭成员信息;
5.基本查询功能;
6.数据文件读写:文件中包含所有职工信息、每个职工的家庭成员信息等数据;
7.基本信息显示:1)所有职工的信息显示;2)特定职工的家庭成员信息;
8.可选功能提升:显示职工的积分信息(计分方法如下:职称分;教授,20分;副教授,16分;讲师,12分;助教,8分。工龄分:每年0.5分;每月0.0416分。年龄分:每岁0.1分;每月0.0083分。学龄分:博士,4.5分;硕士,3.25分,本科,2分;现住房分:每平米0.1分;家庭成员分:每人2分;其它,0分)及排名等。

整体思路:
C++部分(构建基本类)
根据上述需求,整合各类之间的嵌套关系,得到如下结果:
1、家人类:年龄,姓名,性别,称谓关系;读取,存盘;
2、家人列表类:家庭成员数,家庭成员容器;读取(单人,所有),修改(增加,减少),存盘;
3、积分类:职称分,工龄分,年龄分,学龄分,房屋面积分,家庭成员数分,总积分;读取,求和,存盘;
4、职工类:工号,姓名,年龄,入职日期,学位,职称,现住房面积,住址,家人列表类,
积分类;读取,修改,计算工龄分,自动计算每项积分;
5、职工列表类:职工人数,职工容器;读取(单人,所有),修改(增加,减少),积分排序,存盘;

各类之间关系如下图:
在这里插入图片描述

Qt部分(界面设计)

1、菜单栏设计
思路:文件读取、存盘,增加、删改家庭成员,增加、删改职工,职工表,家庭成员表,积分表,排名表
2、主界面设计
思路:展示四张表,职工表、家庭成员表、积分表、排名表
3、对话框设计
思路:应聘对话框(增加职工)、解聘对话框(删除职工)、增加家庭成员对话框(通过职工工号)、删除家庭成员对话框(通过职工工号和家人姓名)

系统设计流程图:
在这里插入图片描述

关键代码
.h都包含,.cpp部分包含
Integral.h

class Integral
{
public:

   double S_title;       //职称分;教授,20分;副教授,16分;讲师,12分;助教,8分。
   double S_wage;        //工龄分:每年0.5分;每月0.0416分。
   double S_age;         //年龄分:每岁0.1分;每月0.0083分。
   double S_sage;        //学龄分:博士,4.5分;硕士,3.25分,本科,2分;
   double S_area;        //现住房分:每平米0.1分;
   double S_num;         //家庭成员分:每人2分;
   double S_integral;    //总积分

   Integral();
   double sumofintegeral();                      //求积分
   Integral(const Integral&cintegral);
   Integral&operator=(const Integral&cintegral);
   //Integral(double=0.0,double=0.0,double=0.0,double=0.0,double=0.0,double=0.0);
   void readIntegral(QTextStream & mystream);    //读取所有积分项
   void modifyIntegral(QTextStream & mystream);  //修改所有积分项

};

Family.h

class Family
{
public:
    QString   F_name;        //名字
    QString   F_gender;      //性别
    int       F_age;         //年龄
    QString   F_relation;    //称谓关系

    Family(QString ="0",QString ="0",int=0,QString="0");
    Family(const Family&cfamily);
    Family&operator=(const Family &cfamily);
    void readFamily(QTextStream & mystream);       //读取某一家庭成员信息
    void modifyFamily(QTextStream & mystream);     //修改某一家庭成员信息

};

Family_list.h

class Family_list
{
public:
    int               F_num;      //家庭成员数
    QVector<Family>   m_family;   //所有家庭成员容器

    Family_list(int =0);
    ~Family_list();
    void readFamily_list(QTextStream & mystream);    //读取所有家庭成员信息
    void modifyFamily_list(QTextStream & mystream,int flag,int N);//修改所有家庭成员信息
    Family& read_onefamily(int index);     //读取某一家庭成员信息
    void addFamily_list(Family&myfamily);     //增加家庭成员
    void deleteFamily_list(QString name);  //删除家庭成员
};

Employee.h

class Employee
{
public:
    QString       E_name;               //姓名
    QString       E_ID;                 //工号
    QString       E_title;              //职称
    QString       E_address;            //家庭住址
    QString       E_acadegree;          //学位
    QString       E_age;                //年龄
    QDate         E_entrytime;          //入职时间
    double        area;                 //房屋面积

    Integral      myintegral;           //积分
    Family_list   myfamily;             //家庭成员

    Employee(int =0);
    Employee(const Employee& cemployee);
    Employee&operator=(const Employee& cemployee);
    ~Employee();
    void reademployee(QTextStream & mystream);                //读取职工信息
    void modifyemployee(QTextStream & mystream,int flag,int N);              //修改职工信息
    void caculateintegral();
    double cac_wage();
};

Employee_list.h

class Employee_list
{
public:
    int E_num;                         //职工数量
    QVector<Employee>myemployeelist;   //职工容器

    Employee_list(int=0);
    ~Employee_list();
    bool readEmployeelist(const QString &read_emlist_fname);  //读取职工列表
    bool modifyEmployeelist(const QString &modify_emlist_fname,int flag); //修改职工列表
    Employee & readoneofemployee(int index);         //读取某一职工信息
    void addemployee(Employee&newemployee);               //增加职工
    void deleteemployee(QString id);            //删除职工
    void sort_emp_integral();         //以积分排序职工

};

MainWindow.h

class MainWindow : public QMainWindow
{
    Q_OBJECT
    QStandardItemModel * employeelistModel;      //显示表格信息数据模型,操纵表格

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    Employee_list   m_employeelist;              //创建职工信息表对象
    void            showemployeetable();         //显示职工表
    void            showfamilytable(QString id); //显示家庭成员表
    virtual void    resizeEvent(QResizeEvent *event) override; //调整界面大小与方框一致(虚函数)
    void            showintegraltable();         //显示积分表
    int flag=0;

private slots:                                   //触发函数
    void on_actionRead_triggered();

    void on_actionFamilyData_triggered();

    void on_actionEmployeeList_triggered();

    void on_actionApplication_triggered();

    void on_actionModify_triggered();

    void on_actionFamilyRegister_triggered();

    void on_actionFamily_triggered();

    void on_actionFire_triggered();

    void on_actionCleanFamily_triggered();

    void on_actionIntegralList_triggered();

    void on_actionRankingList_triggered();

private:
    Ui::MainWindow *ui;
};

DialogRegister.h

class DialogRegister : public QDialog
{
    Q_OBJECT

public:
    explicit DialogRegister(QWidget *parent = nullptr);
    ~DialogRegister();
    QString ID();
    QString Name();
    QString Gender();
    QString Relation();
    int     Age();

private:
    Ui::DialogRegister *ui;
};

DialogID_Name.h

class DialogID_Name : public QDialog
{
    Q_OBJECT

public:
    explicit DialogID_Name(QWidget *parent = nullptr);
    ~DialogID_Name();
    QString ID();
    QString Name();

private:
    Ui::DialogID_Name *ui;
};

DialogID.h

class DialogID : public QDialog
{
    Q_OBJECT

public:
    explicit DialogID(QWidget *parent = nullptr);
    ~DialogID();
    QString ID();

private:
    Ui::DialogID *ui;
};

DialogHire.h

class DialogHire : public QDialog
{
    Q_OBJECT

public:
    explicit DialogHire(QWidget *parent = nullptr);
    ~DialogHire();
    QString       ID();
    QString       Name();
    QString       Age();
    QString       Title();              //职称
    QString       Address();            //家庭住址
    QString       Acadegree();          //学位
    QDate         Entrytime();          //入职时间
    double        Area();

private:
    Ui::DialogHire *ui;
};

Employee_list.cpp

Employee_list::Employee_list(int num):E_num(num)
{
//    for(int i=0;i<E_num;i++)
//    {
//        Employee tempe;
//        myemployeelist.push_back(tempe);//默认初始化
//    }
}//构造函数

Employee_list::~Employee_list(){}

bool Employee_list::readEmployeelist(const QString &read_emlist_fname)
{
    QFile myfile(read_emlist_fname);   //创建一个文本类对象,以存盘文件初始化
    if(!myfile.exists())return false;  //如果文件不存在则返回
    if(!myfile.open(QIODevice::ReadOnly|QIODevice::Text))//以文本方式打开
    {
     qDebug()<<"文件打开失败";
    return false;
    }
    QTextStream mystream(&myfile);                        //用文本流读取文件
    mystream.setCodec(QTextCodec::codecForName("system"));//显示汉字

    //初始化
    E_num=0;               //职工个数清零
    myemployeelist.clear();//容器清零

    //逐个读取职工信息
    mystream>>E_num;
    Employee tempemlpo;   //创建临时职工对象存放读取到的职工信息
    if(E_num>0)
    {
        for(int i=0;i<E_num;i++)
       {
            tempemlpo.reademployee(mystream);
            myemployeelist.push_back(tempemlpo);//增加一个职工
       }
    }
    myfile.close();
    return true;

}//读取职工列表

bool Employee_list::modifyEmployeelist(const QString &modify_emlist_fname,int flag)
{
    QFile myfile(modify_emlist_fname);
    if(!myfile.open(QIODevice::WriteOnly|QIODevice::Text))
        return false;
    QTextStream mystream(&myfile);
    mystream.setCodec(QTextCodec::codecForName("system"));

    //逐个存盘职工信息
    mystream<<E_num<<endl;

    int N=0;
    if(E_num>0)
    {
        for(int i=0;i<E_num;i++)
       {
            myemployeelist[i].modifyemployee(mystream,flag,N);
            N+=myemployeelist[i].myfamily.F_num;
       }
    }
    myfile.close();
    return true;
}//修改职工列表

Employee & Employee_list::readoneofemployee(int index)
{
    return myemployeelist[index];
}//读取某一职工信息
void Employee_list::addemployee(Employee&newemployee)
{
    myemployeelist.push_back(newemployee);
    E_num++;               //基操
}//增加职工

void Employee_list::deleteemployee(QString id)
{
    int index=0;
    for(int i=0;i<E_num;i++)
    {
        if(myemployeelist[i].E_ID==id)
       break;
        index++;
    }//找到要删除员工的下标

    QVector<Employee>::Iterator ptr = &myemployeelist[index];
    ptr=myemployeelist.erase(ptr);//编译后不报错了;差点搞个野指针
    E_num--;//补齐

}//删除职工
void Employee_list::sort_emp_integral()
{
   for(int i=1;i<E_num;i++)//冒泡排序
   {
      for(int j=i;j>0;j--)
      {
          if(myemployeelist[j].myintegral.S_integral < myemployeelist[j-1].myintegral.S_integral)
          {
              Employee tempemployee=myemployeelist[j-1];
              myemployeelist[j-1]=myemployeelist[j];
              myemployeelist[j]=tempemployee;
          }
      }
   }
}//以积分排序职工

MainWindow.cpp

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //单次选择
    ui->ShowemployeelistView->setSelectionMode(QAbstractItemView::SingleSelection);
    //选中一个item
    ui->ShowemployeelistView->setSelectionBehavior(QAbstractItemView::SelectItems);
    //New一个QStandardItemModel的对象并与QTableView资源建立关联;
    employeelistModel = new QStandardItemModel();
    //建立关联
    ui->ShowemployeelistView->setModel(employeelistModel);
    //showtable();
}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::showemployeetable()
{
    employeelistModel->clear();
    //8列
    employeelistModel->setColumnCount(8);
    //表头
    employeelistModel->setHorizontalHeaderLabels
            (QStringList()<<"工号"<<"姓名"<<"年龄"<<"入职日期"<<"学位"<<"职称"<<"现住房面积"<<"住址");
    //行数
    int num1=m_employeelist.E_num;
    employeelistModel->setRowCount(num1);

    //遍历,插入数据
    QStandardItem *aTempItem; //临时的item
    QString tempStr;          //临时字符串
    for(int i=0; i<num1; ++i)
    {
        //创建临时职工
       Employee tempemp=m_employeelist. readoneofemployee(i);
       //插入一排数据
       tempStr=tempemp.E_ID;
       aTempItem=new QStandardItem(tempStr);     //开辟一段内存并存放一个QString类型的数据
       employeelistModel->setItem(i,0,aTempItem);//第i行第0列 ID
       tempStr=tempemp.E_name;
       aTempItem=new QStandardItem(tempStr);     //开辟一段内存并存放一个QString类型的数据
       employeelistModel->setItem(i,1,aTempItem);//第i行第1列 姓名
       tempStr=tempemp.E_age;
       aTempItem=new QStandardItem(tempStr);     //开辟一段内存并存放一个QString类型的数据
       employeelistModel->setItem(i,2,aTempItem);//第i行第2列 年龄
       tempStr= tempemp.E_entrytime.toString();
       aTempItem=new QStandardItem(tempStr);     //开辟一段内存并存放一个QString类型的数据
       employeelistModel->setItem(i,3,aTempItem);//第i行第3列 入职日期
       tempStr=tempemp.E_acadegree;
       aTempItem=new QStandardItem(tempStr);     //开辟一段内存并存放一个QString类型的数据
       employeelistModel->setItem(i,4,aTempItem);//第i行第4列 学位
       tempStr=tempemp.E_title;
       aTempItem=new QStandardItem(tempStr);     //开辟一段内存并存放一个QString类型的数据
       employeelistModel->setItem(i,5,aTempItem);//第i行第5列 职称
       tempStr=QString::number(tempemp.area);
       aTempItem=new QStandardItem(tempStr);     //开辟一段内存并存放一个QString类型的数据
       employeelistModel->setItem(i,6,aTempItem);//第i行第6列 现住房面积
       tempStr=tempemp.E_address;
       aTempItem=new QStandardItem(tempStr);     //开辟一段内存并存放一个QString类型的数据
       employeelistModel->setItem(i,7,aTempItem);//第i行第7列 住址
    }

//       //设置号码为只读
//       ReadOnlyDelegate* readOnlyDelegate = new ReadOnlyDelegate(this);
//       ui->ShowInfotableView->setItemDelegateForColumn(0, readOnlyDelegate);
}

void MainWindow:: showfamilytable(QString id)
 {
     employeelistModel->clear();
     //4列
     employeelistModel->setColumnCount(4);
     //表头
     employeelistModel->setHorizontalHeaderLabels
             (QStringList()<<"姓名"<<"性别"<<"年龄"<<"称谓关系");
     //行数
     int N=0;
     for(int i=0;i<m_employeelist.E_num;i++)
     {
        if( flag==0 && m_employeelist.myemployeelist[i].E_ID==id)
        {
            int num2=m_employeelist.myemployeelist[i].myfamily.F_num;
            employeelistModel->setRowCount(num2);
        //遍历,插入数据
            QStandardItem *aTempItem; //临时的item
            QString tempStr;          //临时字符串
            for(int j=0; j<num2; j++)
            {
               //创建临时职工
               Family tempfam=m_employeelist.myemployeelist[i].myfamily.read_onefamily(j);
               //插入一排数据
               tempStr=tempfam.F_name;
               aTempItem=new QStandardItem(tempStr);
               employeelistModel->setItem(j,0,aTempItem);//第i行第0列 姓名
               tempStr=tempfam.F_gender;
               aTempItem=new QStandardItem(tempStr);
               employeelistModel->setItem(j,1,aTempItem);//第i行第1列 性别
               tempStr=QString::number(tempfam.F_age);
               aTempItem=new QStandardItem(tempStr);
               employeelistModel->setItem(j,2,aTempItem);//第i行第2列 年龄
               tempStr= tempfam.F_relation;
               aTempItem=new QStandardItem(tempStr);
               employeelistModel->setItem(j,3,aTempItem);//第i行第3列 称谓关系
            }
        }
      if( flag==1 && m_employeelist.myemployeelist[i].E_ID==id)
        {
            int num2=m_employeelist.myemployeelist[i].myfamily.F_num;
            employeelistModel->setRowCount(num2);
            //QString nname=m_employeelist.myemployeelist[i].myfamily.m_family[4].F_name;

            //QString nna=m_employeelist.myemployeelist[i].E_name;

            //遍历,插入数据
            QStandardItem *aTempItem; //临时的item
            QString tempStr;          //临时字符串
            for(int j=0; j<num2; j++)
            {
               //创建临时职工
               Family tempfam=m_employeelist.myemployeelist[i].myfamily.read_onefamily(N+j);
               //插入一排数据
               tempStr=tempfam.F_name;
               aTempItem=new QStandardItem(tempStr);
               employeelistModel->setItem(j,0,aTempItem);//第i行第0列 姓名
               tempStr=tempfam.F_gender;
               aTempItem=new QStandardItem(tempStr);
               employeelistModel->setItem(j,1,aTempItem);//第i行第1列 性别
               tempStr=QString::number(tempfam.F_age);
               aTempItem=new QStandardItem(tempStr);
               employeelistModel->setItem(j,2,aTempItem);//第i行第2列 年龄
               tempStr= tempfam.F_relation;
               aTempItem=new QStandardItem(tempStr);
               employeelistModel->setItem(j,3,aTempItem);//第i行第3列 称谓关系
            }

        }
       N+=m_employeelist.myemployeelist[i].myfamily.F_num;//计算下标位置
     }
 }

void MainWindow::resizeEvent(QResizeEvent *event)
{
    //父类的保持
    QMainWindow::resizeEvent(event);

    int x = this->frameGeometry().width();
    int y = this->frameGeometry().height();

    //窗口改变大小的时候列表控件跟着改变
    ui->ShowemployeelistView->setGeometry(5,5,x*0.99,y*0.99);
}

void MainWindow::on_actionRead_triggered()
{

        QString curPath = QDir::currentPath();            //文件路径
        QString dlgTitle = "选择一个文件";                  //对话框名
        QString filter = "文本文件(*.txt);;所有文件(*.*)";   //文件格式过滤器
        QString aFileName = QFileDialog::getOpenFileName(this, dlgTitle, curPath, filter);
        if(aFileName.isEmpty())
            return;
        //创建成功,打开文件
        m_employeelist.readEmployeelist(aFileName);       //读文件

        //判断读文件时是否有家庭成员
        int num=0;
        for(int i=0;i<m_employeelist.E_num;i++)
        {
            num+=m_employeelist.myemployeelist[i].myfamily.F_num;
        }
        if(num!=0)flag=1;
        showemployeetable();
}

void MainWindow::on_actionFamilyData_triggered()
{

}

void MainWindow::on_actionEmployeeList_triggered()
{
        showemployeetable();     //显示职工列表
}

void MainWindow::on_actionApplication_triggered()
{
       DialogHire dlghire(this);
       int ret = dlghire.exec(); //以模态方式显示对话框
       if(ret==QDialog::Accepted)//OK按钮被按下
       {                         //将对话框中信息存入职工临时变量中
           Employee tempempl;
           tempempl.E_ID=dlghire.ID();
           tempempl.E_acadegree=dlghire.Acadegree();
           tempempl.E_address=dlghire.Address();
           tempempl.E_age=dlghire.Age();
           tempempl.E_entrytime=dlghire.Entrytime();
           tempempl.E_name=dlghire.Name();
           tempempl.E_title=dlghire.Title();
           tempempl.area=dlghire.Area();
           m_employeelist.addemployee(tempempl);//增加一位职工

           showemployeetable();//显示职工列表
       }
}

void MainWindow::on_actionFamilyRegister_triggered()
{
    DialogRegister dlgregister(this);
    int ret = dlgregister.exec(); //以模态方式显示对话框
    if(ret==QDialog::Accepted)    //OK按钮被按下
    {
        for(int i=0;i<m_employeelist.E_num;i++)
        {
           if( m_employeelist.myemployeelist[i].E_ID==dlgregister.ID()) //判断是否为指定家人
           {                //将对话框中信息存入家人临时变量中
               Family tempfamily;
               tempfamily.F_age=dlgregister.Age();
               tempfamily.F_gender=dlgregister.Gender();
               tempfamily.F_name=dlgregister.Name();
               tempfamily.F_relation=dlgregister.Relation();
               m_employeelist.myemployeelist[i].myfamily.addFamily_list(tempfamily);//增加一名家人
               showfamilytable(dlgregister.ID());//显示指定员工家人列表
           }
        }

    }
}

void MainWindow::on_actionModify_triggered()
{
        QString curPath = QDir::currentPath();
        QString dlgTitle = "另存为一个文件";
        QString filter = "文本文件(*.txt);;所有文件(*.*)";
        QString aFileName = QFileDialog::getSaveFileName(this, dlgTitle, curPath, filter);
        if(aFileName.isEmpty())
            return;
        m_employeelist.modifyEmployeelist(aFileName,flag);
}

void MainWindow::on_actionFamily_triggered()//家庭成员表
{
    DialogID dlgID(this);
    int ret=dlgID.exec();         //以模态方式显示对话框
    if(ret==QDialog::Accepted)    //OK按钮被按下
    {
        showfamilytable(dlgID.ID());//显示指定员工家人列表
    }
}

void MainWindow::on_actionFire_triggered()
{
    DialogID dlgID(this);
    int ret=dlgID.exec();        //以模态方式显示对话框
    if(ret==QDialog::Accepted)   //OK按钮被按下
    {
        for(int i=0;i<m_employeelist.E_num;i++)
        {
            if(m_employeelist.myemployeelist[i].E_ID==dlgID.ID())//判断开除职工工号
                m_employeelist.deleteemployee(dlgID.ID());//删除职工
        }
        showemployeetable();//显示当前职工列表
    }
}

void MainWindow::on_actionCleanFamily_triggered()
{
    DialogID_Name dlgID_Name(this);
    int ret=dlgID_Name.exec();       //以模态方式显示对话框
    if(ret==QDialog::Accepted)       //OK按钮被按下
    {
        for(int i=0;i<m_employeelist.E_num;i++)
        {
            if(m_employeelist.myemployeelist[i].E_ID==dlgID_Name.ID())//判断修改信息职工工号
               for(int j=0;j<m_employeelist.myemployeelist[i].myfamily.F_num;j++)
               {
                   if(m_employeelist.myemployeelist[i].myfamily.m_family[j].F_name==dlgID_Name.Name())//判断删除家人姓名
                       m_employeelist.myemployeelist[i].myfamily.deleteFamily_list(dlgID_Name.Name());//删除家人
               }
        }
        showfamilytable(dlgID_Name.ID());//展示当前家人列表
    }

}


void MainWindow::showintegraltable()
{
    employeelistModel->clear();
    //8列
    employeelistModel->setColumnCount(8);
    //表头
    employeelistModel->setHorizontalHeaderLabels
            (QStringList()<<"工号"<<"总积分"<<"职称分"<<"工龄分"<<"年龄分"<<"学龄分"<<"现住房分"<<"家庭成员分");
    //行数
    int num3=m_employeelist.E_num;
    employeelistModel->setRowCount(num3);
    for(int i=0;i<num3;i++)
    {
          //求积分
          m_employeelist.myemployeelist[i].caculateintegral();
    }
    //遍历,插入数据
    QStandardItem *aTempItem; //临时的item
    QString tempStr;          //临时字符串
    for(int i=0;i<num3;i++)
    {

          //创建临时职工
          Employee tempem=m_employeelist.myemployeelist[i];
          //插入一排数据
          tempStr=tempem.E_ID;
          aTempItem=new QStandardItem(tempStr);
          employeelistModel->setItem(i,0,aTempItem);//第i行第0列 ID

          tempStr=QString::number(tempem.myintegral.S_integral);
          aTempItem=new QStandardItem(tempStr);
          employeelistModel->setItem(i,1,aTempItem);//第i行第1列 总积分

          tempStr=QString::number(tempem.myintegral.S_title);
          aTempItem=new QStandardItem(tempStr);
          employeelistModel->setItem(i,2,aTempItem);//第i行第2列 职称分

          tempStr=QString::number(tempem.myintegral.S_wage);
          aTempItem=new QStandardItem(tempStr);
          employeelistModel->setItem(i,3,aTempItem);//第i行第3列 工龄分

          tempStr=QString::number(tempem.myintegral.S_age);
          aTempItem=new QStandardItem(tempStr);
          employeelistModel->setItem(i,4,aTempItem);//第i行第4列 年龄分

          tempStr=QString::number(tempem.myintegral.S_sage);
          aTempItem=new QStandardItem(tempStr);
          employeelistModel->setItem(i,5,aTempItem);//第i行第5列 学龄分

          tempStr=QString::number(tempem.myintegral.S_area);
          aTempItem=new QStandardItem(tempStr);
          employeelistModel->setItem(i,6,aTempItem);//第i行第6列 住房面积分

          tempStr=QString::number(tempem.myintegral.S_num);
          aTempItem=new QStandardItem(tempStr);
          employeelistModel->setItem(i,7,aTempItem);//第i行第7列 家庭成员分
    }
}
void MainWindow::on_actionIntegralList_triggered()
{
    showintegraltable();//显示积分表
}

void MainWindow::on_actionRankingList_triggered()
{
    int num4=m_employeelist.E_num;
    for(int i=0;i<num4;i++)
    {
          //求积分
          m_employeelist.myemployeelist[i].caculateintegral();
    }
    m_employeelist.sort_emp_integral();//根据积分排序
    showintegraltable();               //展示积分表

}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:37:50  更:2021-08-02 10:39:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 14:29:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码