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

书籍源码

开发平台:

Visual C++

  1. /*9.1 重载学生类的"<<"和">>"运算符。*/
  2. #include<fstream>
  3. #include<iostream>
  4. #include<string>
  5. #include<iomanip>
  6. using namespace std;
  7. class  student{
  8. int   id ;           //学号
  9. string name;         // 姓名
  10. char  sex;          // 性别
  11. int   age;          // 年龄
  12. string  address;      //家庭地址
  13. float  eng, phy, math, electron;     //英语,物理,数学和电子学成绩
  14. public:
  15. student(int=0,string="#",char='#',int=0,string="#",float=0,float=0,float=0,float=0);
  16. friend ostream&operator<<(ostream&dest,student&st);   //重载插入运算符
  17. friend istream&operator>>(istream&sour,student&st);   //重载提取运算符
  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. ostream&operator<<(ostream&dest,student&st){   //重载插入运算符
  28. dest<<st.id<<'t'<<st.name<<'t'<<st.sex<<'t'<<st.age<<'t'<<st.address<<'t'
  29. <<st.eng<<'t'<<st.phy<<'t'<<st.math<<'t'<<st.electron<<endl;
  30. return dest;
  31. }
  32. istream&operator>>(istream&sour,student&st){   //重载提取运算符
  33. cout<<"请输入学号:"<<endl;
  34. sour>>st.id;
  35. cout<<"请输入姓名:"<<endl;
  36. sour>>st.name;
  37. cout<<"请输入性别:"<<endl;
  38. sour>>st.sex;
  39. cout<<"请输入年龄:"<<endl;
  40. sour>>st.age;
  41. cout<<"请输入地址:"<<endl;
  42. sour>>st.address;
  43. cout<<"请输入英语、物理、数学、电子各科成绩:"<<endl;
  44. sour>>st.eng>>st.phy>>st.math>>st.electron;
  45. return sour;
  46. }
  47. int main(){
  48. student st1,st2(2104105,"陈英",'m',19,"黄山路380号",89,78,90,96);
  49. cin>>st1;
  50. cout<<st1<<st2;
  51. return 0;
  52. }