学生管理系统(C++)

#include

#include

using namespace std;

#define FILENAME “stdFILE.txt” //定义生成文件名称

//学生类(抽象类)

class Student {

public:

virtual void showInfo() = 0; //显示个人信息

// virtual ~Student() = 0; //定义纯虚析构函数保证释放堆区内存时不会发生内存泄漏

string StId; //学号

string m_name; //姓名

string m_Dept; //职责

};

//普通学生类

class Nomalstuden : public Student {

public:

Nomalstuden(string Id, string name, string dep);

void showInfo(); //显示个人信息

// ~Nomalstuden() {

// delete this;

// }

};

//班长类

class ClassPresident : public Student {

public:

ClassPresident(string Id, string name, string dep);

void showInfo ();

// ~ClassPresident() {

// delete this;

// }

};

//班干部类

class Classleader : public Student {

public:

Classleader(string Id, string name, string dep);

void showInfo ();

// ~Classleader() {

// delete this;

// }

};

//管理员类

class StudentManager {

public:

StudentManager();//构造函数

void Show_Menu(); //打印菜单界面

void Exit_System();//退出系统

void Addinfo(); //增加学生信息

void save(); //将学生信息保存到文件中

void init_Std(); //初始化学生

void show_Std(); //显示学生信息

void del_Std(); //删除学生信息

void mod_Std(); //修改学生信息

void find_Std(); //查找学生信息

void clean_File(); //清空文件

int IsExist(string id); //判断学号为id的学生信息是否存在,并返回该学生下标

~StudentManager();//析构函数

vector<Student*> *m_StdArray; //存放增加的学生信息

bool m_fileIsEmpty; //标记文件是否为空

};

//学生类纯虚析构的外部实现

// Student :: ~Student() {

// delete this;

// }

//管理员函数实现

StudentManager :: StudentManager() {

ifstream ifs;

ifs.open(FILENAME, ios :: in);

//如果文件不存在

if (!ifs.is_open()) {

cout << “该文件不存在!” << endl;

this -> m_fileIsEmpty = true;

this -> m_StdArray = NULL;

ifs.close();

return ;

}

//文件存在但是数据为空

char ch;

ifs >> ch; //先读取一个字符

if (ifs.eof()) {

cout << “该文件为空!” <<endl;

this -> m_fileIsEmpty = true;

this -> m_StdArray = NULL;

ifs.close();

return ;

}

//文件存在,并记录初始数据

this -> m_StdArray 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值