学生管理系统

 

最近有个课程是程序设计的,要求写个学生管理系统!所以就用了几天写了一个,有什么地方错了,请大家指出来!这个系统我用的是数据库,没有使用文本保存。

下面直接上代码

这个是管理员的头文件的一些信息声明

#pragma once
#ifndef _ADMINISTER_H_  
#define _ADMINISTER_H_ 
#include<string>
//Administer的声明
using namespace std;
//管理员类
class Administer {
private:
	string name;//姓名
	string a_id;  //账号
	string password;//密码

public:
	Administer();//无参构造器
	Administer(string name, string a_id, string password);//有参构造器
	//设置和获取姓名
	void set_name(string name);
	string get_name();
	//设置和获取账号
	void set_a_id(string a_id);
	string get_a_id();
	//设置和获取密码
	void set_password(string password);
	string get_password();
	//展示管理员的信息
	void display();
};
#endif

下面是具体实现

​
#include"Administer.h"
#include <iostream>
//Administer的实现
//有参构造的实现
Administer::Administer(string name_01, string a_id_01, string password_01) :name(name_01), a_id(a_id_01), password(password_01) {};
//Administer::Administer(string name, string a_id, string password) {
//	this->name = name;
//	this->a_id = a_id;
//	this->password = password;
//};
//设置和获取姓名
void Administer::set_name(string name) { this->name = name; };
string Administer:: get_name() { return this->name; };
//设置和获取账号
void Administer::set_a_id(string id) { this->a_id = a_id; };
string Administer::get_a_id() { return this->a_id; };
//设置和获取密码
void Administer::set_password(string password) { this->password = password; };
string Administer::get_password() { return this->password; };
//展示管理员的信息
void Administer::display() {
	cout << "*************************" << endl;
	cout << "***姓名:" << name<<endl;
	cout << "***账号:" << a_id<<endl;
	cout << "*************************" << endl;
};

​

然后就是学生的了

#pragma once
#ifndef _STUDENT_H_  
#define _STUDENT_H_ 
#include<string>
using namespace std;
class Student {
private:
	string name;//姓名
	string s_id;  // 学号
	string password;//密码
	string sex;//性别
	string age;//年龄
	string major;//专业
	string cpp;//c++成绩
	string java;//java成绩
public:
	//无参构造器
	Student() ;
	//有参构造器
	Student(string name, string s_id, string password, string sex,string age,string major,string cpp,string java);
	//设置和获取姓名
	void set_name(string name);
	string get_name();
	//设置和获取账号
	void set_s_id(string s_id);
	string get_s_id();
	//设置和获取密码
	void set_password(string password);
	string get_password();
	//设置和获取性别
	void set_sex(string sex);
	string get_sex();
	//设置和获取年龄
	void set_age(string age);
	string get_age();
	//设置和获取专业
	void set_major(string major);
	string get_major();
	//设置和获取cpp成绩
	void set_cpp(string cpp);
	string get_cpp();
	//设置和获取java成绩
	void set_java(string java);
	string get_java();
	//展示学生信息
	void display();
};
#endif
#include"Student.h"
#include <iostream>
//Student类的实现
//有参构造的实现
Student::Student(string name_01, string s_id_01, string password_01, string sex_01,string age_01, string major_01, string cpp_01,string java_01) 
	:name(name_01), s_id(s_id_01), password(password_01), sex(sex_01),age(age_01),major(major_01), cpp(cpp_01) ,java(java_01){};
//Administer::Administer(string name, string id, string password,string sex,string age,string major,string cpp,string java) {
//	this->name = name;
//	this->id = id;
//	this->password = password;
//  this->sex=sex;
//  this->age=age;
//  this->major=major;
//  this->cpp=cpp;
//  this->java=java;
//};
//设置和获取姓名
void Student::set_name(string name) { this->name = name; };
string Student::get_name() { return this->name; };
//设置和获取账号
void Student::set_s_id(string id) { this->s_id = s_id; };
string Student::get_s_id() { return this->s_id; };
//设置和获取密码
void Student::set_password(string password) { this->password = password; };
string Student::get_password() { return this->password; };
//设置和获取性别
void Student::set_sex(string sex) { this->sex = sex; };
string Student::get_sex() { return this->sex; };
//设置和获取年龄
void Student::set_age(string age) { this->age = age; };
string Student::get_age() { return this->age; };
//设置和获取专业
void Student::set_major(string major) { this->major = major; };
string Student::get_major() { return this->major; };
//设置和获取cpp成绩
void Student::set_cpp(string cpp) { this->cpp = cpp; };
string Student::get_cpp() { return this->cpp; };
//设置和获取java成绩
void Student::set_java(string java) { this->java = java; };
string Student::get_java() { return this->java; };
//展示管理者的信息
void Student::display() {
	cout << "*************************" << endl;
	cout << "***姓名:" << name << endl;
	cout << "***账号:" << s_id << endl;
	cout << "***性别:" << sex << endl;
	cout << "***年龄:" << age << endl;
	cout << "***专业:" << major << endl;
	cout << "***cpp:" << cpp << endl;
	cout << "***java:" << java << endl;
	cout << "*************************" << endl;
};

