Алгоритмизация и программирование

Изучение и применение начальных навыков программирования, принципов разработки программного обеспечения, программных алгоритмов. Отработка навыков составления блок-схем и отчетов по созданному программному обеспечению. Составление автором блок-схемы.

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

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

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

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

Федеральное агентство связи

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

"Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича"

Институт непрерывного профессионального образования

Информационные системы и технологии

Отчёт

по курсовой работе

"Алгоритмизация и программирование"

Выполнил: Есионов А.А.

Санкт-Петербург 2019

Аннотация

Цель данной курсовой работы - изучение и применение начальных навыков программирования на языке С++, принципов разработки программного обеспечения, программных алгоритмов, а также изучение и отработка навыков составления блок-схем и отчетов по созданному программному обеспечению.

Для достижения поставленной цели, необходимо выполнить следующие задачи:

1. Усвоение задания курсовой работы;

2. Формализация задачи;

3. Разработка блок-схемы алгоритма решение задачи;

4. Составление программы;

5. Руководство пользователя и отладка.

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

Основная часть

1. Условие задачи

а) Описать структуру с именем VKLAD в соответствии с таблицей вида:

№ счета

ФИО

Вид вклада

Сумма вклада (в руб.)

0012

Сидоров В.И.

Срочный

3 500р.

0100

Андреева И.Т.

Депозит

1 000р.

0200

Ковалева О.А.

Пенсионный

550р.

б) Написать программу, выполняющую следующие действия:

- Считывает данные из файла в массив, состоящий не менее, чем из 10 элементов структурированного типа VKLAD; записи в файле должны содержать не менее двух записей по каждому вкладу;

- Выводит на экран содержимое файла с базой по вкладчикам,

- Упорядоченной по номеру счета в виде таблицы:

№ счета

ФИО

Вид вклада

Сумма вклада (в руб.)

Годовой процент

Сумма по процентам за месяц

Сумма к выплате

При этом поля "Годовой процент", "Сумма по процентам за месяц и "Сумма к выплате" - вычисляемые, не входят в базу данных вкладчиков, зависят от вида вклада в соответствие с правилом:

Годовой процент = (12%, если вклад "Пенсионный";24%, если вклад "Срочный", 30%, если вклад "Депозит")

- Упорядочивает данные по фамилии;

- Находит и выводит на экран, упорядоченные по сумме вклада, данные обо всех вкладчиках, у которых один и тот же вид вклада. Наименование вклада вводится с клавиатуры; если такого вклада нет, выдать на дисплей соответствующее сообщение.

- Находит и выводит на экран всех вкладчиков и их данные, "Сумма к выплате" для которых выше среднего значения "Суммы к выплате" для всех вкладчиков. Выводимые данные упорядочиваются по полю "Сумма к выплате" программирование алгоритм блок

- Интерфейс программы реализован в виде меню выбора пунктов с возможностью многократного повтора выборов пунктов меню для ("Повторить? - нажмите '1'") и окончанием работы программы после выбора специального пункта ("Выход из программы - нажмите '2'")

Способ решения задачи

Исходя из условий задачи необходимо описать таблицу VKLAD.TXT, вывести ее в консольный экран, и предложить пользователю выбор варианта сортировки. Программа должна быть застрахована от неправильного ввода, и предлагать пользователю повторить сортировку. Так же необходимо реализовать буквенный ввод выбора сортировки "депозит", "срочный", "пенсионный".

Формализация задачи

Для написания программы использован язык С++ в среде CodeBlocks 17.11.

В соответствии с заданием, в программе будут реализованы:

- Вывод данных из файла VKLAD.txt

- Сортировка по заданным условиям.

- Возможность повторения сортировки.

- Проверка корректности ввода пользователя.

- Очистка буфера обмена во избежании ошибок при выборе сортировки.

- Локализация.

- Возможность сортировки по вводу типа вклада, с помощью переменных типа "char" на русском синтаксисе.

- Расширение консольного экрана, во избежание корректности отображения таблиц структур.

Схема алгоритма

Основная функция

Функция вывода таблицы

Текст программы

#include <iostream> //Есионов ИБ 81 ВП ВКЛАДЫ

#include <fstream>

#include <string>

#include <string.h>

#include <sstream>

#include <iomanip>

#include<vector>

#include<algorithm>

#include <Windows.h>

#include<clocale>

#include <string>

#include <stdio.h>

using namespace std;

char Tabl() //обьявление вида таблицы

