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

Програмування на мові високого рівня для вирішення задачі роботи з двовимірними масивами та обробки складних типів даних. Визначення істотних особливостей мови С++. Створення та відладка програм з метою проведення розрахунків аналітичних виразів.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 12.11.2019
Размер файла 572,9 K

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

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

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

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

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

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

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

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

Виконав: курсант 182 навч.групи:

Колпаков О.С.

Перевірив: ст. викладач кафедри 22:

Нестаренко М.М

Київ 2019

Зміст

Анотація

Вступ

1.1 Завдання

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

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

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

2.1 Завдання

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

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

Висновки

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

Додаток 1

Додаток 2

Анотація

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

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

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

Вступ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.1 Завдання

програма двовимірний програмування мова

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

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

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

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

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

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

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

#include <vcl.h>

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <cmath>

#pragma hdrstop

#include "Unit1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

using namespace std;

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Form1->Close();

}

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

int randomNumber()

{

return rand() %20 - 10;

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

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

{

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

{

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

}

}

Button2->Enabled = true;

}

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

void __fastcall TForm1::Button3Click(TObject *Sender)

{

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

{

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

{

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

}

}

Button2->Enabled = false;

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

int sum = 0;

int dob = 1;

for(int i = 0; i < StringGrid1->ColCount; i++)

{

for(int j = 0; j < StringGrid1->RowCount; j++)

{

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

{

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

}

else

{

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

}

}

}

ShowMessage("сумa всіх негативних елементів " + IntToStr(sum) + "\nдобуток всіх позетивних елементів " + IntToStr(dob));

Button2->Enabled = false;

}

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

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

2.1 Завдання

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

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

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

Музей

(№, Назва експонату, Зал, Автор,Вартість)

Список експонату по заданому залу

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

#include <vcl.h>

#include <fstream>

#include <cstdlib>

#include <iostream>

#include <string>

#include <vector.h>

#pragma hdrstop

#include "Unit1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

using namespace std;

TForm1 *Form1;

vector<string> product;

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

__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] = "Ціна";

}

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

void addToFile(string str)

{

fstream fin("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

{

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

addToFile(str.c_str());

}

Edit1->Text = "";

Edit2->Text = "";

Edit3->Text = "";

Edit5->Text = "";

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

StringGrid1->Visible = true;

StringGrid2->Visible = false;

Button3->Enabled = true;

StringGrid1->RowCount = 2;

string delimiter = "$";

string str = "";

fstream fout("Data.txt", ios_base::in);

int numb = StrToInt(Edit4->Text);

if(!fout.is_open())

{

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

return;

}

int i = 0;

while(getline(fout, str))

{

if(numb > 0)

{

numb--;

continue;

}

product.push_back(str);

int a = str.find(delimiter);

int length = 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 * 25;

if(StringGrid1->RowCount > 12)

{

StringGrid1->Height = 12 * 25;

}

StringGrid1->RowCount--;

fout.close();

}

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

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Form1->Close();

}

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

void __fastcall TForm1::Button5Click(TObject *Sender)

{

int numb = StrToInt(Edit4->Text);

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

{

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

} else

{

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

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

fstream fin("Data.txt", ios_base::out);

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

addToFile(product[i]);

}

Edit1->Text = "";

Edit2->Text = "";

Edit3->Text = "";

Edit5->Text = "";

Edit4->Text = "0";

}

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

void __fastcall TForm1::Button3Click(TObject *Sender)

{

StringGrid2->RowCount = 2;

bool flag = false;

int count = 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 * 25;

if(StringGrid2->RowCount > 12)

{

StringGrid2->Height = 12 * 25;

}

StringGrid2->RowCount--;

if(flag)

{

StringGrid1->Visible = false;

StringGrid2->Visible = true;

}

}

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

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

Висновки

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

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

1 завдання:

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

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

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

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

2 завдання:

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

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

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

Музей

(№, Назва експонату, Зал, Автор,Вартість)

Список експонату по заданому залу

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

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

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

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

Додаток 1

Додаток 2

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


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

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

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

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

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

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

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

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

    отчет по практике [4,3 M], добавлен 28.08.2014

  • Методика та порядок програмування алгоритмів циклічної структури із заданим числом повторень за допомогою мови програмування VAB. Алгоритм роботи з одновимірними масивами. Програмування алгоритмів із структурою вкладених циклів, обробка матриць.

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

  • Розгляд особливостей мови програмування С++: основні можливості, характеристика функцій. Аналіз файлів з вхідними даними. Використання похідних класів як ефективний засіб об’єктно-орієнтованого програмування. Способи роздруківки графічного вирішення.

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

  • Характеристика методів та етапів створення простих програм на мові програмування С++. Особливості структури та порядку запуску програми. Функції вводу і виводу та маніпулятори мови С++. Робота з одновимірними масивами. Символьна інформація та рядки.

    дипломная работа [91,2 K], добавлен 19.06.2010

  • Алгоритми розв’язання задач у вигляді блок–схем. Використання мови програмування MS VisualBasic for Application для написання програм у ході вирішення задач на одномірний, двовимірний масив, порядок розв’язання задачі на використання символьних величин.

    контрольная работа [742,9 K], добавлен 27.04.2010

  • Теоретичні основи та приклади економічних задач лінійного програмування. Розробка математичної моделі задачі (запис цільової функції і системи обмежень) і програмного забезпечення її вирішення за допомогою "Пошуку рішень" в Excel симплекс-методом.

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

  • Ведення обліку даних, що поступають на вхід стандартного інтерфейсу RS-232(COM-порт). Програма для графічного відображення вхідних даних у вигляді графіку та збереження отриманих даних. Візуальна об'єктно-орієнтована мова програмування високого рівня.

    дипломная работа [292,4 K], добавлен 07.06.2010

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