【C++】C++ QT实现 学生信息管理系统(QT源码)【独一无二】
米码收割机 2024-07-09 14:35:20 阅读 75
👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。
C++ QT学生信息管理系统(原码)【独一无二】
目录
C++ QT学生信息管理系统(原码)【独一无二】一、功能设计二、功能展示三、代码分析3.1. 类和构造函数3.2. 控件初始化3.3. 布局设置3.4. 信号与槽的连接
3.5. 功能实现的方法
一、功能设计
添加学生信息:
用户通过输入框输入学生的姓名、年龄、学号、课程以及分数。点击“添加”按钮,系统会检查输入是否完整,不允许任何字段为空。完整的学生信息将被添加到系统中,并显示在表格中以供查看。
删除学生信息:
用户输入需要删除的学生的姓名。点击“删除”按钮,系统将查找该学生的信息。如果找到,学生信息将被从系统中删除,并更新表格显示。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
修改学生信息:
用户首先需要输入学生的姓名作为搜索关键词。在其他输入框中输入需要修改的新信息。点击“修改”按钮后,如果找到该学生,其信息将根据输入更新。表格将刷新以显示更新后的信息。
查询学生信息:
用户可以输入姓名、年龄、学号、课程或分数中的任一项作为查询条件。点击“查询”按钮后,系统将显示所有匹配的学生信息。查询结果将在表格中显示,不匹配的信息不会显示。
显示所有学生信息:
点击“显示”按钮,系统将展示所有已存储的学生信息。无论之前进行了何种查询或操作,显示结果都包括所有学生信息。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
二、功能展示
添加信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
修改信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
查询信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
显示所有信息
删除信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
三、代码分析
3.1. 类和构造函数
类名为 <code>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);
}
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。