added double jump and sitting state
This commit is contained in:
parent
2e5c5a8dde
commit
90d07dde3f
148 changed files with 13050 additions and 0 deletions
27
term1/seminar04_templates/04_time/main.cpp
Normal file
27
term1/seminar04_templates/04_time/main.cpp
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
#include <iostream>
|
||||
#include "time.h"
|
||||
#include <string_view>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
using std::cout, std::endl, std::string, std::string_view, std::vector;
|
||||
|
||||
int main()
|
||||
{
|
||||
string t1s = "23:59:59";
|
||||
string_view t1sv = t1s;
|
||||
string t2s = "23:59:59";
|
||||
string_view t2sv = t2s;
|
||||
|
||||
Time t1 = t1sv;
|
||||
Time t2 = t2sv;
|
||||
cout << t1 + t2 << endl;
|
||||
|
||||
string tss = "23:59:59 23:59:59 23:59:59";
|
||||
string_view tssv = tss;
|
||||
vector < Time > tsv = getTimesFromString(tss);
|
||||
for (int i = 0, size = tsv.size(); i < size; ++i) {
|
||||
cout << tsv[i] << endl;
|
||||
}
|
||||
cout << sumTimes(tsv) << endl;
|
||||
}
|
||||
78
term1/seminar04_templates/04_time/time.cpp
Normal file
78
term1/seminar04_templates/04_time/time.cpp
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
#include "time.h"
|
||||
#include <string>
|
||||
#include <iomanip>
|
||||
#include <vector>
|
||||
|
||||
using std::cout, std::endl, std::vector, std::string_view, std::string;
|
||||
|
||||
Time::Time(int hours, int minutes, int seconds)
|
||||
{
|
||||
mHours = hours;
|
||||
mMinutes = minutes;
|
||||
mSeconds = seconds;
|
||||
}
|
||||
|
||||
Time::Time(string_view s)
|
||||
{
|
||||
string buf;
|
||||
buf = s.substr(0, 2);
|
||||
mHours = stoi(buf);
|
||||
buf = s.substr(3, 2);
|
||||
mMinutes = stoi(buf);
|
||||
buf = s.substr(6, 2);
|
||||
mSeconds = stoi(buf);
|
||||
}
|
||||
|
||||
Time::Time():Time(0, 0, 0)
|
||||
{
|
||||
};
|
||||
|
||||
Time Time::operator+(Time b) const
|
||||
{
|
||||
return Time((mHours + b.mHours + (mMinutes + b.mMinutes) / 60) % 24,
|
||||
(mMinutes + b.mMinutes +
|
||||
(mSeconds + b.mSeconds) / 60) % 60,
|
||||
(mSeconds + b.mSeconds) % 60);
|
||||
}
|
||||
|
||||
int Time::hours() const
|
||||
{
|
||||
return mHours;
|
||||
}
|
||||
|
||||
int Time::minutes() const
|
||||
{
|
||||
return mMinutes;
|
||||
}
|
||||
|
||||
int Time::seconds() const
|
||||
{
|
||||
return mSeconds;
|
||||
}
|
||||
|
||||
vector < Time > getTimesFromString(string_view s)
|
||||
{
|
||||
vector < Time > res;
|
||||
for (int i = 0, size = s.size(); i < size; i += 9) {
|
||||
res.push_back(Time(s.substr(i, 9)));
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
Time sumTimes(const vector < Time > &v)
|
||||
{
|
||||
Time res;
|
||||
for (int i = 0, size = v.size(); i < size; ++i) {
|
||||
res = res + v[i];
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
std::ostream & operator<<(std::ostream & out, Time t)
|
||||
{
|
||||
out << std::setw(2) << std::setfill('0') << t.mHours
|
||||
<< ":"
|
||||
<< std::setw(2) << std::setfill('0') << t.mMinutes
|
||||
<< ":" << std::setw(2) << std::setfill('0') << t.mSeconds;
|
||||
return out;
|
||||
}
|
||||
21
term1/seminar04_templates/04_time/time.h
Normal file
21
term1/seminar04_templates/04_time/time.h
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
#pragma once
|
||||
#include <string_view>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
using std::string_view, std::vector;
|
||||
|
||||
class Time {
|
||||
private:
|
||||
int mHours = 0, mMinutes = 0, mSeconds = 0;
|
||||
public:
|
||||
Time(int hours, int minutes, int seconds);
|
||||
Time();
|
||||
Time(string_view s);
|
||||
Time operator+(Time b) const;
|
||||
int hours() const; int minutes() const; int seconds() const;
|
||||
friend std::ostream& operator<<(std::ostream& out, Time t);
|
||||
};
|
||||
|
||||
Time sumTimes(const vector<Time>& v);
|
||||
vector<Time> getTimesFromString(string_view s);
|
||||
Reference in a new issue