Проектирование структуры классов




При рассмотрении исходных данных создается структура иерархии классов «Такси». Для максимального соответствия заданию, создается пять классов:

- TaxiStation (базовый класс);

- Car (класс, содержащий информацию об автомобилях);

- Employee (класс, содержащий информацию о сотрудниках);

- Driver (класс, содержащий информацию о водителях).

- Dispatcher (класс, содержащий информацию о диспетчерах).

Иерархия классов показана на Рисунке 1.

Базовым классом в иерархии является класс TaxiStation. При классическом наследовании на основе существующих классов создаются новые классы, содержащие как свои поля и методы, так и поля, методы, унаследованные от базового класса. Суть наследования включение-делегирование заключается в том, что один класс поглощает другой. Проще говоря - это использование одного класса в другом.

В данной курсовой работе от базового класса TaxiStation наследуются класс Car и класс Employee с помощью классического наследования. Класс Car используется для создания автомобилей. Он содержит поля: марка, цвет, состояние, а так же методы для получения значений каждого поля. Класс Employee используется для создания сотрудников и содержит поля: фамилия, имя, отчество, возраст, заработная плата, а так же методы для получения значений каждого поля.

От класса Employee наследуются 2 класса: Driver и Dispatcher.

Класс Driver содержит поля: фамилия, имя, отчество, возраст, заработная плата, водительский стаж, кодовый номер.

Класс Dispatcher, наследуемый от Employee, похож на класс Driver, за исключением того, что он содержит поля: фамилия, имя, отчество, возраст, заработная плата, количество обслуживаемых автомобилей.

Рисунок 1 – Иерархия классов

Класс TaxiStation:

number_of_cars; // количество автомобилей в таксопарке

fare; // стоимость проезда 1 км.

service_time; // время обслуживания

GetNumberOfCars()

GetFare()

GetServiceTime()

SetNumberOfCars()

SetFare()

SetServiceTime()

 

 

Класс Car:

model; // марка автомобиля

color; // цвет

condition; // состояние

GetModel()

GetColor()

GetCondition()

SetModel()

SetColor()

SetCondition()

 

Класс Employee:

surname; // фамилия

name; // имя

patronymic; // отчество

age; // возраст

salary; // заработная плата

GetSurname()

GetName()

GetPatrinymic()

GetAge()

GetSalary()

SetSurname()

SetName()

SetPatrinymic()

SetAge()

SetSalary()

 

Класс Driver:

driver_surname; // фамилия

driver_name; // имя

driver_patrinymic; // отчество

driver_age; // возраст

driver_salary; // заработная плата

driving_experience; // водительский стаж

code_number; // кодовый номер

GetDriverSurname()

GetDriverName()

GetDriverPatrinymic()

GetDriverAge()

GetDriverSalary()

GetDrivingExperience()

GetCodeNumber()

SetDriverSurname()

SetDriverName()

SetDriverPatrinymic()

SetDriverAge()

SetDriverSalary()

SetDrivingExperience()

SetCodeNumber()

 

Класс Dispatcher:

dispatcher _surname; // фамилия

dispatcher _name; // имя

dispatcher _patrinymic; // отчество

dispatcher _age; // возраст

dispatcher _salary; // заработная плата

number_of_serviced_cars; // количество обслуживаемых

автомобилей

GetDispatcherSurname()

GetDispatcherName()

GetDispatcherPatrinymic()

GetDispatcherAge()

GetDispatcherSalary()

GetNumberOfServicedCars()

SetDispatcherSurname()

SetDispatcherName()

SetDispatcherPatrinymic()

SetDispatcherAge()

SetDispatcherSalary()

SetNumberOfServicedCars()

 

В каждом классе находится по 2 вида методов: метод Get() и метод Set().

Метод Get() служит для чтения значения поля класса.

Метод Set() служит для изменения значения поля класса.

На основе иерархии классов строится алгоритм работы программы:

1) Необходимо нажать кнопку «Добавить автомобиль»

a) Заполнить все поля.

b) Нажать кнопку «Добавить».

 

2) Необходимо нажать кнопку «Добавить водителя»

a) Заполнить все поля.

b) Выбрать из списка транспортное средство, предоставленное водителю.

c) Нажать кнопку «Добавить».

3) Необходимо нажать кнопку «Добавить диспетчера»

a) Заполнить все поля.

b) Выбрать из списка водителей, обслуживаемых данным диспетчером.

c) Нажать кнопку «Добавить».

4) Просмотр всех автомобилей, водителей и диспетчеров доступен в меню «Справочники».

5) Для завершения приложения вернуться на главную форму и нажать кнопку «Выход».

 

 

3. Программная реализация

Для реализации было создано 10 форм: на главной форме приложения можно выбрать действие: добавление автомобиля, добавление сотрудника, добавление данных о таксопарке, просмотр списка автомобилей, водителей, диспетчеров и выход из приложения.

Для работы приложения необходимо скопировать папку «Taxi files» в корень диска D:\.

На главной форме находятся 5 кнопок для вызова одного из действий, описанных выше. Form2, Form4, Form5, Form9 служат для добавления автомобилей, водителей, диспетчеров и данных о таксопарке соответственно. Добавление производится путем записи данных в текстовые файлы, находящиеся в папке «Taxi files».

if (f6.listView1.Items.Count > 0)

{

foreach (ListViewItem lvi in f6.listView1.Items)

{

sb = new StringBuilder();

foreach (ListViewItem.ListViewSubItem listViewSubItem in lvi.SubItems)

{

sb.Append(string.Format("{0}\t", listViewSubItem.Text));

}

using (StreamWriter sr = new StreamWriter("D:\\Taxi files\\Car.txt", true))

{

sr.WriteLine(sb.ToString());

}

}

}

 

Form6, Form7, Form8, Form10 предназначены для отображения списка добавленных записей.

 

using (StreamReader sr = new StreamReader(@"D:\\Taxi files\\Car.txt"))

{

string line;

while ((line = sr.ReadLine())!= null)

{

string[] values = line.Split(' ');

listView1.Items.Add(new ListViewItem(values));

}

}



Поделиться:




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

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


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