ЛИСТИНГ КОДА AirTicketOffice.cs




ЦЕЛЬ РАБОТЫ

Изучение синтаксиса описания классов и процесса порождения объектов. Изучение способов управления доступом к членам класса.

ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ

Предметная область: Авиакасса.

 

ДИАГРАММА КЛАССОВ В НОТАЦИИ UML

 

ОПИСАНИЕ ИСПОЛЬЗУЕМЫХ КЛАССОВ

Класс AirTrip – рейс

Номер рейса, Пункт отправления, Пункт назначения, Дата и время вылета, Дата и время прилета

 

Класс AirTripCollection - коллекция рейсов

Добавление рейса, Получение значение рейса по индексу, Получения рейса по номеру рейса, Удалить рейс

 

Класс TicketCost - стоимость билетов

Стоимость билета, Аэропортовый сбор

 

Класс Ticket – билет

ФИО того, кто летит, Рейс, Стоимость билета, Класс, Самолет

 

Класс TicketCollection - коллекция билетов

Добавление билета

 

ЛИСТИНГ КОДА AirTicketOffice.cs

using System;

using System.Collections.Generic;

 

namespace Airport

{

public class AirTrip

{

/*

Класс Рейс - рейс на самолёт

*/

 

private int Number; //Номер рейса

private string Dispatch; //Пункт отправления

private string Destination; //Пункт назначения

private DateTime DTBegin; //Дата и время вылета

private DateTime DTEnd; //Дата и время прилета

public static AirTrip Null_AirTrip = new AirTrip(); //Пустой рейс

 

public AirTrip(int _number, string _dispatch, string _destination, DateTime _dtbegin, DateTime _dtend)

{

this.Number = _number;

this.Dispatch = _dispatch;

this.Destination = _destination;

this.DTBegin = _dtbegin;

this.DTEnd = _dtend;

}

 

public AirTrip() //Пустой конструктор

{

this.Number = 0;

this.Dispatch = string.Empty;

this.Destination = string.Empty;

this.DTBegin = DateTime.Now;

this.DTEnd = DateTime.Now;

}

 

public string ShowTrip() //Возвращает инфу о рейсе

{

return "Рейс №" + Number + ", " + Dispatch + " - " + Destination + ", " + DTBegin.ToString() + ", " + DTEnd.ToString();

}

 

public int GetAirTripNumber() //Возвращает номер рейса

{

return Number;

}

 

public string GetDispatch() //Возвращает пункт отправления

{

return Dispatch;

}

 

public string GetDestination() //Возвращает пункт назначения

{

return Destination;

}

 

public string GetDate() //Возвращает время отправления

{

return DTBegin.ToShortDateString() + " " + DTBegin.ToShortTimeString();

}

}

 

public class AirTripCollection

{

/*

Коллекция рейсов

*/

 

private List<AirTrip> AirTrips;

 

public AirTripCollection()

{

this.AirTrips = new List<AirTrip>();

}

 

public void AddTrip(int _number, string _dispatch, string _destination, DateTime _dtbegin, DateTime _dtend) //Добавление рейса

{

AirTrip _airtrip = new AirTrip(_number, _dispatch, _destination, _dtbegin, _dtend);

AirTrips.Add(_airtrip);

}

 

public string GetValueFromIndex(int index) //Получить значение рейса по индексу

{

return AirTrips[index].ShowTrip();

}

 

public AirTrip GetTripByNumber(int _number) //Получить рейс по номеру рейса

{

for (int i = 0; i < AirTrips.Count; i++)

if (AirTrips[i].GetAirTripNumber() == _number)

return AirTrips[i];

return AirTrip.Null_AirTrip;

}

 

public void Delete(int index) //Удалить рейс

{

AirTrips.RemoveAt(index);

}

 

public int Count() //Получить количество рейсов

{

return AirTrips.Count;

}

}

 

public class TicketCost

{

/*

Класс Стоимость билетов - стоимость билетов состоит из цены на билет и аэропортового сбора

*/

 

private double Cost; //Стоимость билета

private double AirportCharges; //Аэропортовый сбор

 

public TicketCost(double _cost, double _airportcharges)

{

this.Cost = _cost;

this.AirportCharges = _airportcharges;

}

 

public double GetTicketCost() //Возвращает стоимость билета

{

return (Cost + AirportCharges);

}

}

 

public class Ticket

{

/*

Класс Билет - билет на рейс, состоит из ФИО, рейса, класса и стоимости билета, самолета

*/

 

private string FIO; //ФИО того, кто летит

private AirTrip Airtrip; //Рейс

private TicketCost Ticketcost; //Стоимость билета

private string Class; //Класс

private string Airplane; //Самолет

 

public Ticket(string _fio, AirTrip _airtrip, TicketCost _ticketcost, string _class, string _airplane)

{

this.FIO = _fio;

this.Airtrip = _airtrip;

this.Ticketcost = _ticketcost;

this.Class = _class;

this.Airplane = _airplane;

}

 

public Ticket() //Пустой конструктор

{

this.FIO = string.Empty;

this.Airtrip = AirTrip.Null_AirTrip;

this.Ticketcost = new TicketCost(0.0, 0.0);

this.Class = string.Empty;

this.Airplane = string.Empty;

}

public string ShowTicket() //Возвращает инфу о билете

{

return "Билет # рейс " + Airtrip.GetAirTripNumber() + " # " + FIO + " # из: " + Airtrip.GetDispatch() + " в: " + Airtrip.GetDestination() + ", время отправления: " + Airtrip.GetDate();

}

}

 

public class TicketCollection

{

/*

Коллекция билетов

*/

 

private List<Ticket> Tickets;

public TicketCollection()

{

this.Tickets = new List<Ticket>();

}

public void AddTicket(string _fio, AirTrip _airtrip, TicketCost _ticketcost, string _class, string _airplane) //Добавление билета

{

Ticket _ticket = new Ticket(_fio, _airtrip, _ticketcost, _class, _airplane);

Tickets.Add(_ticket);

}

public string GetValueFromIndex(int index) //Получить значение билета по индексу

{

return Tickets[index].ShowTicket();

}

public void Delete(int index) //Удалить билет

{

Tickets.RemoveAt(index);

}

public int Count() //Получить количество билетов

{

return Tickets.Count;

}

}

}

 

