6_58.cpp
上传用户:zipjojo
上传日期:2009-07-20
资源大小:70k
文件大小:2k
源码类别:

文章/文档

开发平台:

C/C++

  1. # include <iostream.h>
  2. # include<iomanip.h>
  3. class stu
  4. {
  5. int no;
  6. char name[10];
  7. class cmarks
  8. {
  9.         float Eng;int xfEng;
  10. float Chi;int xfChi;
  11. float Mat;int xfMat;
  12. public:
  13. float aver;
  14. void setdata()
  15. {
  16. float En,Ch,Ma;
  17. int xfEn,xfCh,xfMa;
  18. cout<<"English mark:";   cin>>En; 
  19. setmarksE(En);
  20. cout<<"English credit:";  cin>>xfEn; 
  21. setxfE(xfEn);
  22. cout<<"Chinese mark:"; cin>>Ch; 
  23. setmarksC(Ch);
  24. cout<<"Chinese credit:"; cin>>xfCh; 
  25. setxfC(xfCh);
  26. cout<<"Maths mark:"; cin>>Ma; 
  27. setmarksM(Ma);
  28. cout<<"Maths credit:"; cin>>xfMa; 
  29. setxfM(xfMa);
  30. }
  31. void setmarksE(float E)
  32. {Eng=E;}
  33. void setxfE(int xfE)
  34. {
  35. xfEng=xfE;
  36. }
  37. void setmarksC(float C)
  38. {
  39. Chi=C;
  40. }
  41. void setxfC(int xfC)
  42. {
  43. xfChi=xfC;
  44. }
  45. void setmarksM(float M)
  46. {
  47. Mat=M;
  48. }
  49.         void setxfM(int xfM)
  50. {
  51. xfMat=xfM;
  52. }
  53.     float getEng()
  54. {
  55. return Eng;
  56. }
  57.         float getChi()
  58. {
  59. return Chi;
  60. }
  61. float getMat()
  62. { return Mat;
  63. }
  64.     float getave()
  65. {
  66. return (Eng*xfEng+Chi*xfChi+Mat*xfMat)/(xfEng+xfChi+xfMat);
  67. }
  68. }marks;
  69. public:
  70. void setstd()
  71. {
  72.    cout<<"NO:"; cin>>no;
  73.    cout<<"Name:"; cin>>name;
  74.            marks.setdata();
  75. }
  76. void disp1()
  77. {
  78. cout<<"NO.  ";
  79. cout<<"Name  ";
  80. cout<<"English mark  ";
  81. cout<<"Chinese mark  ";
  82. cout<<"maths mark  ";
  83.             cout<<"average mark  ";
  84. cout<<endl;
  85. }
  86. void disp2()
  87. {
  88. cout<<setiosflags(ios::left);
  89. cout<<setiosflags(ios::fixed);  //删除科学标记
  90.             cout<<setprecision(2);  //输出精度设置
  91. cout<<setw(5)<<no<<"  ";
  92. cout<<setw(6)<<name<<"  ";
  93. cout<<setw(12)<<marks.getEng()<<"  ";
  94. cout<<setw(12)<<marks.getChi()<<"  ";
  95. cout<<setw(10)<<marks.getMat()<<"  ";
  96. cout<<setw(10)<<marks.getave();
  97. }
  98. };
  99. void main()
  100. {
  101. int n;
  102. cout<<"请输入学生人数,n=";  //也可直接给定数组大小stu A[2];
  103. cin>>n;
  104.     stu *ptr=new stu[n]; //动态创建对象数组
  105. for(int i=0;i<n;i++)
  106. {
  107. ptr[i].setstd();
  108. }
  109.     ptr[0].disp1();
  110. for(i=0;i<n;i++)
  111. {
  112. ptr[i].disp2();
  113. cout<<endl;
  114. }
  115. delete[] ptr; //删除整个对象数组
  116. }