學(xué)生信息管理系統(tǒng)
工程管理學(xué)院 張競(jìng)藝 151278047
注:若要運(yùn)行此程序需要有qt5.7環(huán)境并將database.cpp
中的數(shù)據(jù)庫(kù)路徑改為本地路徑
簡(jiǎn)介
本程序基于SQLite為支撐,Qt為界面完成扼睬,除了基本的對(duì)學(xué)生信息的增刪改查功能外逮栅,還可個(gè)性化定制學(xué)生興趣從而發(fā)現(xiàn)某學(xué)生的可能朋友。
基于軟件工程思想優(yōu)化說(shuō)明
密文回顯
主界面
為完善用戶(hù)體驗(yàn)窗宇,本程序更改為兩個(gè)不同的接口:教師+學(xué)生,同時(shí)添加了密文回顯
主界面.png
改進(jìn)代碼是文件qpasswordlineedit.h
和相應(yīng).cpp
文件
修改密碼
學(xué)生界面
學(xué)生界面.png
改進(jìn)后措伐,學(xué)生界面添加了修改密碼的功能,相關(guān)代碼如下:
void password::on_pushButton_save_clicked()
{
QSqlDatabase db = QSqlDatabase::database("sqlite1"); //建立數(shù)據(jù)庫(kù)連接
QSqlQuery query(db);
QString key=ui->lineEdit_old->text();
query.prepare(QObject::tr("select 密碼 from stu_password where 用戶(hù)名 = ?"));
query.addBindValue(ui->lineEdit_num->text());
query.exec();
if(!query.next())
{
QMessageBox::information(NULL,"information","用戶(hù)名不存在",QMessageBox::tr("OK"));
ui->lineEdit_num->clear();
}
else
{
if(key==query.value(0).toString())
{
query.prepare(QObject::tr("update stu_password set 密碼=? where 用戶(hù)名 = ?"));
query.bindValue(0,ui->lineEdit_new->text());
query.bindValue(1,ui->lineEdit_num->text());
if(query.exec())
{
QMessageBox::information(NULL,"information","修改密碼成功军俊!",QMessageBox::tr("OK"));
this->close();
}
else
QMessageBox::information(NULL,"information","啊哦侥加,修改失敗",QMessageBox::tr("OK"));
}
else
{
QMessageBox::information(NULL,"information","原密碼錯(cuò)誤",QMessageBox::tr("OK"));
ui->lineEdit_old->clear();
}
}
ui->lineEdit_num->clear();
ui->lineEdit_old->clear();
ui->lineEdit_new->clear();
}
修改密碼界面:
學(xué)生端更改密碼界面
更改密碼.png
老師管更改密碼界面
更改密碼2.png
相應(yīng)實(shí)現(xiàn)文件在
password.cpp
和password_t.cpp
以及對(duì)應(yīng).h
文件中,分別對(duì)應(yīng)學(xué)生和管理員界面的更改密碼...
容錯(cuò)
優(yōu)化了容錯(cuò)功能
添加學(xué)生容錯(cuò)
容錯(cuò)1.png
相關(guān)代碼如下:
if(query.exec()){
QMessageBox::information(NULL,"information","修改成功粪躬!",QMessageBox::tr("OK"));
this->close();
}
else
{
QMessageBox::critical(NULL,"critical","所填信息不完整或有誤担败!",QMessageBox::tr("OK"));
}
編輯學(xué)生信息容錯(cuò)
容錯(cuò)2.png
相關(guān)代碼如下:
if(ui->label_name->text()==NULL)
QMessageBox::information(NULL,"information","請(qǐng)先選擇一個(gè)學(xué)生",QMessageBox::tr("OK"));
修改密碼容錯(cuò)
容錯(cuò)3.png
相關(guān)代碼如下:
if(!query.next())
{
QMessageBox::information(NULL,"information","用戶(hù)名不存在",QMessageBox::tr("OK"));
ui->lineEdit_num->clear();
}
if(key==query.value(0).toString())
{
query.prepare(QObject::tr("update stu_password set 密碼=? where 用戶(hù)名 = ?"));
query.bindValue(0,ui->lineEdit_new->text());
query.bindValue(1,ui->lineEdit_num->text());
if(query.exec())
{
QMessageBox::information(NULL,"information","修改密碼成功!",QMessageBox::tr("OK"));
this->close();
}
else
QMessageBox::information(NULL,"information","啊哦镰官,修改失敗",QMessageBox::tr("OK"));
}
else
{
QMessageBox::information(NULL,"information","原密碼錯(cuò)誤",QMessageBox::tr("OK"));
ui->lineEdit_old->clear();
}
登錄容錯(cuò)
容錯(cuò)4.png
相關(guān)代碼如下:
if((!query.next()))
QMessageBox::critical(NULL,"critical","用戶(hù)名不存在",QMessageBox::tr("朕知錯(cuò)了"));
else
{
QString key1 =query.value(0).toString();
if(key1==key)
{
//此處登錄成功后界面
t_view.show();
this->show();
}
else
{
QMessageBox::critical(NULL,"critical","密碼錯(cuò)誤!",QMessageBox::tr("朕知錯(cuò)了"));
ui->name_lineEdit->clear();
this->ui->name_lineEdit->setFocus();
}
}