前言:
现时兄弟们对“用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语言学生证管理系统设计