stonwth.h
#ifndef STONEWT_h_ #define STONEWT_h_ #include <iostream> using namespace std; enum Mode{STONE,POUNDS};//方便main115,cpp class Stonewth { private: enum {Lbs_per_stn=14}; Mode mode; int stone; double pds_left; double pounds; public: Stonewth(double lbs) { mode=POUNDS;//用于控制输出什么格式 stone=int(lbs)/Lbs_per_stn; pds_left=int(lbs)%Lbs_per_stn+lbs-int(lbs); pounds=lbs; }; Stonewth(){ mode=POUNDS;//默认为镑 stone=pds_left=pounds=0; }; Stonewth(int stn,double lbs) { mode=POUNDS; stone=stn; pds_left=lbs; pounds=stn*Lbs_per_stn+lbs; }; void setMode(Mode form=STONE) { if(form==STONE) mode=STONE; else if(form==POUNDS) mode=POUNDS; else cout<<"Invail mode !"<<endl; } Stonewth operator+(const Stonewth &s)const//这里我就选最简单的了 { double newpounds=pounds+s.pounds; return Stonewth(newpounds); } Stonewth operator-(const Stonewth &s)const { double newpounds=pounds-s.pounds; return Stonewth(newpounds); } Stonewth operator*(double m)const//我这里选择重载常数* { double newpounds=pounds*m; return Stonewth(newpounds); } //11.6 bool operator<(const Stonewth &s) { return pounds>s.pounds; } bool operator>(const Stonewth &s) { return s.pounds<pounds; } friend ostream& operator<<(ostream &os,const Stonewth &s) { if(s.mode==STONE) os<<s.stone<<" stone!"<<endl; else if(s.mode==POUNDS) os<<s.pounds+s.pds_left<<" pounds!"<<endl; else os<<"error!"<<endl; return os; } }; #endif
main116.cpp
#include <iostream> #include "stonewt.h" using namespace std; void main116() { Stonewth s[6]={10,9.5,19}; //Stonewth s1=10; //cout<<s1<<endl; Stonewth temp(11); for(int i=0;i<3;i++) cout<<s[i]<<endl; for(int i=3;i<6;i++) { cout<<"enter the pounds:"<<endl; double in; cin>>in; s[i]=in; } //没有重载=,懒得重载了,这里会有点问题,自己改下 Stonewth max=-999; Stonewth min=999; for(int i=0;i<6;i++) { if(max<s[i]) max=s[i]; if(min>s[i]) min=s[i]; if(s[i]>temp) cout<<s[i]<<endl; } cout<<"max="<<max<<" min="<<min<<endl; cin.get(); cin.get(); }
——————————————————————————————————————————————————
//写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。
转载请注明出处:https://www.royalchen.com/
author:royalchen
Email:royalchen@royalchen.com
———————————————————————————————————————————————————