2023.4.26
1 #include <iostream> 2 using namespace std; 3 //设计一款电子钟类,用于显示时、分、秒 4 //1.含有形参有默认值的默认构造函数; 5 //2.重载 前缀++ 和 后缀—用于调整时间,每次调整均对秒进行调整,若秒满60,则分加1,若分满60则时加1,时满24,则清零重新开始; 6 //3.重载插入运算符 >> 用于输入(设定)时间; 7 //4.重载插入运算符 << 用于输出时间。 8 class Clock 9 { 10 public: 11 Clock(int hour ,int minute ,int second ); 12 Clock& operator++(); 13 Clock& operator_(); 14 friend istream& operator>>(istream& cin,Clock &c); 15 friend ostream& operator<<(ostream& cout,Clock &c); 16 private: 17 int hour; 18 int minute; 19 int second; 20 }; 21 Clock::Clock(int hour = 0,int minute = 0,int second = 0) 22 { 23 this->hour = hour; 24 this->minute = minute; 25 this->second = second; 26 } 27 Clock&Clock::operator++() 28 { 29 second++; 30 if(second>=60) 31 { 32 second-=60; 33 minute++; 34 if(minute>=60) 35 { 36 minute-=60; 37 hour = (hour+1)%24; 38 } 39 } 40 return *this; 41 } 42 43 istream& operator>>(istream& cin,Clock &c) 44 { 45 cin>>c.hour; 46 cin>>c.minute; 47 cin>>c.second; 48 return cin; 49 } 50 ostream& operator<<(ostream& cout,Clock &c) 51 { 52 cout<<c.hour<<":"<<c.minute<<":"<<c.second<<endl; 53 return cout; 54 } 55 void test() 56 { 57 Clock c; 58 cin>>c; 59 ++c; 60 cout<<c<<endl; 61 } 62 int main() 63 { 64 test(); 65 return 0; 66 }
1 //实验五任务五 2 #include <iostream> 3 using namespace std; 4 //定义一个分数类,包含分子、分母 5 //实验要求: 6 //1.含有无参的默认构造函数,并进行构造函数的重载; 7 //2.重载分数的加法+、减法-、数乘*这三运算符; 8 //3.重载分数的输入和输出运算符; 9 //4.重载分数的关系运算符==,!=,>=,<=; 10 //5.定义约简函数,使分子分母没有公因子。 11 //fraction分数,numerator分子,denominator分母 12 class Fraction 13 { 14 public: 15 Fraction(int num = 0,int den = 0); 16 friend Fraction& operator+(Fraction &f1,Fraction &f2); 17 friend Fraction& operator-(Fraction &f1,Fraction &f2); 18 friend Fraction& operator*(Fraction &f1,Fraction &f2); 19 friend bool operator==(Fraction &f1,Fraction &f2); 20 friend bool operator!=(Fraction &f1,Fraction &f2); 21 friend bool operator>=(Fraction &f1,Fraction &f2); 22 friend bool operator<=(Fraction &f1,Fraction &f2); 23 friend istream & operator>>(istream &cin,Fraction &f); 24 friend ostream & operator<<(ostream &cout,Fraction &f); 25 friend Fraction& sim(Fraction &f); 26 private: 27 int num; 28 int den; 29 }; 30 Fraction::Fraction(int num,int den) 31 { 32 this->num = num; 33 this->den = den; 34 } 35 Fraction& operator+(Fraction &f1,Fraction &f2) 36 { 37 Fraction temp; 38 temp.num = f1.num + f2.num; 39 temp.den = f1.den + f2.den; 40 return temp; 41 } 42 Fraction& operator-(Fraction &f1,Fraction &f2) 43 { 44 Fraction temp; 45 temp.num = f1.num - f2.num; 46 temp.den = f1.den - f2.den; 47 return temp; 48 } 49 Fraction& operator*(Fraction &f1,Fraction &f2) 50 { 51 Fraction temp; 52 temp.num = f1.num * f2.num; 53 temp.den = f1.den * f2.den; 54 return temp; 55 } 56 bool operator==(Fraction &f1,Fraction &f2) 57 { 58 if(f1.num == f2.num && f1.den == f2.den) 59 { 60 return true; 61 } 62 else 63 { 64 return false; 65 } 66 } 67 bool operator!=(Fraction &f1,Fraction &f2) 68 { 69 if(f1.num == f2.num && f1.den == f2.den) 70 { 71 return false; 72 } 73 else 74 { 75 return true; 76 } 77 } 78 bool operator>=(Fraction &f1,Fraction &f2) 79 { 80 double x = f1.num/f1.den; 81 double y = f2.num/f2.den; 82 if(x>=y) 83 { 84 return true; 85 } 86 else 87 { 88 return false; 89 } 90 } 91 bool operator<=(Fraction &f1,Fraction &f2) 92 { 93 double x = f1.num/f1.den; 94 double y = f2.num/f2.den; 95 if(x<=y) 96 { 97 return true; 98 } 99 else 100 { 101 return false; 102 } 103 } 104 istream & operator>>(istream &cin,Fraction &f) 105 { 106 cin>>f.num; 107 cin>>f.den; 108 return cin; 109 } 110 ostream & operator<<(ostream &cout,Fraction &f) 111 { 112 cout<<f.num<<endl; 113 cout<<"-"<<endl; 114 cout<<f.den<<endl; 115 return cout; 116 } 117 Fraction& sim(Fraction &f) 118 { 119 int max,min; 120 if(f.num>f.den) 121 { 122 max = f.num; 123 min = f.den; 124 } 125 else 126 { 127 max = f.den; 128 min = f.num; 129 } 130 int a,b; 131 while(1) 132 { 133 int a = max%min; 134 if(a == 0) 135 break; 136 max = min; 137 min = a; 138 } 139 f.num = f.num/min; 140 f.den = f.den/min; 141 return f; 142 } 143 void test() 144 { 145 Fraction f1,f2; 146 cin>>f1; 147 cin>>f2; 148 if(sim(f1) == sim(f2)) 149 { 150 cout<<"f1和f2相等"<<endl; 151 } 152 cout<<f1<<endl; 153 cout<<f2<<endl; 154 } 155 int main() 156 { 157 test(); 158 return 0; 159 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?