QT课程作业---学生成绩管理系统

学生成绩管理是高等学校教务管理的重要组成部分,主要包括学生成绩的录入、删除、查找及修改、成绩的统计分析排序等等。

增加记录

可以连续增加学生多条记录

删除一个学生的记录

可以先查找,再删除。删除前,要求用户确认。

成绩修改

若输入错误可进行修改;要求可以先查找,再修改。

查找

可以根据姓名(或学号)查找某个学生的课程成绩,查找某门课程成绩处 于指定分数段内的学生名单等等。

统计分析

对某个班级学生的单科成绩进行统计,既能求出平均成绩又能求单科的平均成绩,又能求三科总分的平均成绩。

排序

要求按总分进行排序(从高到低),若总分相同,则按数学排序;若总分和数学相同,则按物理排序;若总分和各科成绩都相同,则按学号排序

文件操作

可以打开文件,显示班级的所有学生信息;可以将增加或修改后的成 绩重新写入文件;可以将排序好的信息写入新的文件。

页面

主机面主要以一个do-while循环使得系统能够多次查询。循环中大部分是判断语句的嵌套。能够以用户意愿自由查询和进出系统。

例如

20191000818 孟珂 90 86 96 20191000921 罗云迪 86 90 75 20191001121 田甜 95 85 87 20191001248 王如男 90 89 94 20191001316 邵叶飞 80 84 86 20191001375 周晨曦 87 86 90 20191001695 王洪 96 88 91 20191001842 尹笛露 85 90 94 20191002002 刘宇坤 88 86 90 20191002152 尹然宇 82 90 88.........................

部分代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"management.h"
#include "dialog_chage.h"
#include "dialog_delete.h"
#include "dialog_tongji.h"
#include<QString>
#include"student.h"
#include<QGraphicsOpacityEffect>
#include <QDialog>
#include<QPushButton>
#include <QApplication>


management me;
vector<student>v=me.itxt();
QString s2q(const string &s)
  {
  return QString(QString::fromLocal8Bit(s.c_str()));
  }
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->textEdit->setText("         娆㈣繋杩涘叆瀛︾敓鎴愮哗绠$悊绯荤粺锛?);
    QGraphicsOpacityEffect *effect = new QGraphicsOpacityEffect(this);
    effect->setOpacity(0.5);
    ui->label_7->setGraphicsEffect(effect);
    ui->textEdit->setGraphicsEffect(effect);
}

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

void MainWindow::on_pushButton_clicked()
{
    ui->textEdit->clear();
    ui->textEdit->insertPlainText("ID:    濮撳悕锛氭暟瀛︼細鑻辫锛?鐗╃悊锛?);
    QString a,b,c,d,e,o;
    student s;
    for(int i=0;i<v.size();i++){
        s=v[i];
        a=s2q(s.getId());
        b=s2q(s.getName());
        c=QString::number(s.getMath(),10);
        d=QString::number(s.getEng(),10);
        e=QString::number(s.getPhy(),10);
        o=a+'     '+b+'     '+c+'     '+d+'      '+e+'\n';
        ui->textEdit->insertPlainText(o);
    }
}

void MainWindow::on_ok_clicked()
{
     ui->textEdit->clear();
    student temp(ui->ID->text().toStdString(),ui->xingming->text().toStdString(),ui->shuxue->text().toInt(),
                 ui->yingyu->text().toInt(),ui->wuli->text().toInt());
    v.push_back(temp);
    QString a,b,c,d,e,o;
    a=s2q(temp.getId());
    b=s2q(temp.getName());
    c=QString::number(temp.getMath(),10);
    d=QString::number(temp.getEng(),10);
    e=QString::number(temp.getPhy(),10);
    o=a+'     '+b+'     '+c+'     '+d+'      '+e+'\n';
    ui->textEdit->insertPlainText(o);
    ui->textEdit->insertPlainText("娣诲姞鎴愬姛锛?);
    me.otxt();
}


void MainWindow::on_ok_2_clicked()
{
    QString qst=ui->sousuo_2->text();
    string st=qst.toStdString();
    v=me.deletetxt(st);
     ui->sousuo_2->clear();
    Dialog_delete * dialog2 = new Dialog_delete(this);
    dialog2->setWindowTitle(tr("delete information"));
    if(dialog2->exec()==QDialog::Rejected) return;
}

void MainWindow::on_ss_clicked()
{
    QString qst=ui->sousuo->text();
    string str=qst.toStdString();
    v=me.findtxt(str);
    on_pushButton_clicked();
    ui->sousuo->clear();
}

void MainWindow::on_ss_2_clicked()
{
    QString qst1=ui->kemu->text();
    QString qst2=ui->sousuo1->text();
    QString qst3=ui->sousuo2->text();
    string str=qst1.toStdString();
    int a=qst2.toInt();
    int b=qst3.toInt();
    v=me.findtxt1(a,b,str);
    if(v.size()){
      on_pushButton_clicked();
    }
    else{
        ui->textEdit->clear();
        ui->textEdit->insertPlainText("瀵逛笉璧凤紒娌℃湁鎮ㄦ墍鏌ョ殑淇℃伅锛?);
    }
    ui->kemu->clear();
    ui->sousuo1->clear();
    ui->sousuo2->clear();
}

void MainWindow::on_pushButton_3_clicked()
{
    Dialog_tongji * dialog3 = new Dialog_tongji(this);
    dialog3->setWindowTitle(tr("tongji information"));
    if(dialog3->exec()==QDialog::Rejected) return;
}

void MainWindow::on_pushButton_4_clicked()
{
    v=me.ptxt();
    on_pushButton_clicked();
}


void MainWindow::on_pushButton_2_clicked()
{
    Dialog_chage * dialog1 = new Dialog_chage(this);
    dialog1->setWindowTitle(tr("change information"));
    if(dialog1->exec()==QDialog::Rejected) return;
}

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地球炒蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值