Програмування мовою високого рівня для вирішення задач управління військами та зв’язком

Розробка алгоритму програми для проведення розрахунків аналітичних виразів та обробки структурованих даних з метою вирішення завдань управління військами. Заповнення двовимірного масиву програмних елементів речового типу та генератор випадкових чисел.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 15.05.2019
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

5

ВІЙСЬКОВИЙ ІНСТИТУТ ТЕЛЕКОМУНІКАЦІЙ ТА ІНФОРМАТИЗАЦІЇ

Імені Героїв Крут

КУРСОВА РОБОТА

з навчальної дисципліни «Інформатика»

Тема:

«Програмування мовою високого рівня для вирішення задач управління військами та зв'язком»

Київ-2018

Зміст

Анотація

Вступ

1. Розділ 1

1.1 Завдання

1.2 Розробка алгоритму програми

1.3 Лістинг програми

1.4 Результати роботи програми

2 Розділ 2

2.1 Завдання

2.2 Лістинг програми

2.3 Результати роботи програми

Висновки

Список літератури

Додаток 1 (До програми 1)

Додаток 2 (До програми 2)

Анотація

У даній курсовій роботі здійснюється програмування на мові високого рівня для вирішення задачі роботи з двовимірними масивами та обробки складних (структурованих) типів даних.

Робота виконана на 18 сторінках друкованого тексту, містить 3 малюнки та список використаної літератури. Робота має 2 додатки, які містять результати роботи програм роботи з двовимірними масивами, обробки складних типів даних та результати роботи програм.

Робота виконана українською мовою.

Вступ

Серед сучасних мов програмування мова С++ є однією з найбільш поширених. Мова С++ є машинно-незалежною процедурною мовою програмування.

Мова С++ універсальна, вона добре зарекомендувала себе ефективністю, лаконічністю запису алгоритмів, логічною стрункістю програм. У багатьох випадках програми, написані на мові С++, порівнянні по швидкості виконання з програмами, написаними на мові асемблера; при цьому вони більш наглядні і прості в супроводі.

Однією з основних переваг мови С++ вважається висока переносимість написаних ньому програм між комп'ютерами з різною архітектурою, між різними операційними середовищами. Транслятори мови С++ існують практично для всіх персональних комп'ютерів, що використовуються в цей час.

Мова С++ має ряд істотних особливостей, які виділяють її серед інших мов програмування:

- наявність операцій низького рівня, зокрема, операцій над бітами;

- базові типи даних мови С++ відображають ті ж об'єкти, з якими доводиться мати справу в програмі на мові асемблера, - байти, машинні слова, символи, рядки;

- підтримується механізм покажчиків, що дозволяє здійснювати безпосередній доступ і роботу з адресами пам'яті практично так само легко, як на мові асемблера;

- слабкий контроль типів даних, що з одного боку може допомогти в підвищенні ефективності програми, а з іншого - заважає відладці;

- в мові С++ відсутні вбудовані оператори для виконання операцій введення-виведення, динамічного розподілу пам'яті, управління процесами і т.п., однак в системне оточення мови С++ входять бібліотеки стандартних функцій, в яких реалізовані подібні дії. Винесення цих функцій в бібліотеку дозволить відділити особливості архітектури конкретного комп'ютера і операційної системи від реалізації мови.

Система програмування С++ об'єднує в собі:

- текстовий редактор;

- компілятор;

- компонувальник;

- відлагоджувач;

- систему підказок.

Курсова робота присвячена розробці програм мовою С++ для отримання практичних навичок створення та відладки програм з метою проведення розрахунків аналітичних виразів та обробки складних (структурованих) типів даних, які можуть бути застосовані в процесі обробки інформації для вирішення задач управління військами та зв'язком.

алгоритм програма структуровані дані

Розділ 1

1.1 Завдання

Розробити алгоритм та програму (проект) мовою програмування С++, яка задає двовимірний масив елементів дійсного типу (матрицю А) заданого розміру N Ч M; надає можливість заповнити масив власноруч з клавіатури або з використанням генератора випадкових чисел; реалізує його обробку, як зазначено у варіанті.

У програмі повинні бути передбачені функції введення-виведення елементів масиву А та його обробки, вихідний масив та результати його обробки повинні бути виведені на форму.

Завдання варіанту:

Знайти суму всіх позитивнихпарних елементіву кожному рядку матриці А розміром 8Ч9.

