补充这段代码:// clock.cpp // clock.h #include<iostream> using namespace std; class clockn{ int h,m,s; public: void input(){ char c[9]={0}; cin.getline(c,9); if(c[0]=='0')h=c[1]-'0';else {h=c[0]-'0'; h=10*h+c[1]- '0';} if(c[3]=='0')m=c[4]-'0';else {m=c[3]-'0'; m=10*m+c[4]- '0';} if(c[6]=='0')s=c[7]-'0';else {s=c[6]-'0'; s=10*s+c[7]- '0';} } void sub_in(clockn &a, clockn &b){ int j=0; if(a.s>b.s){s=a.s-b.s;j=0;}else{a.s+60-b.s;j=1;} if(a.m-j>b.m){m=a.m-j-b.m;j=0;}else{m=a.m-j+60-b.m;j=1;} h=a.h-j-b.h; } void sub(clockn &a, clockn &b){ bool flag; if(a.h>b.h){flag=true;} else if(a.h<b.h){flag=false;} else if(a.m>b.m){flag=true;} else if(a.m<b.m){flag=false;} else if(a.s>b.s){flag=true;} else if(a.s<b.s){flag=false;} else{h=0;m=0;s=0;} if(flag)sub_in(a,b); else sub_in(b,a); } void show(){ char c[9]="00:00:00"; c[0]=h/10+'0'; c[1]=h%10+'0'; c[3]=m/10+'0';
时间: 2024-02-18 21:02:04 浏览: 111
好的,这里是完整的代码:
```cpp
// clock.h
#include<iostream>
using namespace std;
class clockn{
int h,m,s;
public:
void input(){
char c[9]={0};
cin.getline(c,9);
if(c[0]=='0') h=c[1]-'0';
else {
h=c[0]-'0';
h=10*h+c[1]-'0';
}
if(c[3]=='0') m=c[4]-'0';
else {
m=c[3]-'0';
m=10*m+c[4]-'0';
}
if(c[6]=='0') s=c[7]-'0';
else {
s=c[6]-'0';
s=10*s+c[7]-'0';
}
}
void sub_in(clockn &a, clockn &b){
int j=0;
if(a.s>b.s) {
s=a.s-b.s;
j=0;
} else {
s=a.s+60-b.s;
j=1;
}
if(a.m-j>b.m) {
m=a.m-j-b.m;
j=0;
} else {
m=a.m-j+60-b.m;
j=1;
}
h=a.h-j-b.h;
}
void sub(clockn &a, clockn &b){
bool flag;
if(a.h>b.h) {
flag=true;
} else if(a.h<b.h) {
flag=false;
} else if(a.m>b.m) {
flag=true;
} else if(a.m<b.m) {
flag=false;
} else if(a.s>b.s) {
flag=true;
} else if(a.s<b.s) {
flag=false;
} else {
h=0;
m=0;
s=0;
}
if(flag) sub_in(a,b);
else sub_in(b,a);
}
void show(){
char c[9]="00:00:00";
c[0]=h/10+'0';
c[1]=h%10+'0';
c[3]=m/10+'0';
c[4]=m%10+'0';
c[6]=s/10+'0';
c[7]=s%10+'0';
cout<<c<<endl;
}
};
```
这个类表示一个时钟,包含时、分、秒三个属性。类中定义了三个方法:
- `input()`:从标准输入读入一个格式为 `hh:mm:ss` 的字符串,将其解析为时、分、秒,并保存在对象的属性中。
- `sub(clockn &a, clockn &b)`:计算两个时钟对象 `a` 和 `b` 之间的时间差,将结果保存在当前对象中。具体实现过程是先比较两个时钟的大小,然后再通过 `sub_in` 方法计算时间差。
- `show()`:将当前对象表示的时间以 `hh:mm:ss` 的格式输出到标准输出。
这个类的实现比较简单,主要是通过字符串解析和整数计算来实现时钟的计算。
阅读全文