{

cout""----------------------------------------------------------------------------------------------------------\n";

cout"setw(6)"left""№""setw(15)"left""\t|ФИО:""setw(10)"left""\t\t|Вид""setw(9)"left""\t|Сумма""setw(9)"left""\t|Годовой"""\t|Прозенты за""setw(8)"left""\t|Сумма к """|"" endl;

cout"setw(6)"left""счёта:""setw(15)"left""\t| ""setw(10)"left""\t\t|вклада:""setw(9)"left""\t|вклада""setw(9)"left""\t|процент:"""\t|месяц""setw(8)"left""\t\t|выплате:"""|"" endl;

cout""----------------------------------------------------------------------------------------------------------\n";

}

void Sort(int* m, int n)

{

for(int i = n - 1; i >= 1; i--)

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

{

if(m[j] > m[j+1])

{

int foo = m[j];

m[j] = m[j+1];

m[j+1] = foo;

}

}

}

int main()

{SetConsoleCP(1251);//Ввод русских символов в консоль

SetConsoleOutputCP(1251);

//system ("MODE CON: COLS=140 LINES=70");//расширить окно программы

int r=0,z=0, k=0;

char t[100]="депозит";

string line;

setlocale (LC_ALL, "RUS");

ifstream file ("VKLAD.txt");

if (!file)//проверяем открытие файла

{cout""Файл не открыт\n\n";

return -1;

}

else {cout""Файл открывается...\n\n";}

cout"Tabl();

while (getline(file, line)) //vklad txt открытие файла

{

cout "line" endl;

}

do{

r=0; //обнцление переменной цыкла

cout""\n Выполнить сортировку по:\n 1 - фамилии\n 2 - вывести вклады выше среднего\n 3 - по виду вклада\n ";

while (true) //проверка на правильность ввода

{

cin"z;

if (!cin)

{

cin.clear(); //очистка экрана

while (cin.get() != '\n');

}

if (z==1 || z==2 || z==3) break;

else {cout " " Вы ввели неверное знаение!\n";

cout " " Введите еще раз: ";

cin.clear();

}

}

if(z==1) // Сортировка по фамилии

{

std::cin.ignore(); //очистка ввода

ifstream file ("1/Фамилии.txt");

cout"" - Выполняем сортировку по Фамилиям...\n";

cout"Tabl(); //вывод таблицы

while (getline(file, line))

{cout " line " endl;

z=0;

}}

if(z==3) // Сортировка по владам

{ std::cin.ignore(); //очистка ввода

cout"" Введите тип вклада по которому желаете выполнить сортировку: ";

while (true) //проверка на правильность ввод

{

cin.getline (t, 100); //присваивание слова для переменной

if (!cin)

{

cin.clear();

while (cin.get() != '\n');

}

if (!strcmp(t, "депозит\0")) {k=1; break;}//Проверка вклада который выбрал пользователь.

else

if (!strcmp(t, "Депозит\0")) {k=1; break;} else

if (!strcmp(t, "Срочный\0")) {k=2; break;} else

if (!strcmp(t, "срочный\0")) {k=2; break;} else

if (!strcmp(t, "Пенсионный\0")) {k=3;break;} else

if (!strcmp(t, "пенсионный\0")){k=3;break;}

else {cout " " Такого вклада не существует.\n Введите существующее имя вклада по которому желаете выполнить сортировку: ";

cin.clear(); //очистка буфера

}

}

switch(k){

case 1:{ifstream file ("1/Депозит.txt"); //вывод вклада

cout"Tabl();

while (getline(file, line))

{cout " line " endl;

}

break;}

case 2:{ifstream file ("1/Срочный.txt");

cout"Tabl();

while (getline(file, line))

{cout " line " endl;

}

break;}

case 3:{ifstream file ("1/Пенсионный.txt");

cout"Tabl();

while (getline(file, line))

{cout " line " endl;

}break;} //вывод и выходи из цикла

}

}

if(z==2) // выше среднего

{

std::cin.ignore(); //очистка ввода

ifstream file ("1/вышесреднего.txt");

cout"" - Выполняем сортировку по вкладам у которых среднее значение к выплате выше среднего...\n";

cout"Tabl();

while (getline(file, line))

{

cout " line " endl;

}

cout""\n\t\t\tСреднее значение (сумма к выплате) = 5199р.\n";

z=0;

}

cout""----------------------------------------------------------------------------------------------------------\n";

cout""\n\n\nЖелаете выполнить сортировку еще раз?\n 1 - да \n 2 - нет \n "; //запрос повторной сортировки

while (true) //проверка на правильность ввод

{

cin"r;

if (!cin)

{

cin.clear();

while (cin.get() != '\n');

}

if (r==1 || r==2) break;

else {cout " "Вы ввели неверное знаение!\n Введите 1 или 2 : ";

cin.clear(); // очистка буфера

}

}

} while(r==1); //цикл будет продолжаться пока пользовватель выберет 1;

cout""\n\n\nКонец программы, спасибо за сортировку \n\n";

return 0;

}

Руководство пользователя

Назначение программы - сортировка вкладов по выбору пользователя.

В качестве команд в программу можно вводить целые числа, а так же слова с типами вкладов.

Программа предназначена для работы с определенным образом структурированной базой данных, хранящейся в файле "sVKLAD.txt" в одной папке с исполняемым файлом.

Функционал программы заключается в вводе пользователем определенных клавиш для выполнения сортировки. После выгрузки обычного списка "VKLAD.txt" пользователю будет предложено выбрать тип сортировки, а именно: "1- по фамилии; 2 - вывести значение выплаты по процентом которого равны выше среднего; 3- по типу вклада. ". В 1 и 2 случае, после выполнение сортировки, пользователю будет предложено повторить ее, в 3 случае вид вклада будет необходимо ввести вручную.

Во всех случаях программа застрахована от неправильного ввода, и пользователь будет иметь возможность повторить ввод.

Рисунок 1 Демонстрация работы программы

Рисунок 2 Демонстрация работы программы

Заключение

Учебная задача была полностью выполнена и проверена. Программа функционирует без сбоев и неожиданных прерываний, поддерживает русский язык, как в чтении так и записи.

Конечный результат задачи демонстрационная программа. Консольная программа протестирована большое количество раз, что исключает вариант неожиданных ошибок, и сбоев в работе программы. Все возможные ошибки, были устранены в ходе разработки.

В ходе работы решены следующие учебные задачи:

- Проверка на правильность ввода, как символов, так и целочисленных элементов.

- Сортировка в различных вариациях.

- Цикличность программы.

- Вывод данных из файла.

- Структуризация и освоение ранее полученных навыков.

- Работа с русским языком в консоли.

- Освоение работы циклов с условием, пост условием.

- Освоение различных типов переменных.

Размер программы 220 строк, объем 6295 байт.

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


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

  • Понятие алгоритма, его назначение, представление (изобразительные средства для описания), типы, способы записи, схемы. Основные принципы разработки алгоритмов и программ. Характеристика языков программирования. Средства и правила построения блок-схем.

    реферат [87,9 K], добавлен 26.03.2010

  • Паскаль как язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля, история его разработки и функциональные особенности. Задача с использованием двумерного массива, составление блок-схемы решения.

    контрольная работа [819,0 K], добавлен 12.03.2014

  • Приобретение навыков структурных блок-схем и листингов программ на языке "Ассемблер" для простых микропроцессорных систем управления процессами. Типовые структуры блок-схем алгоритмов обработки данных. Программная реализация типовых функций управления.

    методичка [1007,8 K], добавлен 01.10.2010

  • Изучение языка программирования QBasic с позиций структурного подхода с целью выработки правильных навыков составления программ. Предварительный анализ сложной задачи с целью разбития её на отдельные простые части. Детализация и составление подпрограмм.

    учебное пособие [11,7 K], добавлен 11.10.2011

  • Изучение некоторых аспектов языка Ассемблера и ЭВМ в целом. Построение алгоритмов решения поставленной задачи на языках программирования Си, Ассемблер УМ и IBM PC. Составление блок-схем решений и написание программ на каждом из перечисленных языков.

    курсовая работа [691,5 K], добавлен 20.10.2014

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

    дипломная работа [2,4 M], добавлен 10.07.2017

  • Понятие и свойства алгоритмов: рекурсивного, сортировки и поиска. Простая программа и структурный подход к разработке алгоритмов. Язык блок-схем и проектирования программ (псевдокод). Рассмотрение принципов объектно-ориентированного программирования.

    презентация [53,1 K], добавлен 13.10.2013

  • Изучение особенностей создания алгоритмов вычислительных задач. Визуальное программирование стандартных компонентов среды программирования Delphi. Технология создания компонента Delphi для решения производственной задачи. Выполнение блок-схемы алгоритма.

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

  • Решение задач прикладного программирования. Оформление разработанных алгоритмов в виде графических схем. Написание программ с использованием подпрограмм, их отладка. Блок-схемы и листинг программ. Наборы тестов для отладки разработанных программ.

    курсовая работа [575,8 K], добавлен 06.12.2013

  • Технические и пользовательские характеристики игры, требования к программному обеспечению и среде разработки C#. Составление блок-схемы алгоритма, uml-диаграммы и текста программы, тестирование корректности компьютерного кода и результатов его работы.

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

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