1.2 Розробка алгоритму програми

Рис 1.1 Алгоритм пошуку суми та добутку всіх додатніх елементів

1.3 Лістинг програми

#include<vcl.h>

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#include<cmath>

#pragmahdrstop

#include "Unit1.h"

#pragmapackage(smart_init)

#pragmaresource "*.dfm"

usingnamespacestd;

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

Memo1->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Form1->Close();

}

//---------------------------------------------------------------------------

intrandomNumber()

{

returnrand() %50 - 25;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

for(int i = 0; i < 9; i++)

{

for(int j = 0; j < 9; j++)

{

StringGrid1->Cells[i][j] = randomNumber();

}

}

Button2->Enabled = true;

Memo1->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

for(int i = 0; i < 9; i++)

{

for(int j = 0; j < 9; j++)

{

StringGrid1->Cells[i][j] = " ";

}

}

Button2->Enabled = false;

Memo1->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

AnsiStringstr;

intsum = 0, dob = 1;

for(int i = 0; i < 9; i++)

{

for(int j = 0; j < 9; j++)

{

if(StrToInt(StringGrid1->Cells[i][j]) >= 0)

{

sum += StrToInt(StringGrid1->Cells[i][j]);

}else

{

dob *= StrToInt(StringGrid1->Cells[i][j]);

}

}

}

Memo1->Lines->Add("Sum: " + IntToStr(sum));

Memo1->Lines->Add("Dob: " + IntToStr(dob));

Button2->Enabled = false;

}

//---------------------------------------------------------------------------

1.4 Результат роботи

Розділ 2

2.1 Завдання

Розробити алгоритм та програму (проект) мовою програмування С++, яка записує до файлу визначені згідно варіанту дані (таблицю) та надає можливість переглядати зміст цього файлу. Запрограмувати можливість змінювати у файлі той рядок (запис), номер якого зазначить користувач у текстовому полі (зауважимо, що рядки нумеруються з 0). Надати можливість переглядання файлу, розпочинаючи з зазначеного запису, - номер запису задає користувач. Кількість записів - 10.

Запрограмувати операції над даними згідно варіанту. Передбачити виведення результатів операцій на екран (форму).

Індивідуальне завдання:

Міста

(№, Назва, Вартість, Дата отримання , ПІБ, Дата списання)

Список виданого майна за ПІБ

2.2 Лістинг програми

#include<vcl.h>

#include<fstream>

#include<cstdlib>

#include<iostream>

#include<string>

#include<vector.h>

#pragmahdrstop

#include "Unit1.h"

#pragmapackage(smart_init)

#pragmaresource "*.dfm"

usingnamespacestd;

TForm1 *Form1;

vector<string>city;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

StringGrid1->Cells[0][0] = "№";

StringGrid1->Cells[1][0] = "Назва";

StringGrid1->Cells[2][0] = "Область";

StringGrid1->Cells[3][0] = "Населення";

StringGrid1->Cells[4][0] = "Рік заснування";

StringGrid2->Cells[0][0] = "№";

StringGrid2->Cells[1][0] = "Назва";

StringGrid2->Cells[2][0] = "Область";

StringGrid2->Cells[3][0] = "Населення";

StringGrid2->Cells[4][0] = "Рік заснування";

Edit1->Text = "";

Edit2->Text = "";

Edit3->Text = "";

Edit5->Text = "";

Edit6->Text = "";

Edit4->Text = "0";

}

//---------------------------------------------------------------------------

voidaddToFile(stringstr)

