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

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

Войти
Регистрация
Восстановить пароль
 
lyk
0 / 0 / 0
Регистрация: 21.01.2007
Сообщений: 5
#1

Создать класс с именем time - C++

23.01.2007, 02:42. Просмотров 3856. Ответов 8
Метки нет (Все метки)

Я в программировинии (более-менее знаю только Turbo Pascal) ещё совсем профан, в универе задание дали написать программу на ООП, т.е. С++, Delphi и т.д....
Вот задание:
Создать класс с именем time, содержащий три поля типа integer, предназначенные для хранения часов, минут и секунд. Один из конструкторов класса должен инициализировать поля нулевыми значениями, а другой конструктор — заданным набором значений. Создайте метод класса, который будет выводить значения полей на экран в формате 11:59:59, и метод, складывающий значения двух объектов типа time, передаваемых в качестве аргументов. Написать программу, демонстрирующую работу с этими классами. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
Подскажите, с чего начать, на чём написать легче...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2007, 02:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класс с именем time (C++):

Создать базовый класс Тройка_чисел (Triad) и производный класс Time с полями часы, минуты и секунды - C++
Наследование. Виртуальныефункции.Полиморфизм. 1. Цельзадания: 1) Создание консольного приложения, состоящего и - Базовый класс:...

Создать класс Time - C++
Помогите решить: Класс Time. Создать класс Time, который должен включать: a. Два поля: int min; int hour; b. Конструкторы....

Создать класс Time - C++
Здравствуйте. Помогите написать программу. Заранее спасибо. Создать класс Time для работы со временем в формате «час:минута:секунда»....

Класс: Создать класс с именем MARSH - C++
Всем привет! Есть условие задачи: 1. Создать класс с именем MARSH, содержащий следующие поля: • название начального пункта...