然后是用数据库

#pragma once
#ifndef _MYSQL_H_  
#define _MYSQL_H_ 
#include<Windows.h>
#include<mysql.h>
#include<iostream>
#include<iomanip>

using namespace std;

class MySQL {
private:
	MYSQL mysql;
	MYSQL_RES* res;
	MYSQL_ROW row;

public:
	void mysql_conncetion();
	void mysql_insert(string sql);
	void mysql_delete(string sql);
	void mysql_modify(string sql);
	MYSQL_RES* mysql_seek(string sql);
	MYSQL_ROW get_row();
};
#endif

声明,感觉增删改可以写成一个,因为我比较懒,所以我就不改了

#include"MySQL.h"
#include<Windows.h>
#include<mysql.h>
#include<iostream>
#include<iomanip>

using namespace std;
void MySQL::mysql_conncetion() {
	mysql_init(&mysql);
	if (!mysql_real_connect(&mysql, "localhost", "root", "0203", "studentmanagesystem", 203, NULL, 0)) {
		cout << "连接失败,请重新连接" << endl;
	}
	else {
		mysql_query(&mysql, "set names gbk");
		//cout << "连接成功";
	}
}
void MySQL::mysql_insert(string sql) {
	if (mysql_query(&mysql, sql.c_str())) {
		cerr << "执行sql语句失败,错误信息为:" << mysql_error(&mysql) << endl;
	}
	else {
		//cout << "添加成功" << endl;
	}
}
void MySQL::mysql_delete(string sql) {
	if (mysql_query(&mysql, sql.c_str())) {
		cerr << "执行sql语句失败,错误信息为:" << mysql_error(&mysql) << endl;
	}
	else {
		//cout << "删除成功" << endl;
	}
}
void MySQL::mysql_modify(string sql) {
	if (mysql_query(&mysql, sql.c_str())) {
		cerr << "执行sql语句失败,错误信息为:" << mysql_error(&mysql) << endl;
	}
	else {
		//cout << "修改成功" << endl;
	}
}
MYSQL_RES* MySQL::mysql_seek(string sql) {
	if (mysql_query(&mysql, sql.c_str())) {
		cerr << "执行sql语句失败,错误信息为:" << mysql_error(&mysql) << endl;
		return nullptr;
	}
	else {
		//cout << "查找成功" << endl;
		res = mysql_store_result(&mysql);
		return res;
	}
}

MYSQL_ROW MySQL::get_row() {
	return row;
}

最后就是写具体的系统

因为实现代码太多,我这里就不放出来了,如果有需要的可以联系我

#pragma once
#ifndef _SYSTEM_H_  
#define _SYSTEM_H_ 
#include<list>
#include"Administer.h"
#include"Student.h"
using namespace std;
class System {
private:
	list<Student> student;//学生集合
	list<Administer>administer;//管理员集合
	static int student_num;//学生人数
	static int administer_num;//管理员人数
public:
	/*界面*/
	virtual void load_interface();    //登入界面
	void exit_interface();            //退出系统界面
	void student_functionShow();      //学生功能界面
	void administer_functionShow();   //管理员功能界面

	/*登入*/
	void enter_administer();          //管理员登入系统
	void enter_student();             //学生登入系统
	/*验证*/
	void check_administer();          //管理员登入验证
	void check_student();             //学生登入验证


	void set_administer();            //创建管理员账号
	
	/*管理者的功能*/
	/*基础功能*/
	void add_student();                        //增加学生信息
	void delete_student_id();                  //根据学号来删除学生
	void alter_student_id();                   //根据学号来修改学生信息
	void seek_student_id();                    //根据学号来查找学生
	/*其他功能*/
	void seek_allstudent();                    //查看所有学生信息
	void delete_allstudent();                  //删除所有学生
	void sort_student_grade();                 //根据学生成绩排序
	void census_student_grade();               //统计学生的成绩和年龄
	void seek_student_id_01();                 //查询学号最后一个位奇数的学生信息(模糊查询)
	void seek_student_id_02();                 //查询学号最后一个位偶数的学生信息
	void seek_union_student_administer();      //联合查询管理员和学生账号
	void seek_student_cpp_java();              //查询cpp成绩及格的java成绩最高的学生成绩

	/*学生的功能*/
	void change_password();                   //修改密码
	void seek_own(string s_id);               //查看个人信息
};
#endif

如果主函数调用

#include"System.h"
int main() {
	System s;
	s.load_interface();
	system("pause");
	return 0;
}

给大家看看我的目录

最后,这是我第一次写博客,可能有些地方不够好,希望大家多多指出!!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值