Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пенко Методпособие к лаб по курсу ПО ЭВМ 2 курс...docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
145.41 Кб
Скачать

Пример Mod1Ex4

using System;

using System.Collections.Generic;

using System.Text;

namespace Kontr3

{

class Program

{

static void Main(string[] args)

{

//Clock c1;

//try

//{ c1 = new Clock(-12345); }

//catch (Exception e)

//{ Console.WriteLine("Ошибка: "+e.Message); return; }

//Console.WriteLine(c1.ToString());

//for (int i=0; i<60; i++) c1.IncMinutes();

//Console.WriteLine(c1.ToString());

/////////////////////////

Hronometr1 h1;

try

{

h1 = new Hronometr1(12345, 30);

}

catch(Exception e)

{ Console.WriteLine("Ошибка: " + e.Message); return; }

Console.WriteLine(h1.ToString());

for (int i = 0; i < 60; i++) h1.IncMinutes();

for (int i = 0; i < 60; i++) h1.IncSeconds();

Console.WriteLine(h1.ToString());

}

}

class Clock

{

private int minuteCount; //количество минут

public Clock(int mc)

{

if (mc >= 0) minuteCount = mc;

else throw new Exception("Количество минут не может быть отрицательным");

}

private int Minutes() { return minuteCount % 60; }

private int Hours() { return minuteCount / 60; }

public string ToString()

{ return String.Format("Часы показывают {0} часов {1} минут", Hours(), Minutes()); }

public void IncMinutes() { minuteCount++; }

public void DecMinutes() { minuteCount--; }

}

class Hronometr1: Clock

{

private int seconds;

public Hronometr1(int mc, int sec) : base(mc)

{ seconds = sec; }

public string ToString()

{ return base.ToString() + String.Format("{0} секунд", seconds); }

//public string ToString() //требует, стобы методы Hours() и Minutes() были protected

//{ return String.Format("Часы показывают {0} часов {1} минут {2} секунд", Hours(), Minutes(), seconds);}

public void IncSeconds()

{

if (seconds == 59)

{ IncMinutes(); seconds = 0; }

else seconds++;

}

public void DecSeconds()

{

if (seconds == 0)

{ DecMinutes(); seconds = 59; }

else seconds--;

}

}

class Hronometr2

{

private int secondsCount;

public Hronometr2(int mc, int sec)//:base(0)

{

secondsCount = mc*60+sec;

}

private int Seconds() { return secondsCount % 60; }

private int Hours() { return secondsCount / 3600; }

private int Minutes() { return (secondsCount - Hours() * 3600) % 60; }

public string ToString()

{ return String.Format("Часы показывают {0} часов {1} минут {2} секунд", Hours(), Minutes(), Seconds()); }

public void IncSeconds()

{ secondsCount++; }

public void DecSeconds() { secondsCount--; }

public void IncMinutes() { secondsCount +=60; }

public void DecMinutes() { secondsCount -= 60; }

}

}