Не могу разобраться с заданием "Создайте класс Time с конструкторами Time(), Time( int hour)......" - C++
/* Создайте класс Time с конструкторами Time(), Time( int hour), Time(int hour, int min), Time( int h, int m, int s) и ...

Создать класс Time для работы со временем - C++
Создать класс Time для работы со временем в формате "час. минута.секунда" . Класс должен включать в себя не менее четырёх функций...

8
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
23.01.2007, 18:18 #2
Я думаю, написать легче будет на Дэльфи. Но и на С++ тоже не
сложно. Пример написания класса можешь увидеть в последних темах. Если не разберешься, то напишу твою задачу.
0
lyk
0 / 0 / 0
Регистрация: 21.01.2007
Сообщений: 5
24.01.2007, 16:30  [ТС] #3
Я думаю, написать легче будет на Дэльфи. Но и на С++ тоже не
сложно. Пример написания класса можешь увидеть в последних темах. Если не разберешься, то напишу твою задачу.
Если тебе не трудно, то напиши хоть чтото... :roll:
Я с этой задачей вожусь уже месяц, результат пока равен нулю, а времени уже почти не осталось...
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
25.01.2007, 02:27 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я создал оконное приложение с меню (я понял меню - это главное меню приложения), пункты которого используют все функции класса. Компилировал в Visual Studio 2005. Класс назван CMyTime (со словом Time у меня проблемы небольшие возникли). Вот исходный код файлов с реализацией класса и его использованием:

Заголовочный файл с реализацией класса.

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
#pragma once
 
#ifndef __AFXWIN_H__
    #error "include 'stdafx.h' before including this file for PCH"
#endif
 
#include  "resource.h"
#include  <stdio.h>//для sprintf
 
 
class CMyTime
{
    int h, m, s;//Часы, минуты, секунды
    char* outstring;//Строка для вывода
public:
    CMyTime():h(0), m(0), s(0){}//Конструктор номер раз
    CMyTime(int hour, int min, int sec):h(hour), m(min), s(sec){}
    //Конструктор номер два
    void output()//Функция вывода
    {
        outstring = new char();
        sprintf(outstring, "%d:%d:%d", h, m, s);
        MessageBoxA(NULL, outstring, "Information", 0);
    }
    void add(CMyTime time2)//Функция сложения
    {
        this->h += time2.h;
        this->m += time2.m;
        this->s += time2.s;
    }
};
 
class CEXWindApp : public CWinApp
{
public:
    CEXWindApp();
 
// Overrides
    public:
    virtual BOOL InitInstance();
 
// Implementation
 
    DECLARE_MESSAGE_MAP()
public:
    afx_msg void OnActionsConstructor1();
public:
    afx_msg void OnActionsConstructor2();
public:
    afx_msg void OnActionsOutput();
public:
    afx_msg void OnActionsAdd();
};
 
extern CEXWindApp theApp;
А вот код использующий функции класса (отклик на пункты меню).

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
#include  "stdafx.h"
#include  "EXWind.h"
#include  "EXWindDlg.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
 
CMyTime* timeobj;
 
BEGIN_MESSAGE_MAP(CEXWindApp, CWinApp)
    ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
    ON_COMMAND(ID_ACTIONS_CONSTRUCTOR1, &CEXWindApp::OnActionsConstructor1)
    ON_COMMAND(ID_ACTIONS_CONSTRUCTOR2, &CEXWindApp::OnActionsConstructor2)
    ON_COMMAND(ID_ACTIONS_OUTPUT, &CEXWindApp::OnActionsOutput)
    ON_COMMAND(ID_ACTIONS_ADD, &CEXWindApp::OnActionsAdd)
END_MESSAGE_MAP()
 
CEXWindApp::CEXWindApp()
{
    
}
 
CEXWindApp theApp;
 
 
BOOL CEXWindApp::InitInstance()
{
    INITCOMMONCONTROLSEX InitCtrls;
    InitCtrls.dwSize = sizeof(InitCtrls);
 
    InitCtrls.dwICC = ICC_WIN95_CLASSES;
    InitCommonControlsEx(&InitCtrls);
 
    CWinApp::InitInstance();
 
    AfxEnableControlContainer();
 
    SetRegistryKey(_T("Local AppWizard-Generated Applications"));
 
    CEXWindDlg dlg;
    m_pMainWnd = &dlg;
    INT_PTR nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
        
    }
    else if (nResponse == IDCANCEL)
    {
        
    }
 
    return FALSE;
}
 
void CEXWindApp::OnActionsConstructor1()
{
    timeobj = new CMyTime();
}
 
void CEXWindApp::OnActionsConstructor2()
{
    timeobj = new CMyTime(10, 10, 10);
}
 
void CEXWindApp::OnActionsOutput()
{
    if (timeobj != NULL)
        timeobj->output();
}
 
void CEXWindApp::OnActionsAdd()
{
    CMyTime time2(1, 1, 1);
    timeobj->add(time2);
}
Можешь, просто, вырезать код реализации класса и поместить его в свою прогу, как тебе удобней. Думаю, разберешься.
0
lyk
0 / 0 / 0
Регистрация: 21.01.2007
Сообщений: 5
25.01.2007, 03:31  [ТС] #5
Огроомное спасибо!!!!!! :!: :!: :!: Выручил...
А этот код можно в другой компилятор вставить и откомпилировать?
Хотя это не важно... ЕЩЁ РАЗ ОГРОМНОЕ СПАСИБО!!!!!!!!!!!!!!!!!!!! :lol:
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
25.01.2007, 05:24 #6
Кроме как в Visual Studio этот код нигде не будет компилиться. Потому что, я использовал MFC для создания окна. Просто, возьми из этих исходников то, что тебе нужно.
0
lyk
0 / 0 / 0
Регистрация: 21.01.2007
Сообщений: 5
26.01.2007, 00:27  [ТС] #7
Вот блин... чёто недогоняю я...
У меня есть только Borland C++ Compiler... И Delphi...
Как надо изменить этот код чтоб можно было его откомпилить в Borland C++ Compiler? :roll:
0
lyk
0 / 0 / 0
Регистрация: 21.01.2007
Сообщений: 5
26.01.2007, 05:56  [ТС] #8
Возникли большие проблемы с компиляцией на С++... :|
Не можеш переписать на Delphi?? Очень надо... :roll: времени почти нет...
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
27.01.2007, 05:46 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот это должно компилиться и в Borland C++ Compiler.

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
#include <iostream.h>
#include <conio.h>
 
class CMyTime
{ 
   int h, m, s;
public: 
   CMyTime():h(0), m(0), s(0){}
   CMyTime(int hour, int min, int sec):h(hour), m(min), s(sec){}
   void output() 
   {
      cout << h << ":" << m << ":" << s << endl;
   } 
   void add(CMyTime time2) 
   { 
      this->h += time2.h; 
      this->m += time2.m; 
      this->s += time2.s; 
   } 
};
 
int main()
{
    CMyTime time1, time2(5, 4, 34);
    time1.output();
    time2.output();
    CMyTime time3(1, 1, 1);
    time1.add(time3);
    time1.output();
    time2.add(time3);
    time2.output();
    getch();
    return 1;
}
0
27.01.2007, 05:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2007, 05:46
Привет! Вот еще темы с ответами:

Создать класс time для работы со временем - C++
на языке C++ создать класс ВРЕМЯ,разработав следующие элементы класса: •Поля с;(временной интервал,заданный в секундах) ...

Создать класс с именем Date - C++
Создайте класс Date, включающий в качестве элементов данных три информационных пункта: месяц (тип int), день (тип int) и год (тип int). Ваш...

Создать класс с именем ZARPLATA - C++
№1. 1. Создать класс с именем ZARPLATA, содержащий следующие поля: • табельный номер; • фамилия И.О. работника; • оплата за один...

Создать класс с именем BIBL - C++
Создать класс с именем BIBL, содержащий следующие поля: • фамилию и инициалы автора; • название книги; • год издания; • количество...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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