龙空技术网

Qt开发学生信息管理系统

音视频开发老舅 189

前言:

现时兄弟们对“用c做学生信息管理系统”大体比较着重,同学们都想要了解一些“用c做学生信息管理系统”的相关内容。那么小编在网摘上网罗了一些对于“用c做学生信息管理系统””的相关知识,希望咱们能喜欢,小伙伴们快快来学习一下吧!

在本项目中,我们将使用Qt开发一个简单的学生信息管理系统,实现以下功能:

添加学生信息(姓名、学号、性别、年龄、班级);显示学生信息列表;根据学号或姓名搜索学生信息;修改学生信息;删除学生信息。项目结构

本项目将包含以下文件:

main.cpp:程序入口文件;student.h 和 student.cpp:定义学生类;studentwidget.h 和 studentwidget.cpp:定义学生信息管理界面;studentwidget.ui:学生信息管理界面的UI设计文件。学生类的实现

首先,我们需要定义一个学生类,用于存储和管理学生信息。在student.h文件中,我们定义了如下类:

#ifndef STUDENT_H#define STUDENT_H#include <QString>class Student{public:    Student();    Student(QString name, QString id, QString gender, int age, QString className);    QString getName() const;    void setName(const QString &value);    QString getId() const;    void setId(const QString &value);    QString getGender() const;    void setGender(const QString &value);    int getAge() const;    void setAge(int value);    QString getClassName() const;    void setClassName(const QString &value);private:    QString name; // 姓名    QString id; // 学号    QString gender; // 性别    int age; // 年龄    QString className; // 班级};#endif // STUDENT_H

在student.cpp文件中,我们实现了这个类的所有成员函数:

#include "student.h"Student::Student(){}Student::Student(QString name, QString id, QString gender, int age, QString className){    this->name = name;    this->id = id;    this->gender = gender;    this->age = age;    this->className = className;}QString Student::getName() const{    return name;}void Student::setName(const QString &value){    name = value;}QString Student::getId() const{    return id;}void Student::setId(const QString &value){    id = value;}QString Student::getGender() const{    return gender;}void Student::setGender(const QString &value){    gender = value;}int Student::getAge() const{    return age;}void Student::setAge(int value){    age = value;}QString Student::getClassName() const{    return className;}void Student::setClassName(const QString &value){    className = value;}
学生信息管理界面的实现

接下来,我们需要创建一个学生信息管理界面,用于添加、显示、搜索、修改和删除学生信息。我们使用Qt Designer来设计该界面,并保存为studentwidget.ui文件。 在studentwidget.h文件中,我们定义了如下类:

#ifndef STUDENTWIDGET_H#define STUDENTWIDGET_H#include <QWidget>#include <QList>#include "student.h"namespace Ui {class StudentWidget;}class StudentWidget : public QWidget{    Q_OBJECTpublic:    explicit StudentWidget(QWidget *parent = nullptr);    ~StudentWidget();private slots:    void on_addButton_clicked();    void on_searchButton_clicked();    void on_modifyButton_clicked();    void on_deleteButton_clicked();private:    Ui::StudentWidget *ui;    QList<Student> students; // 学生信息列表    void showStudentList(); // 显示学生信息列表};#endif // STUDENTWIDGET_H

在studentwidget.cpp文件中,我们实现了该类的所有成员函数:

【领QT开发教程学习资料,点击→Qt开发(视频教程+文档+代码+项目实战)←莬费领取,先码住不迷路~】