{

fstreamfin("Data.txt", ios_base::app|ios_base::out);

if(!fin.is_open())

{

ShowMessage("Файл не знайдено!");

return;

}

fin<<str<<endl;

fin.close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if((Edit1->Text.IsEmpty()) || (Edit2->Text.IsEmpty()) || (Edit3->Text.IsEmpty()) || (Edit5->Text.IsEmpty()))

{

ShowMessage("Заповніть всі поля для введення інформації!");

} else

{

AnsiStringstr = Edit1->Text + "$" + Edit2->Text + "$" + Edit3->Text + "$" + Edit5->Text;

addToFile(str.c_str());

}

Edit1->Text = "";

Edit2->Text = "";

Edit3->Text = "";

Edit5->Text = "";

Edit6->Text = "";

Edit4->Text = "0";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

StringGrid1->Visible = true;

StringGrid2->Visible = false;

Button3->Enabled = true;

StringGrid1->RowCount = 2;

stringdelimiter = "$";

stringstr = "";

fstreamfout("Data.txt", ios_base::in);

intnumb = StrToInt(Edit4->Text);

if(!fout.is_open())

{

ShowMessage("Файл не знайдено!");

return;

}

int i = 0;

while(getline(fout, str))

{

if(numb> 0)

{

numb--;

continue;

}

city.push_back(str);

int a = str.find(delimiter);

intlength = str.length();

string token1 = str.substr(0, a);

string subToken1 = str.substr(a + 1, length);

a = subToken1.find(delimiter);

string token2 = subToken1.substr(0, a);

string subToken2 = subToken1.substr(a + 1, length);

a = subToken2.find(delimiter);

string token3 = subToken2.substr(0, a);

string subToken3 = subToken2.substr(a + 1, length);

a = subToken3.find(delimiter);

string token4 = subToken3.substr(0, a);

i++;

StringGrid1->Cells[0][i] = IntToStr(i);

StringGrid1->Cells[1][i] = AnsiString(token1.c_str());

StringGrid1->Cells[2][i] = AnsiString(token2.c_str());

StringGrid1->Cells[3][i] = AnsiString(token3.c_str());

StringGrid1->Cells[4][i] = AnsiString(token4.c_str());

StringGrid1->RowCount++;

}

StringGrid1->Height = StringGrid1->RowCount * 24;

StringGrid1->RowCount--;

fout.close();

Edit1->Text = "";

Edit2->Text = "";

Edit3->Text = "";

Edit5->Text = "";

Edit6->Text = "";

Edit4->Text = "0";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

{

intnumb = StrToInt(Edit4->Text);

if((Edit1->Text.IsEmpty()) || (Edit2->Text.IsEmpty()) || (Edit3->Text.IsEmpty()) || (Edit5->Text.IsEmpty()))

{

ShowMessage("Заповніть всі поля для введення інформації!");

} else

{

AnsiStringstr = Edit1->Text + "$" + Edit2->Text + "$" + Edit3->Text + "$" + Edit5->Text + "$" + Edit6->Text;

city[numb - 1] = str.c_str();

fstreamfin("Data.txt", ios_base::out);

for(int i = 0; i <city.size(); i++)

city.push_back(city[i]);

}

Edit1->Text = "";

Edit2->Text = "";

Edit3->Text = "";

Edit5->Text = "";

Edit6->Text = "";

Edit4->Text = "0";;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

StringGrid2->RowCount = 2;

boolflag = false;

intcount = 1;

for(int i = 1; i < StringGrid1->RowCount; i++)

{

if(StringGrid1->Cells[2][i] == Edit6->Text)

{

StringGrid2->Cells[0][count] = IntToStr(count);

StringGrid2->Cells[1][count] = StringGrid1->Cells[1][i];

StringGrid2->Cells[2][count] = StringGrid1->Cells[2][i];

StringGrid2->Cells[3][count] = StringGrid1->Cells[3][i];

StringGrid2->Cells[4][count] = StringGrid1->Cells[4][i];

StringGrid2->RowCount++;

count++;

flag = true;

}

}

StringGrid2->Height = StringGrid2->RowCount * 24;

StringGrid2->RowCount--;

if(flag)

{

StringGrid1->Visible = false;

StringGrid2->Visible = true;

}

Edit1->Text = "";

Edit2->Text = "";

Edit3->Text = "";

Edit5->Text = "";

Edit6->Text = "";

Edit4->Text = "0";

}

//---------------------------------------------------------------------------

2.3 Результати роботи програми

Висновки

В ході даної курсової роботи, було вдосконалено знання з мови програмування С++, та застосовано їх на практиці.

Було виконано два завдання: 1 завдання:

Розробити алгоритм та програму (проект) мовою програмування С++, яка задає двовимірний масив елементів дійсного типу (матрицю А) заданого розміру N Ч M; надає можливість заповнити масив власноруч з клавіатури або з використанням генератора випадкових чисел; реалізує його обробку, як зазначено у варіанті.

У програмі повинні бути передбачені функції введення-виведення елементів масиву А та його обробки, вихідний масив та результати його обробки повинні бути виведені на форму.

Завдання варіанту: Знайти суму всіх позитивнихпарних елементів у кожному рядку матриці А розміром 8Ч9. 2 завдання:

Розробити алгоритм та програму (проект) мовою програмування С++, яка записує до файлу визначені згідно варіанту дані (таблицю) та надає можливість переглядати зміст цього файлу. Запрограмувати можливість змінювати у файлі той рядок (запис), номер якого зазначить користувач у текстовому полі (зауважимо, що рядки нумеруються з 0). Надати можливість переглядання файлу, розпочинаючи з зазначеного запису, - номер запису задає користувач. Кількість записів - 10.

Запрограмувати операції над даними згідно варіанту. Передбачити виведення результатів операцій на екран (форму).

Індивідуальне завдання:

Міста

(№, Назва, Вартість, Дата отримання , ПІБ, Дата списання)

Список виданого майна за ПІБ

Список літератури яка була використана:

1. Ю.А. Бєлов, Т.О. Карнаух, Ю.В. Коваль, А.Б. Ставровський. Вступ до програмування мовою С++.-Київ: видавничо-поліграфічний центр ”Київський університет”.2012р. ,175ст.

2. О.Г. Трофименко, Ю.В. Прокоп, І.Г. Швайко, Л.М. Буката. С++ Основи програмування. Теорія та практика. -Одеса: Фенікс. 2010р. , 544ст.

3. Глинський Я.М. , Анохін В.С. , Ряжська В.А. C++ і С++ Builder. -Львів: ДЕОЛ. 2002р. ,144ст

Додаток 1 ( до програми 1)

Додаток 2 ( до програми 2)

Размещено на Allbest.ru


Подобные документы

  • Схема алгоритму програми. Алгоритм процедури введення даних, виведення результатів сортування, побудови дерева, перестановки елементів, "вирішення сімейного конфлікту". Приклад для масиву з 20 елементів. Користувацьке вікно та побудова піраміди.

    курсовая работа [3,0 M], добавлен 21.02.2011

  • Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.

    курсовая работа [1,3 M], добавлен 23.06.2010

  • Розробка програми імітації схеми життя лісового біому. Алгоритм пересування по головному полю. Основні глобальні функції програми. Динамічна ідентифікація типу даних. Вирішення завдань в області об’єктно-орієнтованого програмування засобами C++.

    курсовая работа [423,1 K], добавлен 26.11.2014

  • Огляд суті гри "Доміно", характеристика її існуючих програмних реалізацій. Розробка евристичного алгоритму для розв’язання ігрової ситуації "Доміно". Програмна реалізація алгоритму мовою програмування високого рівня C#. Отладка оціночної функції.

    курсовая работа [1,4 M], добавлен 14.05.2012

  • Розв'язання задач мовою програмування VBA з використанням алгоритмів лінійної, розгалуженої та ітераційної циклічної структури. Розробка блок-схеми алгоритму, таблиці ідентифікаторів та тексту програми. Створення власної панелі інструментів користувача.

    практическая работа [1012,6 K], добавлен 19.02.2010

  • Програма на мові програмування С++. Аналіз стану технологій програмування та обґрунтування теми. Розробка програми виконання завдання, методу вирішення задачі. Робота з файлами, обробка числової інформації і робота з графікою. Розробка програми меню.

    курсовая работа [41,0 K], добавлен 17.02.2009

  • Програмування масиву і сукупність елементів одного типу даних, впорядкованих за індексами, які зазвичай репрезентовані натуральними числами, що визначають положення елемента в масиві. Лістинг програми та блок-схема алгоритму і результат виконання.

    курсовая работа [453,1 K], добавлен 06.06.2012

  • Розробка бази даних для автоматизації облікової інформації в системі управління базами даних Access з метою полегшення роботи з великими масивами даних, які існують на складах. Обґрунтування вибору системи управління. Алгоритм та лістинг програми.

    курсовая работа [550,9 K], добавлен 04.12.2009

  • Розробка структурної схеми системи управління, головні вимоги до основних елементів. Обґрунтування та вибір елементної бази. Блок-схема алгоритму і програми реалізації закону управління (лістинг програми). Зміст програми керування мікроконтроллером.

    курсовая работа [170,7 K], добавлен 28.08.2012

  • Розробка системних програм мовою асемблера або мовою високого рівня з вставками цією мовою. Формати числових даних, виконання арифметичних операцій. Арифметичні команди над двійковими цілими, двійково-десятковими не упакованими та упакованими числами.

    методичка [232,4 K], добавлен 11.01.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.