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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
олег ширшиков
Сообщений: n/a
#1

Реализовать классы, осуществляющие выдачу в поток и чтение из потока информации в различных форматах - C++

26.12.2012, 21:32. Просмотров 253. Ответов 0
Метки нет (Все метки)

помогите пожалуйста: нужен код до пятницы


задание следующее:на основе класса время реализуйте классы осуществляющие выдачу в поток и чтение из потока информации в различных форматах рассмотрите следующие классы:
1) время с разделителем пример (12:34:23)
2)12 часовой формат пример (4:45:56 пп)

вот мой класс:

тестовая программа:
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
#include<stdio.h>
#include <iostream>
#include "execution.h"
 
using namespace std;
 
void otvetsravnenie(int n)        //fynkzia  vidathi soobsheniy 
{
  
   if(n==0)
      {
    cout<<"time 1<time 2"<<endl;
    
      }
     if(n==1)
      {
        cout<<"time 1> time 2."<<endl;
              }
                if(n==2)
                 {
                    cout<<"time 1= time 2"<<endl;
                     }
                                  }
  
 
int main(void)
{
cout << "Input time 1:hour , minute , secund" << endl;
               
    
Time Time1;      //objavlenie objekta klassa     // objavlenie peremennoi classa    object klassa s imenem time 1
cin>>Time1;          //potokoviy vvod
bool f= Time1.proverka();  // proverka pravilnosty vvoda 
if(f==true)
   {
     //Time1.korrect();
     cout<< Time1<<endl;  // potokoviy vivod
         }
           else
             {
           cout<<"oshibka vvoda"<<endl;
              
              }
        
         
  
   
                
                
cout << "Input time 2: hour,minute,secund" << endl;
                
Time Time2;//objavlenie objekta klassa     // objavlenie peremennoi classa    object klassa s imenem time 1
 
cin>>Time2;         //potokoviy vvod
bool t= Time2.proverka();   // proverka pravilnosty vvoda 
if(t==true)
    {    
      //Time2.korrect();
       cout<< Time2<<endl;      // potokoviy vivod
 
         
           int n=Time2.sravnenie(Time1);   // vizov sravnenia  
       otvetsravnenie( n);     //  vizov vidathi soobshenia
        
         cout<<"vibery deistvie  (1)-time1+time2    (2)- time 1-time 2"<<endl;
         int x;
         cin>> x;
        
         switch(x)
        
        
        {
           case 1:
              {
                    Time Time3;   //object
                     Time3=Time1+Time2;  // slojenie  objectov
                       Time3.korrect();  //  vizov korrectirovki
                       
                  cout<<"time 1+ time 2:            "<<endl;
        
                      cout<<Time3<<endl;   // vivod rezyltata
                                     break;
                    
                                     }
        
          case 2:
            {      
                   Time Time4;
                     Time4=Time1-Time2;
        
                 cout<<"time 1- time 2:            "<<endl;
                             Time4.korrect();
        
                                 cout<<Time4<<endl;
                                     break;
          
                                                }
                                                       }
                                                                  }
    
        
                                              else{cout<<"oshibka vvoda"<<endl;}
        
     
                                                                    return 0;
             
                                                                              }

execution.h

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
#ifndef execution_h
#define execution_h
#include <iostream>
using namespace std;
 
class Time //nazvanie klassa
{
 
public: // spesificator tipa public
   Time();//konstryctor
   Time(unsigned h, unsigned m, unsigned s);
  
   bool proverka ();
   const int sravnenie(Time ap);
   ~Time();
   Time(const Time&app);
   
   friend std::istream&operator>>(std::istream& is,Time&ap);
   friend std::ostream&operator<<(std::ostream& os,const Time&ap);
  
 
   Time&operator=(Time&app);
   Time&operator+(const Time&app);
   Time&operator-( Time&app);
   void korrect();
 
 private: // spesificator tipa private
    unsigned hour, // thas
           minute, // minute
           secund; // secundi
    int func_sravnenie (unsigned a,unsigned b);
    }; 
 
 
#endif



execuion.cpp







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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include "execution.h"
 
Time::Time()                    // konstructor 1
:hour(0),minute(0),secund(0)  
{
}
 
Time::Time( unsigned h,unsigned m, unsigned s)         // kostructor kopii 2
:hour(h),minute(m),secund(s)
 
{
 
}
 
Time::~Time()            //destructor
{
}
 
Time::Time(const Time&app)      // konstryctor 4
:hour(app.hour),minute(app.minute),secund(app.secund)
{
}
 
