Програмування мовою високого рівня для вирішення задач управління військами та зв’язком
Розробка алгоритму програми для проведення розрахунків аналітичних виразів та обробки структурованих даних з метою вирішення завдань управління військами. Заповнення двовимірного масиву програмних елементів речового типу та генератор випадкових чисел.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 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