Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
То что меняю(2).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
308.22 Кб
Скачать

9.Список використаної літератури

  1. С / С++. Програмування на мові високого рівня (Т. А. Павловська).

  2. Теоретичні відомості з лабораторних робіт 1 – 5 (О. В. Морозова).

  3. Програмування мовою С++ (Юрій Грицюк, Тарас Рак).

  4. Вільна бібліотека: http://uk.wikipedia.org/ .

  5. Веб – сайт: 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";

}