基于QT 设计一个成绩系统,要求分学生端和老师端,实现用户登录和主界面展示,使用qt组建,实现用户登录,学生端能读取数据,老师端可以读取 和修改数据,数据表子段可写在txt文本(包括id tea-name course )等,并用代码实现。
时间: 2024-04-16 12:23:54 浏览: 99
好的,这里给出一个简单的代码示例,演示如何使用QT来设计一个成绩系统,实现用户登录和主界面展示,学生端能读取数据,老师端可以读取和修改数据,并将数据存储在txt文本文件中。
首先,创建一个QT Widgets Application项目,并在项目中添加以下代码:
```cpp
// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLineEdit>
#include <QPushButton>
#include <QLabel>
#include <QTextEdit>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void loginClicked();
private:
QLineEdit *usernameLineEdit;
QLineEdit *passwordLineEdit;
QPushButton *loginButton;
QLabel *statusLabel;
QTextEdit *dataTextEdit;
void loadStudentData();
void loadTeacherData();
void saveTeacherData();
};
#endif // MAINWINDOW_H
// mainwindow.cpp
#include "mainwindow.h"
#include <QFile>
#include <QMessageBox>
#include <QDebug>
#include <QVBoxLayout>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
usernameLineEdit = new QLineEdit(this);
passwordLineEdit = new QLineEdit(this);
passwordLineEdit->setEchoMode(QLineEdit::Password);
loginButton = new QPushButton("Login", this);
statusLabel = new QLabel(this);
dataTextEdit = new QTextEdit(this);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(new QLabel("Username:", this));
layout->addWidget(usernameLineEdit);
layout->addWidget(new QLabel("Password:", this));
layout->addWidget(passwordLineEdit);
layout->addWidget(loginButton);
layout->addWidget(statusLabel);
layout->addWidget(dataTextEdit);
QWidget *centralWidget = new QWidget(this);
centralWidget->setLayout(layout);
setCentralWidget(centralWidget);
connect(loginButton, &QPushButton::clicked, this, &MainWindow::loginClicked);
}
MainWindow::~MainWindow()
{
}
void MainWindow::loginClicked()
{
QString username = usernameLineEdit->text();
QString password = passwordLineEdit->text();
// 根据用户名和密码验证登录
if (username == "student" && password == "123") {
loadStudentData();
statusLabel->setText("Logged in as Student");
} else if (username == "teacher" && password == "123") {
loadTeacherData();
statusLabel->setText("Logged in as Teacher");
} else {
QMessageBox::warning(this, "Login Failed", "Invalid username or password!");
statusLabel->setText("Login Failed");
}
}
void MainWindow::loadStudentData()
{
QFile file("student_data.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QString data = file.readAll();
dataTextEdit->setText(data);
file.close();
}
}
void MainWindow::loadTeacherData()
{
QFile file("teacher_data.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QString data = file.readAll();
dataTextEdit->setText(data);
file.close();
}
}
void MainWindow::saveTeacherData()
{
QFile file("teacher_data.txt");
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QString data = dataTextEdit->toPlainText();
file.write(data.toUtf8());
file.close();
}
}
```
这是一个简单的成绩系统的代码示例,实现了用户登录和主界面展示,学生端能读取数据,老师端可以读取和修改数据,并将数据存储在txt文本文件中。您可以根据自己的需求进行扩展和优化。
请注意,此示例仅供参考,还有许多其他方面需要考虑,如数据表的结构、数据的输入验证、界面布局等。希望对您有所帮助!如果还有其他问题,请随时提问。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)