- •Содержание:
- •Введение.
- •Задача 1(№127)
- •Текст программы:
- •Задача 2(№133)
- •Текст программы:
- •Задача 3(№145)
- •Текст программы:
- •Задача 4(№161)
- •Текст программы:
- •Задача 5(№172)
- •Текст программы:
- •Задача 6(№177)
- •Текст программы:
- •Задача 7(№187)
- •Текст программы:
- •Текст программы:
- •Задача 9(№200)
- •Текст программы:
- •Список используемой литературы
Задача 9(№200)
Постановка задачи: Перегрузить операторы ввода и вывода для структуры Time(программа 40)
Алгоритм решения: Перегрузим операторы ввода и вывода так, чтобы координаты времени программа выдавала сама, затем мы их меняли и начальному времени присваивались новые координаты. Это будет время начала первой пары. Создаем функции для вычисления расписания времени.
Текст программы:
#include<iostream>
using namespace std;
struct Time{ //Время суток
friend ostream& operator<<(ostream&,Time&); //Оператор вывода
friend istream& operator>>(istream&,Time&); //Оператор ввода
unsigned int h,m; //Часы, минуты
void set(int hh,int mm) //Установка времени
{h=hh;m=mm;}
void AddHour(int n); //Добавить n часов
void AddMin(int n); //Добавить n минут
void Print(); //Печать времени
};
ostream& operator<<(ostream& outs,Time& d) //Перегрузка оператора вывода
{
outs<<"("<<d.h<<","<<d.m<<")";
return outs; //Возвращение потока
}
istream& operator>>(istream& ins,Time& d) //Перегрузка оператора ввода
{
return ins>>d.h>>d.m; //Чтение данных из потока и возвращение потока
}
void Time::AddHour(int n) //Добавить n часов
{
h=(h+n)%24;
}
void Time::AddMin(int n) //Добавить n минут
{
h=(h+(m+n)/60)%24;
m=(m+n)%60;
}
void Time::Print() //Печать времени
{
if(h<10)cout<<'0'<<h<<':';
else cout<<h<<':';
if(m<10)cout<<'0'<<m<<' ';
else cout<<m<<' ';
}
#include<conio.h>
void main()
{
Time Pair; //Время начала и конца очередной пары
cout<<"\n Koordinati vremeni posle ix sozdania Pair="<<Pair<<endl;
cout<<"Vvedite koordinati vremeni ";
cin>>Pair;
cout<<"Teper koordinati vremeni Pair= "<<Pair<<endl;
int Phour=1,Pmin=30; //Длительность пары в часах и минутах
int interval; //Длительность перерыва
int hh,mm;
int n; //Количество пар
cout<<"Vvedi dlitel'nost' pereriva";
cin>>interval;
cout<<"kol-vo par:";
cin>>n;
cout<<"nachalo konec\n"; //Заголовок таблицы
for(int i=0;i<n;i++)
{
Pair.Print(); //Печать времени начала пары
Pair.AddHour(Phour); //Расчет конца пары
Pair.AddMin(Pmin); //Расчет конца пары
Pair.Print(); //Печать конца пары
cout<<'\n';
Pair.AddMin(interval);
Pair.Print(); //Печать конца пары
getch();
}
}