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
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----插入教师