Visual_C++面向对象程序设计教程与实验(第二版)清华大学出版社1(8)

2019-06-02 12:35

String demo4; demo4=demo3; demo4.display();

if(demo1>demo2) cout<<\else cout<<\

if(demo1!=demo2) cout<<\else cout<<\

if(demo3!=demo4) cout<<\else cout<<\

}

程序的运行结果为:

The string is :Visual c++ The string is :6.0

The string is :Visual c++6.0 The string is :Visual c++6.0 demo1>demo2 demo1!=demo2 demo3==demo4

4. 现有一个学校管理系统,在其中包含的处理信息有三方面,即教师、学生和职工。利用一个菜单来实现对它们的操作。要求使用虚函数。

#include #include #include class person{

friend class list; protected:

char name[20]; int age;

char add[40]; char tele[15];

static person *ptr; person *next; public:

person (char *,int,char *,char *); virtual void print(); virtual void insert(){}; };

class student:public person{ friend class list; int level;

float grade_point_average; public:

student(char *,int,char *,char *,int,float);

void print(); void insert(); };

class teacher:public person{

friend class list; float salary; public:

teacher(char *,int,char *,char *,float); void print(); void insert(); };

class staff:public person{ friend class list; float hourly_wages; public:

staff(char *,int,char *,char *,float); void print(); void insert(); };

class list{

person *root; public:

list(){root=0;}

void insert_person(person *node); void remove(char *name); void print_list(); };

person::person(char *name,int age,char *add,char *tele) {

strcpy(person::name,name); strcpy(person::add,add); strcpy(person::tele,tele); person::age=age; next=0; }

void person::print() {

cout<<\ cout<<\ cout<<\

cout<<\}

student::student(char *name,int age,char *add,char *tele,int grade_point_average):person(name,age,add,tele)

level,float {

student::level=level;

student::grade_point_average=grade_point_average; }

void student::print() {

person::print();

cout<<\ cout<<\}

void student::insert() {

ptr=new student(name,age,add,tele,level,grade_point_average); }

teacher::teacher(char *name,int age,char *add,char *tele,float salary):person(name,age,add,tele)

{

teacher::salary=salary; }

void teacher::print() {

person::print();

cout<<\}

void teacher::insert() {

ptr=new teacher(name,age,add,tele,salary); }

staff::staff(char *name,int age,char *add,char *tele,float hourly_wages):person(name,age,add,tele)

{

staff::hourly_wages=hourly_wages; }

void staff::print() {

person::print();

cout<<\}

void staff::insert() {

ptr=new staff(name,age,add,tele,hourly_wages); }

void list::insert_person(person *node) {

char key[20];

strcpy(key,node->name); person *curr_node=root; person *previous=0;

while(curr_node!=0&&strcmp(curr_node->name,key)<0) {

previous=curr_node;

curr_node=curr_node->next; }

node->insert();

node->ptr->next=curr_node; if(previous==0) root=node->ptr;

else previous->next=node->ptr;

}

void list::remove(char *name) {

person *curr_node=root; person *previous=0;

while(curr_node!=0&&strcmp(curr_node->name,name)!=0) {

previous=curr_node;

curr_node=curr_node->next; }

if(curr_node!=0&&previous==0) {

root=curr_node->next; delete curr_node; }

else if (curr_node!=0&&previous!=0) {

previous->next=curr_node->next; delete curr_node; }

}

void list::print_list() {

person *cur=root; while(cur!=0) {

cur->print(); cur=cur->next; }

}

person *person::ptr=0; void main() {

list people;

student stu(\ teacher tea(\ staff sta(\ int input; for(;;) {

cout<<\插入学生\ cout<<\插入教师\ cout<<\插入职工\ cout<<\删除职工\ cout<<\删除学生\ cout<<\删除教师\ cout<<\显示信息\ cout<<\退出\ cin>>input; switch(input) {

case 1:people.insert_person(&stu);break; case 2:people.insert_person(&tea);break; case 3:people.insert_person(&sta);break; case 4:people.remove(\ case 5:people.remove(\ case 6:people.remove(\

case 7:people.print_list();cout<

}

程序的部分运行结果: 1----插入学生 2----插入教师 3----插入职工 4----删除职工 5----删除学生 6----删除教师 7----显示信息 0----退出 2

1----插入学生 2----插入教师


Visual_C++面向对象程序设计教程与实验(第二版)清华大学出版社1(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:简单分类法及其应用 说课稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: