Приложение «Такси» имеет открытый исходный код, распространяющийся с программой, поэтому любой желающий может его усовершенствовать или изменить.
Исходя из этого, любой программист может изменить структуру классов, добавить новые поля и методы или удалить уже существующие.
Пример кода класса TaxiStation и класса Car:
TaxiStation:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Taxi
{
class TaxiStation
{
private int number_of_cars;
public int fare;
public string service_time;
public TaxiStation()
{
number_of_cars = 0;
fare = 0;
service_time = "NO NAME";
}
public TaxiStation(int number_of_cars1, int fare1, string service_time1)
{
number_of_cars = number_of_cars1;
fare = fare1;
service_time = service_time1;
}
public int GetNumberOfCars(int number_of_cars)
{
return number_of_cars;
}
![]() |
public int GetFare(int fare)
{
return fare;
}
public string GetServiceTime(string service_time)
{
return service_time;
}
public void SetNumberOfCars(int number_of_cars1)
{
number_of_cars = number_of_cars1;
}
public void SetFare(int fare1)
{
fare = fare1;
}
public void SetServiceTime(string service_time1)
{
service_time = service_time1;
}
}
}
Car:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Taxi
{
class Car: TaxiStation
{
public string model;
public string color;
public string condition;
public Car()
{
model = "NO NAME";
color = "NO NAME";
condition = "NO NAME";
}
public Car(string model1, string color1, string condition1)
{
model = model1;
color = color1;
condition = condition1;
}
public string GetModel(string model)
{
return model;
}
public string GetColor(string color)
{
return color;
}
public string GetCondition(string condition)
{
return condition;
}
public void SetModel(string model1)
{
model = model1;
}
public void SetColor(string color1)
{
color = color1;
}
public void SetCondition(string condition1)
{
condition = condition1;
}
}
}
Руководство администратора
Приложение «Такси» предназначено для добавления, удаления и хранения данных в организации «Такси».
Программа была разработана в интегрированной среде программирования Microsoft Visual Studio 2010. Приложение состоит из исполнимого модуля Taxi.exe, размер которого составляет 227 Kb, файла главной формы Form1.cs, файлов форм добавления Form2.cs, Form4.cs, Form5.cs и форм вывода Form6.cs, Form7.cs, Form8.cs. Описание и определения классов, используемых в программе, находятся в папке Taxi (TaxiStation.cs, Car.cs, Employee.cs, Driver.cs, Dispatcher.cs).
Для работы приложения необходимо скопировать папку «Taxi files» в корень диска D:\.
В папке «Taxi files» хранятся 3 текстовых файла: Car, Driver, Dispatcher, хранящие записи об автомобилях, водителях и диспетчерах соответственно.
Также для корректной работы программы требуется установить.NET Framework версии 4.0.
Изменение и усовершенствование программы можно проводить в Visual Studio 2010 (ранние версии не поддерживаются, в связи с изменением структуры хранения приложений). Для открытия исходного кода, надо открыть файл решения Taxi.sln. И далее выбрать нужный файл кода для просмотра.
Данная программа тестировалась на компьютере следующей конфигурации:
1. Процессор Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
2. ОЗУ 2.00 ГБ
3. ОС Windows 7 Ultimate x86
Почти все современные компьютеры удовлетворяют данным требованиям.
Руководство пользователя
Для запуска приложения нужно открыть файл Taxi.exe. После этого появится главная форма программы, на которой находятся четыре кнопки: «Добавить автомобиль», «Добавить сотрудника», «Справочники» и «Выход».
Для добавления автомобиля необходимо нажать кнопку «Добавить автомобиль», после чего появится форма добавления. Затем нужно заполнить все поля и нажать кнопку «Добавить». Если не заполнены все поля, то программа выдаст сообщение об ошибке и предложит заполнить все поля. Так же в приложении предусмотрена проверка вводимых данных. После добавления запись автоматически заносится в текстовый файл Car.
Аналогично происходит добавление водителя и диспетчера.
Для вывода записей на экран нажмите кнопку «Справочники» и выберите интересующий раздел.
Рекомендуемые требования к компьютеру:
- ЦП x86 или x64 с тактовой частотой 1ГГц
- Объем оперативной памяти 1 Гб
- Графический процессор с поддержкой DirectX 9 и 128 МБ памяти.
- Windows 7
-.NET Framework 4.0
Требования составлялись на основе требования ОС Windows 7, т.к. программа предназначена для работы в этой ОС.
Тестирование программы
Последним этапом создания программного продукта является его тестирование и отладка. В ходе тестирования программы выявляются все ее недостатки и особенности работы. Обнаруженные недостатки устраняются в ходе отладки.
В результате было создано тестирующее приложение, в котором реализована структура иерархии классов, а также различные функции. А именно:
- Создание экземпляров классов;
- Создание и просмотр элементов;
- Работа с экземплярами классов через визуальные компоненты.
Рисунок 2 – Тестирующее приложение. Главное окно.
Рисунок 3 – Тестирующее приложение. Добавление.
Рисунок 4 – Тестирующее приложение. Окно Вывода.
Результат тестирования: в ходе тестирования программы недостатков, влияющих на правильную работу приложения, не выявлено.
Данная программа тестировалась на компьютере следующей конфигурации:
1. Процессор Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
2. ОЗУ 2.00 ГБ
3. ОС Windows 7 Ultimate x86
Заключение
В данной курсовой работе были углублены знания, полученные в ходе лекционных и практических занятий. Получены навыки самостоятельной работы по формализации поставленной задачи, программированию, тестированию и отладке задач на ПЭВМ. Получены базовые навыки при разработке объектно-ориентированных программ. Разработана универсальная программа, позволяющая добавлять, удалять и хранить данные в организации «Такси».
Приложение отвечает тем требованиям, которые были предъявлены к ней в ходе разработки, а именно использовании структуры классов, наглядности и удобству в использовании.
Список литературы
1. Материалы сайта https://msdn.microsoft.com/
2. Электронный вариант лекций по дисциплине «ООП». Ресурс: is-serv//s:\ Andrianov\OOP\Лекции по ООП формат Office 2003.doc
3. Герберт Шилдт, Полный справочник по C#.: Пер. с англ. – М.: Издательский дом «Вильямс», 2004. – 752 с.: ил. – Парал. тит. англ.;
4. Культин Н. Б. Microsoft Visual C# в задачах и примерах. – СПб.: БХВ – Петербург, 2009. – 320 с
Приложение A. Реализация иерархии классов
TaxiStation:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Taxi
{
class TaxiStation
{
private int number_of_cars;
public int fare;
public string service_time;
public TaxiStation()
{
number_of_cars = 0;
fare = 0;
service_time = "NO NAME";
}
public TaxiStation(int number_of_cars1, int fare1, string service_time1)
{
number_of_cars = number_of_cars1;
fare = fare1;
service_time = service_time1;
}
public int GetNumberOfCars(int number_of_cars)
{
return number_of_cars;
}
public int GetFare(int fare)
{
return fare;
}
public string GetServiceTime(string service_time)
{
return service_time;
}
public void SetNumberOfCars(int number_of_cars1)
{
number_of_cars = number_of_cars1;
}
public void SetFare(int fare1)
{
fare = fare1;
}
public void SetServiceTime(string service_time1)
{
service_time = service_time1;
}
}
}
Car:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Taxi
{
class Car: TaxiStation
{
public string model;
public string color;
public string condition;
public Car()
{
model = "NO NAME";
color = "NO NAME";
condition = "NO NAME";
}
public Car(string model1, string color1, string condition1)
{
model = model1;
color = color1;
condition = condition1;
}
public string GetModel(string model)
{
return model;
}
public string GetColor(string color)
{
return color;
}
public string GetCondition(string condition)
{
return condition;
}
public void SetModel(string model1)
{
model = model1;
}
public void SetColor(string color1)
{
color = color1;
}
public void SetCondition(string condition1)
{
condition = condition1;
}
}
}
Employee:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Taxi
{
class Employee: TaxiStation
{
public string surname;
public string name;
public string patrinymic;
public int age;
public int salary;
public Employee()
{
surname = "NO NAME";
name = "NO NAME";
patrinymic = "NO NAME";
age = 0;
salary = 0;
}
public Employee(string surname1, string name1, string patrinymic1, int age1, int salary1)
{
surname = surname1;
name = name1;
patrinymic = patrinymic1;
age = age1;
salary = salary1;
}
public string GetSurname(string surname)
{
return surname;
}
public string GetName(string name)
{
return name;
}
public string GetPatrinymic(string patrinymic)
{
return patrinymic;
}
public int GetAge(int age)
{
return age;
}
public int GetSalary(int salary)
{
return salary;
}
public void SetSurname(string surname1)
{
surname = surname1;
}
public void SetName(string name1)
{
name = name1;
}
public void SetPatrinymic(string patrinymic1)
{
patrinymic = patrinymic1;
}
public void SetAge(int age1)
{
age = age1;
}
public void SetSalary(int salary1)
{
salary = salary1;
}
}
}
Driver:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Taxi
{
class Driver: Employee
{
public string driver_surname;
public string driver_name;
public string driver_patrinymic;
public int driver_age;
public int driver_salary;
public int driving_experience;
public int code_number;
public Driver()
{
driver_surname = "NO NAME";
driver_name = "NO NAME";
driver_patrinymic = "NO NAME";
driver_age = 0;
driver_salary = 0;
driving_experience = 0;
code_number = 0;
}
public Driver(string driver_surname1, string driver_name1, string driver_patrinymic1, int driver_age1, int driver_salary1, int driving_experience1, int code_number1)
{
driver_surname = driver_surname1;
driver_name = driver_name1;
driver_patrinymic = driver_patrinymic1;
driver_age = driver_age1;
driver_salary = driver_salary1;
driving_experience = driving_experience1;
code_number = code_number1;
}
public string GetDriverSurname(string driver_surname)
{
return driver_surname;
}
public string GetDriverName(string driver_name)
{
return driver_name;
}
public string GetDriverPatrinymic(string driver_patrinymic)
{
return driver_patrinymic;
}
public int GetDriverAge(int driver_age)
{
return driver_age;
}
public int GetDriverSalary(int driver_salary)
{
return driver_salary;
}
public int GetDrivingExperience(int driving_experience)
{
return driving_experience;
}
public int GetCodeNumber(int code_number)
{
return code_number;
}
public void SetDriverSurname(string driver_surname1)
{
driver_surname = driver_surname1;
}
public void SetDriverName(string driver_name1)
{
driver_name = driver_name1;
}
public void SetDriverPatrinymic(string driver_patrinymic1)
{
driver_patrinymic = driver_patrinymic1;
}
public void SetDriverAge(int driver_age1)
{
driver_age = driver_age1;
}
public void SetDriverSalary(int driver_salary1)
{
driver_salary = driver_salary1;
}
public void SetDrivingExperience(int driving_experience1)
{
driving_experience = driving_experience1;
}
public void SetCodeNumber(int code_number1)
{
code_number = code_number1;
}
}
}
Dispatcher:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Taxi
{
class Dispatcher: Employee
{
public string dispatcher_surname;
public string dispatcher_name;
public string dispatcher_patrinymic;
public int dispatcher_age;
public int dispatcher_salary;
public int number_of_serviced_cars;
public Dispatcher()
{
dispatcher_surname = "NO NAME";
dispatcher_name = "NO NAME";
dispatcher_patrinymic = "NO NAME";
dispatcher_age = 0;
dispatcher_salary = 0;
number_of_serviced_cars = 0;
}
public Dispatcher(string dispatcher_surname1, string dispatcher_name1, string dispatcher_patrinymic1, int dispatcher_age1, int dispatcher_salary1, int number_of_serviced_cars1)
{
dispatcher_surname = dispatcher_surname1;
dispatcher_name = dispatcher_name1;
dispatcher_patrinymic = dispatcher_patrinymic1;
dispatcher_age = dispatcher_age1;
dispatcher_salary = dispatcher_salary1;
number_of_serviced_cars = number_of_serviced_cars1;
}
public string GetDispatcherSurname(string dispatcher_surname)
{
return dispatcher_surname;
}
public string GetDispatcherName(string dispatcher_name)
{
return dispatcher_name;
}
public string GetDispatcherPatrinymic(string dispatcher_patrinymic)
{
return dispatcher_patrinymic;
}
public int GetDispatcherAge(int dispatcher_age)
{
return dispatcher_age;
}
public int GetDispatcherSalary(int dispatcher_salary)
{
return dispatcher_salary;
}
public int GetNumberOfServicedCars(int number_of_serviced_cars)
{
return number_of_serviced_cars;
}
public void SetDispatcherSurname(string dispatcher_surname1)
{
dispatcher_surname = dispatcher_surname1;
}
public void SetDispatcherName(string dispatcher_name1)
{
dispatcher_name = dispatcher_name1;
}
public void SetDispatcherPatrinymic(string dispatcher_patrinymic1)
{
dispatcher_patrinymic = dispatcher_patrinymic1;
}
public void SetDispatcherAge(int dispatcher_age1)
{
dispatcher_age = dispatcher_age1;
}
public void SetDispatcherSalary(int dispatcher_salary1)
{
dispatcher_salary = dispatcher_salary1;
}
public void SetNumberOfServicedCars(int number_of_serviced_cars1)
{
number_of_serviced_cars = number_of_serviced_cars1;
}
}
}
Приложение B. Листинг