Входные данные:

Ниже представлен листинг кода программы, демонстрирующий заполнение классов данными.

using System;

 

namespace Airport

{

class Program

{

static void Main(string[] args)

{

AirTripCollection AIRTRIPS = new AirTripCollection(); //Список рейсов

AIRTRIPS.AddTrip(148, "Санкт-Петербург", "Москва", new DateTime(2012, 10, 31, 22, 00, 00), new DateTime(2012, 10, 31, 23, 50, 00)); //Рейс 148 на самолет из Питера до Москвы, вылетом 31 октября 2012 в 22:00

AIRTRIPS.AddTrip(756, "Москва", "Санкт-Петербург", new DateTime(2012, 11, 01, 14, 10, 00), new DateTime(2012, 11, 01, 16, 00, 00)); //Из Москвы до Питера

 

TicketCollection TICKETS = new TicketCollection(); //Список билетов на самолет

TICKETS.AddTicket("Иванов Иван И.", AIRTRIPS.GetTripByNumber(148), new TicketCost(2048.20, 99.80), "Первый", "Ан 158"); //Иванов Иван Иванович летит Москву рейсом 148

TICKETS.AddTicket("Иванов Иван И.", AIRTRIPS.GetTripByNumber(756), new TicketCost(998.00, 99.80), "Эконом", "Ан 158"); //И возвращается в Питер на следующий день рейсом 756

 

Console.WriteLine("Список рейсов: ");

for (int i = 0; i < AIRTRIPS.Count(); i++)

Console.WriteLine(AIRTRIPS.GetValueFromIndex(i));

 

Console.WriteLine("\nСписок билетов: ");

for (int i = 0; i < TICKETS.Count(); i++)

Console.WriteLine(TICKETS.GetValueFromIndex(i));

 

Console.ReadLine();

}

}

}

 

Выходные данные

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: