一 题目:教学管理系统
二 目的:简单模拟学校的教学管理系统,为了简单期间,系统只模拟最简单的功能。
三 简单分析:
人员:
1、学生 2、教师 3、管理人员(以上三种人员都继承自CPerson基类)
功能:
1、设置、修改、显示个人信息
2、发布消息
四 说明:
以命令行程序形式运行
所有数据保存在变量和对象中,不进行数据的数据库和文件操作。
五 具体要求:
每个类必须实现的函数:
1、构造函数
2、析构函数
3、公告函数:该成员函数负责发布当前对象要公布的信息,在“CPerson”中设置为虚函数,在学生中转换为提问,教师中转换为答疑,管理人员中转换为发布公告。
建立main函数,在main函数中模拟系统的一次运行,询问用户的身份,根据用户身份要求用户设置个人信息、修改个人信息、显示个人信息;再根据用户的身份不同,分别将学生提问、老师答疑、管理人员发布公告进行演示
代码如下:
#include<iostream>
#include<string>
using namespace std;
class CPerson
{
public:
CPerson(string nam,int a):name(nam),age(a){}
virtual void bulletin()=0;
virtual void set_date();
virtual void modify_date();
virtual void show_date();
virtual ~CPerson(){cout<<"executing CPerson destructor"<<endl;}
private:
string name;
int age;
};
void CPerson::set_date()
{
cout<<"请依次输出您的信息:名字,年龄。"<<endl;
cin>>name>>age;
}
void CPerson::modify_date()
{
cout<<"请输入您修改后的信息:名字,年龄。"<<endl;
cin>>name>>age;
}
void CPerson::show_date()
{
cout<<"name:"<<name<<endl<<"age:"<<age<<endl;
}
class Student:public CPerson
{
public:
Student(string nam,int a,int num,float score):CPerson(nam,a),num(n),score(s){}
void bulletin()
{
cout<<"请输入您要提问的问题:"<<endl;
cin>>buf;
cout<<buf<<endl;
}
void set_data()
{
cout<<"请依次输入您的信息:名字,年龄,学号,成绩."
CPerson::set_date();
cin>>num>>score;
}
void modify_data()
{
cout<<"请输入您修改后的信息:名字,年龄,学号,成绩。"<<endl;
CPerson::modify_date();
cin>>num>>score;
}
void show_date()
{
CPerson::show_date();
cout<<"num:"<<num<<endl<<"score:"<<score<<endl;
}
~Student(){cout<<"executing Student destructor"<<endl;}
private:
int num;
float score;
};
class Teacher:public CPerson
{
public:
Student(string nam,int a,string t):CPerson(nam,a),title(t){}
void set_data()
{
cout<<"请依次输入您的信息:名字,年龄,职位."
CPerson::set_date();
cin>>title;
}
void modify_data()
{
cout<<"请输入您修改后的信息:名字,年龄,职位。"<<endl;
CPerson::modify_date();
cin>>title;
}
void show_date()
{
CPerson::show_date();
cout<<"title:"<<title<<endl;
}
void bulletin()
{
string a
cout<<"请输入您解答此问题的答案:"<<endl;
cin>>buf;
cout<<buf<<endl;
}
~Teacher(){cout<<"executing Teacher destructor"<<endl;}
private:
string title;
};
class Admistra:public CPerson
{
public:
Student(string nam,int a,int num,float score):CPerson(nam,a),code_name(c_n){}
void set_data()
{
cout<<"请依次输入您的信息:名字,年龄,代号."
CPerson::set_date();
cin>>code_name;
}
void modify_data()
{
cout<<"请输入您修改后的信息:名字,年龄,代号"<<endl;
CPerson::modify_date();
cin>>code_name;
}
void show_date()
{
CPerson::show_date();
cout<<"code_name:"<<code_name<<endl;
}
void bulletin()
{
string a
cout<<"请输入您发布的公告:"<<endl;
cin>>buf;
cout<<buf<<endl;
}
~Admistra(){cout<<"executing Admistra destructor"<<endl;}
private:
int code_name;
};
int main()
{
CPerson person1;
Student stud1;
Teacher tea1;
Admistra admis1;
CPerson *pt=&stud1;
int x,z;
cout<<"请问您的身份是:学生请输入1,老师请输入2,管理人员请输入3"<<endl;
cin>>x;
if(x=1)
{
pt=&stud1;
cout<<"请你选择你对个人信息操作:设置请输入1,修改请输入2,显示请输入3"<<endl;
cin>>z;
if(z=1)
{
pt->set_date();
}
else if(z=2)
{
pt->modify_date();
}
else{pt->show_date;}
pt->bulletin();
}
else if(x=2)
{
pt=&tea1;
cout<<"请你选择你对个人信息操作:设置请输入1,修改请输入2,显示请输入3"<<endl;
cin>>z;
if(z=1)
{
pt->set_date();
}
else if(z=2)
{
pt->modify_date();
}
else{pt->show_date;}
pt->bulletin();
}
else
{
pt=&admis;
cout<<"请你选择你对个人信息操作:设置请输入1,修改请输入2,显示请输入3"<<endl;
cin>>z;
if(z=1)
{
pt->set_date();
}
else if(z=2)
{
pt->modify_date();
}
else{pt->show_date;}
pt->bulletin();
}
return 0;