Форум программистов, компьютерный форум CyberForum.ru

Конвертация времени в американский формат и обратно - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составьте блок-схему и программу(код и скриншот результата) вычисления значения выражения для данного натураль http://www.cyberforum.ru/cpp-beginners/thread1815786.html
Составьте блок-схему и программу(код и скриншот результата) вычисления значения выражения для данного натурального числа N: 4+8+12+ … +4∙N.
C++ Как можно сделать переполнение стека Всем привет, ребята, есть у меня код с микрософта, как переполнить стек. Но беда, не понимаю кое что, напишу в комментариях. void StackOverflow(int value) { char dataArray; // Вроде бы массив с заданным размером. Каким образом он используется cout << "Overflow: " << value << endl; // В рекурсии данной функции? Sleep(20); StackOverflow(value + 1); // рекурсия; И тут мы... http://www.cyberforum.ru/cpp-beginners/thread1815785.html
C++ Транспонировать целочисленную матрицу 5х5, т.е. отразить относительно главной диагонали
Транспонировать целочисленную матрицу 5х5, т.е. отразить относительно главной диагонали.
. Дан вектор {zi}, i = 1, …, 50. Вычислить длину этого вектора L=√Z1^2+Z2^2+.+Z50^2 C++
. Дан вектор {zi}, i = 1, …, 50. Вычислить длину этого вектора L=√Z1^2+Z2^2+...+Z50^2
C++ Переменная static и область видимости http://www.cyberforum.ru/cpp-beginners/thread1815773.html
Я думал, что переменная объявленная при помощи ключевого имени static существует всё время от её объявления и до завершения работы программы, а компилятор ругается на то, что переменной «stavar» не существует. Что я не так делаю? #include <iostream> int& frreference(int); int main(int argc, char **argv) { int a = 12; int &refb = frreference(a); ...
C++ Чтение строк из txt файлов Ну Например У меня есть txt файл и в нём есть 5 строк как прочитать и вывести не все 5 строчки а только 1 подробнее

Показать сообщение отдельно
Athena
1 / 1 / 0
Регистрация: 17.03.2015
Сообщений: 44

Конвертация времени в американский формат и обратно - C++

29.09.2016, 09:16. Просмотров 170. Ответов 8
Метки (Все метки)

есть задача: создать класс Time, в котором реализованы операции сложения, вычитания, сравнения, введения и выведения на екран. Возможность конвертации времени в американский формат и обратно, на пример 10:00 pm=22:00, 12:00 pm= 00:00. Вроде все написал, все работает, но преподу что то не нравится, говорит что код можно сделать лучше, вот только не говорит как. Можете посмотреть какие есть недочеты?

C++
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class Time{
private:
    int c,m;
public:
    Time (int clock=0, int min=0);
    int getC() const;
    int getM() const;
    void setC(int cl);
    void setM(int mn);
    Time plus(Time  &p) const;
    Time minus(Time const &p) const;
    int sravn(Time const &p) const;
    void conv_to_12();
    void conv_to_24(char *str); 
    ~Time(){}
};
 
void Time::conv_to_12() {
    if(c>=12) {
        c-=12;
        printf(" %02d:%02d pm\n", c, m);
    }
    else
        printf(" %02d:%02d am\n", c, m);
}
 
void Time::conv_to_24(char *str) {
    if (!strcmp(str, "pm"))
    {
        c += 12;
        printf(" %02d:%02d\n", c, m);
    }
    else if (!strcmp(str, "am"))
        printf(" %02d:%02d\n", c, m);
}
 
void Time::setC(int cl) {   c=cl; }
void Time::setM(int mn) {   m=mn; }
 
int Time::sravn(Time const &p) const {
    if(p.c>c||(p.c==c&&p.m>m)) 
        return 2;/*cout<<"vtoroye vremya bolshe vtorogo"<<endl;*/
    else return 1;/*cout<<"pervoye vremya bolshe pervogo"<<endl;*/
}
 
Time Time::plus (Time  & p) const {
    if (m+p.m>60) {
        return Time(c + p.c+1, m + p.m-60);
    }
    else return Time(c+p.c,m+p.m);
}
 
Time Time::minus(Time const &p) const {
    if(p.c>=c&&p.m>=m) {
        return Time(p.c-c,p.m-m);
    }
    else if(p.c>c&&p.m<m) {
        return Time(p.c-c-1,p.m-m+60);
    }
    else if(p.c<=c&&p.m<=m) {
        return Time(c-p.c,m-p.m);
    }
    else if(p.c<c&&p.m>m) {
        return Time(c-p.c-1,m-p.m+60);
    }
}
 
int Time::getC() const {return c;}
int Time::getM() const {return m;}
 
Time::Time(int clock,int min) : c(clock), m(min)
{ }
 
int main()
{
    Time p1(0,0),p2(0,0),p3(0,0),p4(0,0),p5(0,0),p6(0,0),p7(0,0);
    int cl,mn,cl1,mn1,cl2,mn2,cl3,mn3;
    char str[3]="";
    cout<<"Vvedite pervoe vremya: ";
    cin>>cl>>mn;
    cout<<endl;
    cout<<"Vvedite vtoroye vremya: ";
    cin>>cl1>>mn1;
    cout<<endl;
    p1.setC(cl), p1.setM(mn);
    cout<<"Pervoe vremya: "<<p1.getC()<<":"<<p1.getM()<<endl;
    p2.setC(cl1), p2.setM(mn1);
    cout<<endl;
    cout<<"Vtoroe vremya: "<<p2.getC()<<":"<<p2.getM()<<endl;
    cout<<endl;
    /////////////////////////////////////////////////////////////////////////////////////
    cout<<"Sloghenie: ";
    p3=p1.plus(p2);
    if(p3.getC()>=24) { cout<<"1 sutki "<<p3.getC()-24<<" chasov "<<p3.getM()<<" minut"<<endl; }
    else { cout<<p3.getC()<<" chasov "<<p3.getM()<<" minut"<<endl; }
    cout<<endl;
    /////////////////////////////////////////////////////////////////////////////////////
    cout<<"Vichitanie: ";
    p4=p1.minus(p2);
    cout<<p4.getC()<<" chasov "<<p4.getM()<<" minut"<<endl;
    cout<<endl;
    /////////////////////////////////////////////////////////////////////////////////////
    cout<<"Sravnenie: ";
    int x=0;
    x=p1.sravn(p2);
    cout<<"bolshe "<<x<<endl;
    cout<<endl;
    /////////////////////////////////////////////////////////////////////////////////////
    cout<<"Vvedite vremya v formate 24h: ";
    cin>>cl2>>mn2;
    cout<<endl;
    p6.setC(cl2), p6.setM(mn2);
    cout<<"Vremya dlya convertasii: "<<p6.getC()<<":"<<p6.getM()<<endl<<endl;
    cout<<"Otkonvertirovannoe vremya: ";
    p6.conv_to_12();
    cout<<endl;
    /////////////////////////////////////////////////////////////////////////////////////
    cout<<"Vvedite vremya v formate 12h: ";
    cin>>cl3>>mn3>>str;
    p7.setC(cl3), p7.setM(mn3);
    cout<<"Vremya dlya convertasii: "<<p7.getC()<<":"<<p7.getM()<<" "<<str<<endl<<endl;
    cout<<"Otkonvertirovannoe vremya: ";
    p7.conv_to_24(str);
    system("PAUSE");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru