最近有个课程是程序设计的,要求写个学生管理系统!所以就用了几天写了一个,有什么地方错了,请大家指出来!这个系统我用的是数据库,没有使用文本保存。
下面直接上代码
这个是管理员的头文件的一些信息声明
#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;
}
给大家看看我的目录
最后,这是我第一次写博客,可能有些地方不够好,希望大家多多指出!!