您的位置:首页 > 其它

5月26日作业

2015-05-31 22:57 267 查看
#include<stdio.h>                                                                                                                                                                                                                                                
                                 #include <iostream>

#include<string>

using namespace std;

class student{

public:      

  string name;

  string num;

  string duixiang;

  student(string n,string m,string d):name(n),num(m),duixiang(d){}

virtual void display(){}

    char dept[100];

};

class benkesheng:public student

{

public:
virtual void creatlb(){}

benkesheng(string n,string m,string d):student(n,m,d){}

virtual void display()

 {
cout<<"正在创建的是";
cout<<"本科生:"<<endl;

    cout<<"学号:"<<num<<endl;

    cout<<"姓名:"<<name<<endl;

 }

string getname()

{

 return name;

}

};

class yanjiusheng:public student{

public:   
string ds; 
virtual void creatlb(){}

    yanjiusheng(string n,string m,string d,string s):student(n,m,d),ds(s){}

virtual void display()

{

cout<<"完成创建的是:"<<endl;

cout<<"研究生:"<<endl;

cout<<"学号:"<<num<<endl;

cout<<"姓名:"<<name<<endl;

cout<<"导师姓名:"<<ds<<endl;

}

};

typedef struct _studentlist{        

student *data;     

struct _studentlist * next;

}studentlist,*studentlis;

int creatklb(studentlist *&L)

{

L= new studentlist; 

if(!L) 

{   

 return 0;  

}   

L->next = NULL;   

return 1; 

}

studentlis CreateList(studentlist *&L,student **ptr)   

{

studentlist * r;

r=L;

studentlist* p = new studentlist;  

p->data=*ptr; 

p->next = NULL;  

r->next = p;

L=r;

return L; 



void displays(student *ptr)

{

ptr->display();

}

studentlis caidan(studentlist *&l,student **ptr)

{

string n1,m1,d1,d2;
char slect;

do 

{

cout<<"创建学生,类型(c)本科生,(g)研究生,(e)结束,(x)遍历链表内容"<<endl;

cin>>slect;

switch(slect)

{

case 'c':

cout<<"本科生:"<<endl;

cout<<"学号:";

cin>>n1;

cout<<"姓名:";

cin>>m1;

d1="bks";

*ptr=new benkesheng(m1,n1,d1);

CreateList(l,ptr); 

cout<<"创建成功";

displays(*ptr);

break;

case 'g':

cout<<"研究生:"<<endl;

cout<<"学号:";

cin>>n1;

cout<<"姓名:";

cin>>m1;

cout<<"导师姓名:";

cin>>d2;

d1="bks";

*ptr=new yanjiusheng(m1,n1,d1,d2);

CreateList(l,ptr);

cout<<"创建成功";

displays(*ptr);

break;

case 'e':

break;

case 'x':
while(l->next )

{

l=l->next;

l->data->display();

}

}

}

while(slect!='e');

return l;

}

int main()

{

studentlist *l;

student *ptr;

creatklb(l);

caidan(l,&ptr);

return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: