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