bool Time:: proverka()   //metod proverki
{
  if(hour>=0&&hour<24)
  {
    if(minute>=0&&minute<60)
    { 
      if(secund>=0&&secund<60)
      {
    return true;
    
      }
      else 
      {
    return false;
      }
    }
    else
    {
      return false;
      
    }
    
  }
  else
  {
    return false;
    
  }
}
 
int Time::func_sravnenie (unsigned a,unsigned b)
{
   int k;
   if(a>b)
   {
     k=1;
   };
   if (a<b)
   {
     k=2;
   };
   if (a==b)
   {
     k=3;
   };
   return k;
}
 
const int Time::sravnenie(Time ap)  // metod sravnenia
{
  int s;
  s=func_sravnenie(ap.hour,hour);
  if(s==1)
  {
    return 1;
  }              
  if(s==2)
  {
    return 0;
  }
  if(s==3)
  {      
    s=func_sravnenie(ap.minute,minute);
    if(s==1)
    {
      return 1; 
    }
    if(s==2)
    {
      return 0;
    }                         
    if(s==3)
    {
      s=func_sravnenie(ap.secund,secund);
      if(s==1)
      {
    return 1;
      }
      if(s==2)
      {
    return 0;
      }
      if(s==3)
      { 
    return 2;
      }
    }  
  }
}
 
std::istream&operator>>(istream& is,Time&ap)   //  operator potokovogo vvoda
{
  is>>ap.hour>>ap.minute>>ap.secund;
  return is;
}
 
std::ostream&operator<<(ostream& os,const Time&ap)    // operator potokovogo vivoda
{
  os<<ap.hour<<' '<<ap.minute<<' '<<ap.secund;
  return os;
}
 
Time&Time:: operator=(Time&app)          //  operator prisvoenia
{
  hour=app.hour;
 minute=app.minute;
   secund=app.secund;
  return *this; //  vernit object dlya kotorogo vizvana fynczia
}
 
Time&Time:: operator+( const Time &app)   // operator slojenia
{
  hour=(app.hour+hour);
  minute=(app.minute+minute);
  secund=(app.secund+secund);
  return *this; 
}     
      
Time&Time:: operator-( Time &app)  //operator vithitania
{
  hour=(hour-app.hour);
  minute=(minute-app.minute);
  secund=(secund-app.secund);
  return *this;
} 
         
void Time:: korrect() // metod korrectirovki
{   
 if(secund>=60)
 {
  secund=secund-60;
  minute=minute+1;
 };
  if(minute>=60)
 {
   minute=minute-60;
   hour=hour+1;
 }; 
 if(secund<0)
 {
  secund=secund+60;minute=minute-1;
 };
 if(minute<0)
 {
  minute=minute+60;hour=hour-1;
 }; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2012, 21:32     Реализовать классы, осуществляющие выдачу в поток и чтение из потока информации в различных форматах
Посмотрите здесь:

Печать даты в различных форматах - C++
Напишите программу, которая считает даты в первом формате и печатет их во втором! 07/21/55 и Июль 21, 1995 Добавлено через 19 минут ...

Создать класс для хранения календарных дат. Обеспечить возможность работы с датами в различных форматах - C++
2. Создать класс для хранения календарных дат. Обеспечить возможность работы с датами в различных форматах, изменения даты на заданное...

Остановка второго потока останавливает также первый поток по непонятной причине - C++
Изучаю потоки и по ходу дела экспериментирую с ними в Visual Studio. Накидал код, который в первом потоке приостанавливает и возобновляет...

Потоки осуществляющие сравнение фраз параллельно по словам - C++
Охранное агентство разработало новую систему управления электронными замками. Для открытия двери клиент обязан произнести произвольную...

Чтение строк из потока - C++
Доброго времени суток всем! Вопрос мой заключается в том, правильно ли я понял суть задания. Мне нужно создать класс, который сможет...

Чтение из потока буковок:) - C++
Задание: Дан файл, содержит текст, набранный заглавными русскими буквами. Провести частотный анализ текста, т.е указать (в процентах),...

Добавление информации в классы - C++
Есть класс: class student { public: string fam; }; Объявлен: student *stud; stud = new student;

Чтение отдельных строк через поток - C++
Силами класса ifstream надо прочесть, например, 10 строку, затем результат присвоить переменной типа строка, и по отдельному символу...

Чтение из потока в вектор и в struct - C++
Читаю книгу Accelerated C++. Книга старая и использует позапрошлую версию С++. Автор приводит следующий пример: struct Student_info { ...

чтение строки как потока - C++
Если у меня в текстовом файле (ifstream &amp;fin) хранится какая-то последовательности n чисел, то я читаю её например так: for(int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru