【C++】C++ QT实现 学生信息管理系统(QT源码)【独一无二】
👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。
C++ QT学生信息管理系统(原码)【独一无二】
目录
- C++ QT学生信息管理系统(原码)【独一无二】
- 一、功能设计
- 二、功能展示
- 三、代码分析
- 3.1. 类和构造函数
- 3.2. 控件初始化
- 3.3. 布局设置
- 3.4. 信号与槽的连接
- 3.5. 功能实现的方法
一、功能设计
-
添加学生信息:
- 用户通过输入框输入学生的姓名、年龄、学号、课程以及分数。
- 点击“添加”按钮,系统会检查输入是否完整,不允许任何字段为空。
- 完整的学生信息将被添加到系统中,并显示在表格中以供查看。
-
删除学生信息:
- 用户输入需要删除的学生的姓名。
- 点击“删除”按钮,系统将查找该学生的信息。
- 如果找到,学生信息将被从系统中删除,并更新表格显示。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
-
修改学生信息:
- 用户首先需要输入学生的姓名作为搜索关键词。
- 在其他输入框中输入需要修改的新信息。
- 点击“修改”按钮后,如果找到该学生,其信息将根据输入更新。
- 表格将刷新以显示更新后的信息。
-
查询学生信息:
- 用户可以输入姓名、年龄、学号、课程或分数中的任一项作为查询条件。
- 点击“查询”按钮后,系统将显示所有匹配的学生信息。
- 查询结果将在表格中显示,不匹配的信息不会显示。
-
显示所有学生信息:
- 点击“显示”按钮,系统将展示所有已存储的学生信息。
- 无论之前进行了何种查询或操作,显示结果都包括所有学生信息。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
二、功能展示
添加信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
修改信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
查询信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
显示所有信息
删除信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
三、代码分析
3.1. 类和构造函数
- 类名为 MainWindow,继承自 QWidget。
- 在构造函数中,首先创建了一个名为 centralWidget 的中央部件,并设置为当前窗口的中夬部件。同时,设置了窗口的标题为 “学生信息管理系统”。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
3.2. 控件初始化
-
构造函数中初始化了五个输入框(QLineEdit)用于输入姓名、年龄、学号、课程、分数。
-
初始化了五个按钮(QPushButton)用于实现添加、删除、修改、查询和显示学生信息的功能。
-
初始化了一个表格控件(QTableWidget),用于显示学生信息,表头包括姓名、年龄、学号、课程和分数。
QPushButton* addButton = nullptr; QPushButton* deleteButton = nullptr; QPushButton* modifyButton = nullptr; QPushButton* searchButton = nullptr; QPushButton* showButton = nullptr; QLineEdit* nameEdit = nullptr; QLineEdit* ageEdit = nullptr; QLineEdit* idEdit = nullptr; QLineEdit* courseEdit = nullptr; QLineEdit* scoreEdit = nullptr;
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
3.3. 布局设置
-
使用 QHBoxLayout、QVBoxLayout、QFormLayout 和 QGridLayout 来组织控件的布局。
-
使用 QFormLayout 布局来管理输入框,并通过 addRow 方法添加标签和对应的输入框。
-
使用 QGridLayout 布局来管理按钮。
-
最后将表格控件和其他布局组合到一个水平布局中,并设置给 centralWidget。
QHBoxLayout* hLaylout = new QHBoxLayout; QVBoxLayout* vLaylout = new QVBoxLayout; QFormLayout* fLayout = new QFormLayout; QGridLayout* gLayout = new QGridLayout; fLayout->addRow("姓名:", nameEdit); fLayout->addRow("年龄:", ageEdit); fLayout->addRow("学号:", idEdit); fLayout->addRow("课程:", courseEdit); fLayout->addRow("分数:", scoreEdit); gLayout->addWidget(addButton, 0, 0); gLayout->addWidget(deleteButton, 0, 1); gLayout->addWidget(modifyButton, 1, 0); gLayout->addWidget(searchButton, 1, 1); gLayout->addWidget(showButton, 2, 0, 1, 2); vLaylout->addLayout(fLayout); vLaylout->addLayout(gLayout); hLaylout->addLayout(vLaylout); hLaylout->addWidget(tableWidget);
3.4. 信号与槽的连接
-
在 SendSignal2Slot 方法中,将按钮的点击事件连接到对应的槽函数。这些槽函数用于处理添加、删除、修改、查询、显示全部信息的功能。
void MainWindow::SendSignal2Slot() { connect(addButton, &QPushButton::clicked, this, &MainWindow::addMessage); connect(searchButton, &QPushButton::clicked, this, &MainWindow::searchMessage); connect(modifyButton, &QPushButton::clicked, this, &MainWindow::modifyMessage); connect(deleteButton, &QPushButton::clicked, this, &MainWindow::deleteMessage); connect(showButton, &QPushButton::clicked, this, &MainWindow::showAllMessage); }
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
3.5. 功能实现的方法
-
添加信息 (addMessage):从输入框中获取数据,检查数据是否为空,然后创建一个学生信息对象并添加到列表(向量)中。最后将信息添加到表格中显示。
-
查询信息 (searchList):从输入框中获取数据,遍历学生信息列表,匹配数据并更新表格显示。
-
修改信息 (modifyMessage):从输入框中获取数据,遍历学生信息列表,匹配姓名后更新对应的其他信息,然后刷新显示。
-
删除信息 (deleteMessage):从输入框中获取名字,遍历列表,匹配名字后从列表中删除对应的信息,然后刷新显示。
-
显示所有信息 (showAllMessage):清空表格,并重新遍历学生信息列表,将所有信息添加到表格中显示。
void MainWindow::addMessage() { bool ageFlag; bool sidFlag; bool scoreFlag; QString name = nameEdit->text(); QString age = ageEdit->text(); QString sid = idEdit->text(); QString course = courseEdit->text(); QString score = scoreEdit->text(); if (name.isEmpty() && age.isEmpty() && sid.isEmpty() && course.isEmpty() && score.isEmpty()) { QMessageBox::warning(this, "Warning", "请确保输入信息不为空 !"); return; } StudentMessage msg; msg.name = name; msg.age = age; msg.sid = sid; msg.course = course; msg.score = score; // 添加到vector中 allMessage.push_back(msg); // 显示在table中 appendTable(msg.name, msg.age, msg.sid, msg.course, msg.score); }
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
-
-
-
-
-