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;
}
#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;
}
相关文章推荐
- DELL服务器装2003系统
- 网站导航如何优化
- 【数据结构】用C++编写队列及基本操作(包括插入,出队列,摧毁,清空等等)
- PyQt
- 图书管理系统测试计划说明书
- Font-Awesome最新版完整使用教程
- Font-Awesome最新版完整使用教程
- 如何在一个网站或者一个页面规划JS
- ADO.NET学习系列(三)----做一个登录案例
- [Java5新特性]反射
- $.ajax()方法详解
- [leetcode] ZigZag Conversion
- UITouch事件处理机制
- dubbo发布web服务实例
- [Java5新特性]反射
- 一个项目紧张结束之后
- 【百度之星初赛2】连接的管道(Kruskal最小生成树)
- http、TCP/IP协议与socket之间的区别
- 增强现实第一步:如何使用相机定标结果配置OpenGL流水线
- C#登录成功提示和登录成功后进入新的窗口界面代码: