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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.65
lyk
0 / 0 / 0
Регистрация: 21.01.2007
Сообщений: 5
#1

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

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

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

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

Код
#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;
А вот код использующий функции класса (отклик на пункты меню).

Код
#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);
}
Можешь, просто, вырезать код реализации класса и поместить его в свою прогу, как тебе удобней. Думаю, разберешься.
lyk
0 / 0 / 0
Регистрация: 21.01.2007
Сообщений: 5
25.01.2007, 03:31  [ТС]     Создать класс с именем time #5
Огроомное спасибо!!!!!! :!: :!: :!: Выручил...
А этот код можно в другой компилятор вставить и откомпилировать?
Хотя это не важно... ЕЩЁ РАЗ ОГРОМНОЕ СПАСИБО!!!!!!!!!!!!!!!!!!!! :lol:
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
25.01.2007, 05:24     Создать класс с именем time #6
Кроме как в Visual Studio этот код нигде не будет компилиться. Потому что, я использовал MFC для создания окна. Просто, возьми из этих исходников то, что тебе нужно.
lyk
0 / 0 / 0
Регистрация: 21.01.2007
Сообщений: 5
26.01.2007, 00:27  [ТС]     Создать класс с именем time #7
Вот блин... чёто недогоняю я...
У меня есть только Borland C++ Compiler... И Delphi...
Как надо изменить этот код чтоб можно было его откомпилить в Borland C++ Compiler? :roll:
lyk
0 / 0 / 0
Регистрация: 21.01.2007
Сообщений: 5
26.01.2007, 05:56  [ТС]     Создать класс с именем time #8
Возникли большие проблемы с компиляцией на С++... :|
Не можеш переписать на Delphi?? Очень надо... :roll: времени почти нет...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2007, 05:46     Создать класс с именем time
Еще ссылки по теме:

C++ Класс Time через time(0)
Создать класс Time C++
C++ Создать класс Time
Создать класс time для работы со временем C++
C++ Создать класс с именем Date

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

Или воспользуйтесь поиском по форуму:
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
27.01.2007, 05:46     Создать класс с именем time #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот это должно компилиться и в Borland C++ Compiler.

Код
#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() 
   {
      couth":"m":"sendl;
   } 
   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;
}
Yandex
Объявления
27.01.2007, 05:46     Создать класс с именем time
Ответ Создать тему
Опции темы

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