基于QT/C++的学生信息管理系统

感受 

   这是本人在继C++之后,自学QT做的一个比较完整的项目,在这之中遇到过好多问题。好在查看了帮助文档,和网上查找都一一解决,经历这次的项目练习,我比之初接触QT更加深入的了解和掌握了更多的知识。所以要多加练习才能勤能补拙。

 程序实现概况:

   这次的项目是一个基于QT/C++的学生信息管理系统,学生属性有(name,age,sex,phone,colleage,address,hobby)应用程序包括7个界面,分别为(登录界面,注册界面,功能选择界面,添加学生界面,查看学生信息界面,删除学生信息界面,修改学生信息界面)。

实现代码:

Logoininterface.h

#pragma once

#include <QtWidgets/QMainWindow>
#include <qpixmap.h>
#include <qstring.h>
#include <qfile.h>
#include <qdebug.h>
#include <qmessagebox.h>
#include "ui_Logininterface.h"
#include "menu.h"
#include "newuser.h"

class Logininterface : public QMainWindow
{
	Q_OBJECT

public:
	Logininterface(QWidget *parent = Q_NULLPTR);
private slots:
	int _login();//登录
	int _newuser();//注册新用户

private:
	Ui::LogininterfaceClass ui;
	menu m;
	newuser n;
	QString inputaccount;
	QString inputpassward;
};

Logininterface.cpp

#include "Logininterface.h"

Logininterface::Logininterface(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	//设置背景
	QPixmap pixmap("F:\\vs2017\\Logininterface\\Logininterface\\image\\loginbackground.jpg");
	QPalette palette;
	palette.setBrush(backgroundRole(), QBrush(pixmap));
	setPalette(palette);
	//this->ui->flagface->setPixmap(QPixmap(":/image/flagdog.png"));
	connect(this->ui.login, SIGNAL(clicked(bool)), this, SLOT(_login()));
	connect(this->ui.newuser, SIGNAL(clicked(bool)), this, SLOT(_newuser()));
}

//登录
int Logininterface::_login()
{
	int value = 0;
	QString linedata;
	QMessageBox mes;
	inputaccount = this->ui.account_number->text();
	inputpassward = this->ui.passward->text(); 
	QString userinput_account = inputaccount + "&" + inputpassward;
	QFile file("accountinformation.txt");
	if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
	{
		return 0;
	}
	QTextStream in(&file);
	while (!in.atEnd())
	{
		
		linedata = in.readLine();
		//qDebug() << linedata;
		if (linedata == userinput_account)
		{
			value++;
			this->hide();
			m.show();
		}
	}
	if (value == 0)
	{
		mes.setWindowTitle("提示!!");
		mes.setText("账号有误,重新输入!!");
		mes.exec();
		this->ui.account_number->clear();
		this->ui.passward->clear();
	}
	file.close();
	return 0;
}
//注册新用户
int Logininterface::_newuser()
{
	this->hide();
	n.show();
	n.exec();
	this->show();
	return 0;
}

newuser.h

#pragma once
#ifdef WIN32  
#pragma execution_character_set("utf-8")  
#endif

#include <QDialog>
#include <qpixmap.h>
#include <qlineedit.h>
#include <qmessagebox.h>
#include <qfile.h>
#include <qtextstream.h>
#include "ui_newuser.h"


class newuser : public QDialog 
{
	Q_OBJECT

private slots:
	int _okinformation();//确认信息
	int _noinformation();//取消保存
	int _return();//返回
public:
	newuser(QWidget *parent = Q_NULLPTR);
	~newuser();

private:
	Ui::newuser ui;
};

newuser.cpp

#include "newuser.h"

newuser::newuser(QWidget *parent)
	: QDialog(parent)
{
	ui.setupUi(this);

	//设置背景
	QPixmap pixmap("F:\\vs2017\\Logininterface\\Logininterface\\image\\newuserbackground.jpg");
	QPalette palette;
	palette.setBrush(backgroundRole(), QBrush(pixmap));
	setPalette(palette);

	connect(this->ui.ok, SIGNAL(clicked(bool)), this, SLOT(_okinformation()));
	connect(this->ui.no, SIGNAL(clicked(bool)), this, SLOT(_noinformation()));
	connect(this->ui.reTurn, SIGNAL(clicked(bool)), this, SLOT(_return()));
}

newuser::~newuser()
{
}


//实现

//取消保存
int newuser::_noinformation()
{
	this->ui.newaccount->clear();
	this->ui.newpassward->clear();
	this->ui.confirmaccount->clear();
	this->ui.confirmpassward->clear();
	return 0;
}
//确认账号信息
int newuser::_okinformation()
{
	int value = 0;
	QMessageBox messagebox;
	messagebox.setWindowTitle("账号信息确认:");
	
	//有空的时候
	if (ui.newaccount->text().isEmpty() || ui.newpassward->text().isEmpty() ||
		ui.confirmaccount->text().isEmpty() || ui.confirmpassward->text().isEmpty())
	{
		messagebox.setText("您设置的账号信息不完整!&
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值