};
TeacherList.cpp
// TeacherList.cpp: implementation of the CTeacherList class.
//
//////////////////////////////////////////////////////////////////////
#include "TeacherList.h"
#include "TeacherLink.h"
#include "Node.h"
#include
#include
#include
using namespace std; ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CTeacherList::CTeacherList() { header=CTeacherList::CreateLink(); } CTeacherList::~CTeacherList() { } void CTeacherList::TeacherListAdd(void *data) { CTeacherLink::TeacherLinkAdd(&header,data); return ; } void CTeacherList::PrintList(pfun print_teacher) { CTeacherLink::PrintTeacherLink(header,print_teacher); return ; }
Teacher.h
#include "StudentLink.h"
#include "Node.h"
#include "Person.h"
class CTeacher :public CPerson
{
public:
int TeacherNumber; //教师编号
char *TeacherTitle; //教师职称
char *TeacherName; //教师姓名
CTeacher();
virtual ~CTeacher();
CTeacher(int HumanAge,int TeacherNumber,char *TeacherName,char *TeacherTitle); //含参数构造函数
void PrintTeacher(); //打印教师
};
Teacher.cpp
// Teacher.cpp: implementation of the CTeacher class.
//
//////////////////////////////////////////////////////////////////////
#include "Teacher.h"
#include
#include
#include
using namespace std; ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CTeacher::CTeacher() { } CTeacher::~CTeacher() { } CTeacher::CTeacher(int HumanAge,int TeacherNumber,char *TeacherName,char *TeacherTitle):CPerson(HumanAge) { this->TeacherName=new char[strlen(TeacherName)+1]; strcpy(this->TeacherName,TeacherName); this->TeacherNumber=TeacherNumber; this->TeacherTitle=new char[strlen(TeacherTitle)+1]; strcpy(this->TeacherTitle,TeacherTitle); return ; } void CTeacher::PrintTeacher() { cout<<"Teacher'number is "<
TeacherNumber<<" Teacher's Name is "<
TeacherName<<" Teacher's Title is "<
TeacherTitle<
main.cpp文件
#include "Course.h"
#include "Student.h"
#include "Scollege.h"
#include "Primary.h"
#include "StudentList.h"
#include "Teacher.h"
#include "TeacherList.h"
#include
#include
#include
using namespace std; #define max 2 void print_student(void *data) //应用层打印学生函数 { CStudent *stu=(CStudent *)data; stu->print_studentHuman(); return ; } void print_teacher(void *data) //应用层打印教师函数 { CTeacher *teach=(CTeacher *)data; teach->PrintTeacher(); return ; } int main() { int i; cout<<"学生和教师信息系统"<
>stu; for(i=0;i
>list2[i].StudentNumber; cout<
>buffer4; list2[i].StudentName=new char[strlen(buffer4)+1]; strcpy(list2[i].StudentName,buffer4); cout<
>list2[i].HumanAge; cout<
>teach; for(i=0;i
>list3[i].HumanAge; cout<
>list3[i].TeacherNumber; cout<
>buffer5; list3[i].TeacherName=new char[strlen(buffer5)+1]; strcpy(list3[i].TeacherName,buffer5); cout<
>buffer6; list3[i].TeacherTitle=new char[strlen(buffer6)+1]; strcpy(list3[i].TeacherTitle,buffer6); cout<
实现以上增加和打印功能的信息系统,运用到抽象类、继承、链表等C++中常见的知识和数据结构,以下是运行效果:






