异质链表保存学生信息
来源:互联网 发布:ug软件的教学大纲 编辑:程序博客网 时间:2024/05/22 05:23
#include<iostream>#include<string>using namespace std;class Student{public:virtual void get()=0;virtual void display()=0;string name;int num;};class UGraduate :public Student//本科生{public:void get(){cout << "姓名:"; cin >> name;cout << "学号:"; cin >> num; cout << "班级号:"; cin >> classnum;}void display();private:int classnum;};class Graduate :public Student//研究生{public:void get(){cout << "姓名:"; cin >> name;cout << "学号:"; cin >> num;; cout << "导师姓名:"; cin >> Tutor;}void display();private:string Tutor;};void UGraduate::display(){cout << "姓名:" << name;cout << "学号:"<< num;cout << "班级号:" <<classnum<<endl;}void Graduate::display(){cout << "姓名:"<< name;cout << "学号:"<< num;cout << "导师姓名:"<<Tutor;}template <typename T>class SList;template <typename T>class Node{friend class SList<T>;public:Node(T *data) :data(data), next(NULL){}private:T *data;Node<T> *next;};template < typename T>class SList{public:SList():head(NULL), tail(NULL){}void Insert(T *newNode){Node<T> *t = new Node<T>(newNode);if (!head){head = tail = t;length++;}else{tail->next = t;tail = t;length++;}}void Delete(){Node<T> *t = head;head = head->next;delete t;}void Print(){if (!head){cout << "链表空..." << endl;return;}Node<T> *t;for (t = head; t; t = t->next){t->data->display();}}private:int length;Node<T> *head;Node<T> *tail;};int main(){char c; UGraduate U; Graduate G;SList<Student> List;for (;;){cout << "创建学生:类型(U)本科生,(G)研究生,(E)结束:";cin >> c;if (c == 'E'){ cout << "销毁链表."<<endl; break; }else if (c == 'U' || c == 'G')switch (c){case 'U':U.get(); List.Insert(&U); break;case 'G':G.get(); List.Insert(&G); break;default: break;}else cout << "输入无效请重新输入:" << endl;}List.Print();List.Delete();List.Delete();return 0;}
0 0
- 异质链表保存学生信息
- 练习保存学生信息
- 保存学生信息
- 链表保存学生信息
- 用文件保存学生信息
- 用动态数组保存学生信息
- 实现学生信息的文件保存和读取
- C#源代码—使用哈希表保存学生信息
- 第十六周项目1用文件保存学生信息
- 【实战】学生信息保存到xm文件l中
- 用一个异质链表保存学生数据
- 学生信息
- 学生信息
- 学生信息
- 学生信息
- 学生信息
- 学生信息
- 学生信息
- struts2执行流程与拦截器介绍
- 墨水屏
- 11 装饰
- (转)Linux中gcc g++常用编译选项以及makefile的编写
- 取消Eclipse等号、分号、空格代码自动补全
- 异质链表保存学生信息
- 快速幂模板
- P91
- java基础篇——抽象类的特点简述
- SQLiteDatabase的CRUD操作实现
- iOS 的枚举
- 黑马程序员—C重点--总结一些琐碎的知识点
- 曲面屏幕手机
- Mac10.10重新安装PHP问题