C
chicky
#include <iostream.h>
#include <string.h>
class Tuniv
{
friend class Tlist;
private:
char lname[15];
char fname[15];
int age;
Tuniv *next;
public:
Tuniv(char *,char *,int);
Tuniv();
virtual void print();
virtual int get();
};
Tuniv::Tuniv(char *ln,char *fn,int a)
{
strcpy(lname,ln);
strcpy(fname,fn);
age=a;
next=0;
}
Tuniv::Tuniv()
{
lname[0]='\0';
fname[0]='\0';
age=0;
next=0;
}
void Tuniv::print()
{
cout<<lname<<" "<<fname<<endl;
cout<<"Age is:"<<age<<endl;
}
int Tuniv::get()
{
return 0;
}
class Tstu:public Tuniv
{
friend class Tlist;
private:
int burse;
public:
Tstu(char *,char *,int,int);
Tstu();
virtual int get();
virtual void print();
};
Tstu::Tstu(char *ln,char *fn,int a,int m):Tuniv(ln,fn,a),burse(m){}
Tstu::Tstu():Tuniv(),burse(0){}
int Tstu::get()
{
return(burse);
}
void Tstu::print()
{
Tuniv::print();
cout<<"Burse is:"<<burse<<endl<<endl;
}
class Tpro:public Tuniv
{
friend class Tlist;
private:
int pay;
int time;
public:
Tpro(char *,char *,int,int,int);
Tpro();
virtual int get();
virtual void print();
};
Tpro::Tpro(char *ln,char *fn,int a,int p,int t):Tuniv(ln,fn,a),pay(p),time(t){}
Tpro::Tpro():Tuniv(),pay(0),time(0){}
int Tpro::get()
{
return (pay+time*15);
}
void Tpro::print()
{
Tuniv::print();
cout<<"Pay is:"<<(pay+time*15)<<endl<<endl;
}
class Tlist
{
private:
Tuniv *head;
Tuniv *current;
int all;
public:
Tlist(){head=current=0;all=0;}
void insert(Tuniv *n);
void lprint();
};
void Tlist::insert(Tuniv *n)
{
if(head==0)
{
head=n;
current=n;
all+=n->get();
}
else
{
current->next=n;
current=n;
all+=n->get();
}
}
void Tlist::lprint()
{
Tuniv *now=head;
while(now!=0)
{
now->print();
now=now->next;
}
cout<<"All:"<<all<<endl;
}
void main()
{
Tlist people;
Tstu stu1("Zhang","Ping",21,1000);
Tstu stu2("Li","Ling",22,500);
Tpro pro1("Stel","Law",50,1000,30);
people.insert(&stu1);
people.insert(&stu2);
people.insert(&pro1);
people.lprint();
}
#include <string.h>
class Tuniv
{
friend class Tlist;
private:
char lname[15];
char fname[15];
int age;
Tuniv *next;
public:
Tuniv(char *,char *,int);
Tuniv();
virtual void print();
virtual int get();
};
Tuniv::Tuniv(char *ln,char *fn,int a)
{
strcpy(lname,ln);
strcpy(fname,fn);
age=a;
next=0;
}
Tuniv::Tuniv()
{
lname[0]='\0';
fname[0]='\0';
age=0;
next=0;
}
void Tuniv::print()
{
cout<<lname<<" "<<fname<<endl;
cout<<"Age is:"<<age<<endl;
}
int Tuniv::get()
{
return 0;
}
class Tstu:public Tuniv
{
friend class Tlist;
private:
int burse;
public:
Tstu(char *,char *,int,int);
Tstu();
virtual int get();
virtual void print();
};
Tstu::Tstu(char *ln,char *fn,int a,int m):Tuniv(ln,fn,a),burse(m){}
Tstu::Tstu():Tuniv(),burse(0){}
int Tstu::get()
{
return(burse);
}
void Tstu::print()
{
Tuniv::print();
cout<<"Burse is:"<<burse<<endl<<endl;
}
class Tpro:public Tuniv
{
friend class Tlist;
private:
int pay;
int time;
public:
Tpro(char *,char *,int,int,int);
Tpro();
virtual int get();
virtual void print();
};
Tpro::Tpro(char *ln,char *fn,int a,int p,int t):Tuniv(ln,fn,a),pay(p),time(t){}
Tpro::Tpro():Tuniv(),pay(0),time(0){}
int Tpro::get()
{
return (pay+time*15);
}
void Tpro::print()
{
Tuniv::print();
cout<<"Pay is:"<<(pay+time*15)<<endl<<endl;
}
class Tlist
{
private:
Tuniv *head;
Tuniv *current;
int all;
public:
Tlist(){head=current=0;all=0;}
void insert(Tuniv *n);
void lprint();
};
void Tlist::insert(Tuniv *n)
{
if(head==0)
{
head=n;
current=n;
all+=n->get();
}
else
{
current->next=n;
current=n;
all+=n->get();
}
}
void Tlist::lprint()
{
Tuniv *now=head;
while(now!=0)
{
now->print();
now=now->next;
}
cout<<"All:"<<all<<endl;
}
void main()
{
Tlist people;
Tstu stu1("Zhang","Ping",21,1000);
Tstu stu2("Li","Ling",22,500);
Tpro pro1("Stel","Law",50,1000,30);
people.insert(&stu1);
people.insert(&stu2);
people.insert(&pro1);
people.lprint();
}
小鸡无毛飞不高