#include "studentwidget.h"#include "ui_studentwidget.h"#include <QMessageBox>StudentWidget::StudentWidget(QWidget *parent) :    QWidget(parent),    ui(new Ui::StudentWidget){    ui->setupUi(this);    // 添加一些默认学生信息    students.append(Student("张三", "1001", "男", 20, "计算机科学与技术"));    students.append(Student("李四", "1002", "女", 19, "计算机科学与技术"));    students.append(Student("王五", "1003", "男", 21, "计算机科学与技术"));    showStudentList();}StudentWidget::~StudentWidget(){    delete ui;}// 显示学生信息列表void StudentWidget::showStudentList(){    ui->studentTableWidget->setRowCount(students.count());    for (int i = 0; i < students.count(); i++) {        Student student = students.at(i);        QTableWidgetItem *nameItem = new QTableWidgetItem(student.getName());        QTableWidgetItem *idItem = new QTableWidgetItem(student.getId());        QTableWidgetItem *genderItem = new QTableWidgetItem(student.getGender());        QTableWidgetItem *ageItem = new QTableWidgetItem(QString::number(student.getAge()));        QTableWidgetItem *classItem = new QTableWidgetItem(student.getClassName());        ui->studentTableWidget->setItem(i, 0, nameItem);        ui->studentTableWidget->setItem(i, 1, idItem);        ui->studentTableWidget->setItem(i, 2, genderItem);        ui->studentTableWidget->setItem(i, 3, ageItem);        ui->studentTableWidget->setItem(i, 4, classItem);    }}// 添加学生信息void StudentWidget::on_addButton_clicked(){    QString name = ui->nameLineEdit->text();    QString id = ui->idLineEdit->text();    QString gender = ui->genderComboBox->currentText();    int age = ui->ageSpinBox->value();    QString className = ui->classLineEdit->text();    students.append(Student(name, id, gender, age, className));    showStudentList();}// 根据学号或姓名搜索学生信息void StudentWidget::on_searchButton_clicked(){    QString searchText = ui->searchLineEdit->text();    QList<Student> result;    for (int i = 0; i < students.count(); i++) {        Student student = students.at(i);        if (student.getId().contains(searchText) || student.getName().contains(searchText)) {            result.append(student);        }    }    if (result.count() == 0) {        QMessageBox::information(this, "提示", "未找到符合条件的学生信息!");    } else {        QString msg = QString("搜索结果:共找到%1个学生信息\n").arg(result.count());        for (int i = 0; i < result.count(); i++) {            Student student = result.at(i);            msg += QString("姓名:%1,学号:%2,性别:%3,年龄:%4,班级:%5\n").arg(student.getName()).arg(student.getId()).arg(student.getGender()).arg(student.getAge()).arg(student.getClassName());        }        QMessageBox::information(this, "搜索结果", msg);    }}// 修改学生信息void StudentWidget::on_modifyButton_clicked(){    int row = ui->studentTableWidget->currentRow();    if (row == -1) {        QMessageBox::warning(this, "警告", "请先选择一行!");        return;    }    QString name = ui->nameLineEdit->text();    QString id = ui->idLineEdit->text();    QString gender = ui->genderComboBox->currentText();    int age = ui->ageSpinBox->value();    QString className = ui->classLineEdit->text();    students.replace(row, Student(name, id, gender, age, className));    showStudentList();}// 删除学生信息void StudentWidget::on_deleteButton_clicked(){    int row = ui->studentTableWidget->currentRow();    if (row == -1) {        QMessageBox::warning(this, "警告", "请先选择一行!");        return;    }    students.removeAt(row);    showStudentList();}

在以上代码中,我们定义了一个QList来存储学生信息列表,并在showStudentList()函数中将学生信息显示在一个QTableWidget中。添加、搜索、修改和删除学生信息的操作都是基于该列表进行的。

程序入口

最后,我们需要在main.cpp文件中创建一个QApplication对象,并将StudentWidget作为主窗口显示出来:

cppCopy code#include "studentwidget.h"#include <QApplication>int main(int argc, char *argv[]){    QApplication a(argc, argv);    StudentWidget w;    w.show();    return a.exec();}
总结

通过以上步骤,我们已经成功地创建了一个简单的学生信息管理系统。该系统具有添加、显示、搜索、修改和删除学生信息的功能,可以帮助我们更好地了解和掌握Qt的基本操作和界面设计。

标签: #用c做学生信息管理系统 #c语言学生证管理系统设计