Ex7_6.cpp
上传用户:wuzhousb
上传日期:2022-07-12
资源大小:380k
文件大小:2k
源码类别:

书籍源码

开发平台:

Visual C++

  1. //【例7.6】以学生类作为链表的数据类,完成学生档案的管理。
  2. #include<string>
  3. using namespace std;
  4. #include "Ex7_6.h"
  5. class  student{
  6. int   id ;           //学号
  7. string name;         // 姓名
  8. char  sex;          // 性别
  9. int   age;          // 年龄
  10. string  address;      //家庭地址
  11. float  eng, phy, math, electron;     //英语,物理,数学和电子学成绩
  12. public:
  13. student(int=0,string="",char='',int=0,string="",float=0.0,float=0.0,float=0.0,float=0.0);
  14. bool operator<(student ele){return id<ele.id;}
  15. bool operator!=(student ele){return id!=ele.id;}
  16. void show(){cout<<id<<'t'<<name<<'t'<<sex<<'t'<<age<<'t'<<address<<'t'
  17. <<eng<<'t'<<phy<<'t'<<math<<'t'<<electron<<endl;}
  18. };
  19. student::student(int i,string n,char s,int a,string add,float en,float ph,float ma,float ele){
  20. id=i;           //学号
  21. name=n;         // 姓名
  22. sex=s;          // 性别
  23. age=a;          // 年龄
  24. address=add;      //家庭地址
  25. eng=en; phy=ph; math=ma, electron=ele;     //英语,物理,数学和电子学成绩
  26. }
  27. int main(){
  28. const int h=4;
  29. int i,j;
  30. Node<student> * P1;
  31. List<student> list1,list2;
  32. student n[h]={student(6004327,"张菲",'m',19,"北京路58号",80,85,90,78),
  33. student(6004121,"关雨",'w',19,"天津路64号",88,75,91,68),
  34. student(6004118,"刘蓓",'w',18,"上海路37号",78,95,81,88),
  35. student(6004219,"赵昀",'m',18,"重庆路95号",78,95,81,88),
  36. };
  37. for(i=0;i<h;i++){
  38. P1=list1.CreatNode(n[i]);
  39. list1.InsertFront(P1);//向前生成list1
  40. P1=list2.CreatNode(n[i]);
  41. list2.InsertRear(P1);                        //向后生成list2
  42. }
  43. list1.PrintList();
  44. cout<<"list1长度:"<<list1.Length()<<endl;
  45. list2.PrintList();
  46. cout<<"请输入一个要求删除的学生学号"<<endl;
  47. cin>>j;
  48. P1=list1.Find(j);   //学号由构造函数转换为学生类
  49. if(P1!=NULL){
  50. P1=list1.DeleteNode(P1);
  51. delete P1;
  52. list1.PrintList();
  53. cout<<"list1长度:"<<list1.Length()<<endl; 
  54. }
  55. else cout<<"未找到"<<endl;
  56. list1.MakeEmpty();    //清空list1
  57.   for(i=0;i<h;i++){
  58. P1=list1.CreatNode(n[i]);
  59. list1.InsertOrder(P1);//升序创建list1
  60. }
  61. list1.PrintList();
  62. return 0;
  63. }