菜鸟的博客

纵有疾风起,人生不言弃。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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 }
复制代码

 

posted on   hhmzd233  阅读(14)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示