
- •Курсова робота
- •Завдання
- •1. Пояснювальна записка
- •2. Розрахункова частина
- •3. Позитивні сторони _______________________________________
- •1. Абстрагування
- •2. Інкапсуляція
- •3. Успадкування
- •3.1 Загальні поняття
- •3.2 Одиночне успадкування
- •4. Поліморфізм
- •4.1 Загальні поняття
- •4.2 Поліморфізм і його реалізація через віртуальні функції
- •4.3 Абстрактні та віртуальні базові класи
- •4.4 Перевантаження функцій і операцій
- •5. Класи
- •5.1 Інтерфейс і реалізація в класі
- •5.2 Конструктори і деструктори
- •7. Динамічний розподіл пам’яті
- •8.Висновок
- •9.Список використаної літератури
- •Додаток 1. Лістинг програми
- •Додаток 2. Результати роботи програми
- •Додаток 3. Cd – диск з програмою
9.Список використаної літератури
С / С++. Програмування на мові високого рівня (Т. А. Павловська).
Теоретичні відомості з лабораторних робіт 1 – 5 (О. В. Морозова).
Програмування мовою С++ (Юрій Грицюк, Тарас Рак).
Вільна бібліотека: http://uk.wikipedia.org/ .
Веб – сайт: http://www.c-cpp.ru/ .
Додаток 1. Лістинг програми
#include <cstdlib>
#include <iostream>
#include <string.h>
using namespace std;
class rozklad_potyagiv //Клас "Розклад потягiв"
{
public: //Оголошення публiчного доступу до наведених нижче змiнних та методiв
string punkt_priznachennya; //Оголошення змiнної "Пункт призначення"
string nomer_potyagy; //Оголошення змiнної "Номер потягу"
string chas_vidpravlenya; //Оголошення змiнної "Час вiдправлення"
rozklad_potyagiv(); //оглошення конструктора
void vvod(); //Оглошення методу класу - "Введення даних"
void vuvod(); //Оглошення методу класу - "Виведення даних"
void sort_punkt_priznachnya(rozklad_potyagiv *china,int n); /*Оголошення методу сортуван-ня*/
void vuvod_po_poisky(rozklad_potyagiv *china,int n); /*Оголошення методу пошуку по часу*/
~rozklad_potyagiv(); //Оголошення деструктора
};
rozklad_potyagiv::rozklad_potyagiv() //Конструктор
{
punkt_priznachennya=nomer_potyagy="\nПусто";//Надається змiнним значення "Пусто"
chas_vidpravlenya="\nПусто";//Надається змiнним значення "Пусто"
}
rozklad_potyagiv::~rozklad_potyagiv() //Деструктор
{
//Працює деструктор
}
/* Методи */
void rozklad_potyagiv::vvod() //Описує метод "Введення даних" класу "Розклад потягiв"
{
cout<<"Введiть пункт прибуття:\t\t";
cin>>punkt_priznachennya;
cout<<"Введiть номер поїзду:\t\t";
cin>>nomer_potyagy;
cout<<"Введiть час вiдправлення:\t";
cin>>chas_vidpravlenya;
}
void rozklad_potyagiv::vuvod() //Описує метод "Виведення даних" класу "Розклад потягiв"
{
cout<<"\n\nПункт прибуття:\t\t"<<punkt_priznachennya<<'\n';
cout<<"Номер поїзду:\t\t"<<nomer_potyagy<<'\n';
cout<<"Час вiдправлення:\t"<<chas_vidpravlenya<<'\n';
}
void rozklad_potyagiv::vuvod_po_poisky(rozklad_potyagiv *china,int n) /*Опис функцiї пошуку по часу*/
{
string chas_poisk; //Оголошення змiнної, по якiї буде вiдбуватись пошук по часу
int i,k=0;
cout<<"\n_____________________________________________________________\n";
cout<<"\t\tВведiть час для пошуку: = ";
cin>>chas_poisk;
for(i=0;i<n;i++)
if(china[i].chas_vidpravlenya==chas_poisk) /*Перевiрка умови, якщо умова виконується, то повертає значення "iстина"*/
{
cout<<"\t\t*******************\n\t\t\tНайдено\t\t\n\t\t*******************\n";
china[i].vuvod();k++;
}
if(k==0) cout<<"Не найдено!\n"; /*Перевiрка умови, якщо не буде знайдено даних по часу, то виведеться повiдомлення*/
}
void rozklad_potyagiv::sort_punkt_priznachnya(rozklad_potyagiv *china, int n) /*Опис методу сортування по пункту призначення(це бульбашкови метод сортування)*/
{
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if (china[i].punkt_priznachennya <= china[j].punkt_priznachennya)
swap(china[i], china[j]); /*Функцiя swap() обмiнює значення своїх аргументiв, в даному випадку*/
//змiннi будуть розашовуватись по алфавiту
}
/* Функцiї */
void spravka();
void dop_f_autozapolnenie(); //Додаткова функція "Автозаповнення"
const int n=5; /*Оголошення глобальної константної змiнної i iнiцiалiзацiя змiнної n,де n - це кiлькiсть масиву об'єктiв*/
rozklad_potyagiv china[n]; //Оголошення масиву об'єктiв china[n]
//Головна функцiя
int main()
{
setlocale( LC_ALL,"Russian" ); //Функція для виводу в консолі кирилицю
spravka(); //Виклик справки
int menu; //Оголошення змiнної, для введення вибору
while(1) //Цикл з передумовою
{
cout<<"\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
cout<<"\t\tКурсова робота на тему \"Розклад потягiв\"\n";
cout<<"\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
cout<<"\t\t\t0.Вихiд\n";
cout<<"1.Ввести данi\t\t\t\t2.Вивiд всiх отриманих даних\n";
cout<<"3.Очистити консоль\t\t\t4.Пошук по часу вiдправлення\n";
cout<<"5.Автозаповнення\t\t\t6.Справка\n";
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
cout<<"Ваш вибiр: ";
cin>>menu; //Введення вибору
switch(menu) //Оператор вибору
{
case 1:
cout<<"\n~~~~~~~~~~~~~~~Ввод даних~~~~~~~~~~~~~~~~~~~\n";
for(int i=0;i<n;i++)
{
cout<<"\n~*~*~*#Заповнення пункту номер "<<i+1<<"#~*~*~*~*~**~\n";
china[i].vvod();
}
break;
case 2:
china[n].sort_punkt_priznachnya(china,n); //Виклик функцiї сортування
cout<<"\n~~~~~~~~~~~~~~~Вивiд даних~~~~~~~~~~~~~~~~~~~\n";
for(int i=0;i<n;i++)
{
cout<<"\n~*~*~*#Отриманi данi номер "<<i+1<<"#~*~*~*~*~**~\n";
china[i].vuvod();
}
;break;
case 0:return 0;break;
case 3:system("cls");break;
case 4:china[n].vuvod_po_poisky(china,n);break;
case 5:dop_f_autozapolnenie();break;
case 6:spravka();break;
default:cout<<"Невiрно вибраний пункт меню!\tВиберiть заново:\n";
break;
}
}
system("PAUSE>>int"); //Консольна команда паузи
}
void dop_f_autozapolnenie() //Опис функції "Автозаповнення"
{
string dop_punkt_prizn[5],dop_ch_vidp[5],dop_n_p[5]; //масиви рядкiв
dop_punkt_prizn[0]="Балаклея";dop_punkt_prizn[1]="Санжариха";
dop_punkt_prizn[2]="Одеса";dop_punkt_prizn[3]="Смела";
dop_punkt_prizn[4]="Севастополь";
dop_ch_vidp[0]="1:05";dop_ch_vidp[1]="15:45";
dop_ch_vidp[2]="16:30";dop_ch_vidp[3]="19:00";
dop_ch_vidp[4]="8:15";
dop_n_p[0]="ЛОДР-1548";dop_n_p[1]="ОРКС-0156";
dop_n_p[2]="НАДР-1789";dop_n_p[3]="МЕРТ-3655";
dop_n_p[4]="ПРИТ-7845";
int i;
for(i=0;i<n;i++)
{
china[i].punkt_priznachennya=dop_punkt_prizn[i];
china[i].chas_vidpravlenya=dop_ch_vidp[i];
china[i].nomer_potyagy=dop_n_p[i];
}
}
void spravka()
{
cout<<"Дана курсова робота написана на мовi С++\n";
cout<<"На тему \"Розклад поїздiв\"\n";
cout<<"Виконав студент групи ПР - 9 - 12\n";
cout<<"Гребенюк Iван Андрiйович\n";
cout<<"З предмету Обєктно - орiєнтоване програмування\n";
cout<<"///////////////////////////////////////////////\n";
cout<<"В даннiй програмi є можливiсть вводити данi,\n";
cout<<"виводити даннi, їх сортувати та виводити вже вiдсортовану iнформацiю\n";
cout<<"про розклад потягiв.\n";
cout<<"В данiй програмi є клас \"розклад потягiв\",\n";
cout<<"в якому є метод вводу даних в об\'єкт,\n";
cout<<"виводу їх, також є метод сортування та пошуку даних.\n";
cout<<"Також в програмi присутня головна функцiя main() \n";
cout<<"в якому мiститься меню вибору певної дiї.\n";
cout<<"Є функцiя автозаповнення, яка автоматично заповнює даннi\n";
cout<<"в нiй автоматично може заповнитись до 5 об\'єктiв\n";
cout<<"///////////////////////////////////////////////\n";
}