Автор: Пользователь скрыл имя, 28 Октября 2013 в 20:52, курсовая работа
Данная работа посвящена созданию своего рода базы данных на языке программирования С++. База данных содержит информацию о сотрудниках этого предприятия, а именно: фамилию сотрудника и его заработную плату. Предусмотрена возможность, как создания новой базы, так и возможность работать с базой, ранее записанной в файл. Для работы с базой данных в программе предусмотрено меню, содержащее различные операции: добавить сотрудника, удалить сотрудника, сохранить базу данных в файл и т. д. Программа выполнена в виде консольного приложения.
ПОСТАНОВКА ЗАДАЧИ 3
ВВЕДЕНИЕ 4
1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ 5
2 ОПИСАНИЕ ПРОГРАММЫ 11
2.1 Описание разработанной структуры 11
2.2 Логика работы программы. 11
2.3 Схема алгоритма функции main() 14
3 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 15
ЗАКЛЮЧЕНИЕ 16
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 17
ПРИЛОЖЕНИЕ А Листинг программы 18
ПРИЛОЖЕНИЕ Б Распечатки результатов 20
БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
МЕЖДУНАРОДНЫЙ ИНСТИТУТ ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КУРСОВАЯ РАБОТА
по курсу «Основы алгоритмизации и программирования»
на тему
«Разработка консольного приложения на языке С++»
выполнил ст. гр. 417021-12 Зеневич Д.А.
проверила Попова Ю. Б.
Минск 2013
СОДЕРЖАНИЕ
ПОСТАНОВКА ЗАДАЧИ 3
ВВЕДЕНИЕ 4
1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ 5
2 ОПИСАНИЕ ПРОГРАММЫ 11
2.1 Описание разработанной структуры 11
2.2 Логика работы программы. 11
2.3 Схема алгоритма функции main() 14
3 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 15
ЗАКЛЮЧЕНИЕ 16
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 17
ПРИЛОЖЕНИЕ А Листинг программы 18
ПРИЛОЖЕНИЕ Б Распечатки результатов 20
Написать
программу, в которой объединение используется
для хранения информации об одной из геометрических
фигур: трапеции или треугольнике. Программа
вычисляет площадь данных фигур и выводит
результат. Предусмотреть меню. Результаты
работы программы записать в файл.
Данная работа посвящена созданию своего рода базы данных на языке программирования С++. База данных содержит информацию о сотрудниках этого предприятия, а именно: фамилию сотрудника и его заработную плату. Предусмотрена возможность, как создания новой базы, так и возможность работать с базой, ранее записанной в файл. Для работы с базой данных в программе предусмотрено меню, содержащее различные операции: добавить сотрудника, удалить сотрудника, сохранить базу данных в файл и т. д. Программа выполнена в виде консольного приложения.
Для решения данной задачи использовались знания из области базовых средств языка С++: типы данных, переменные, указатели, условные операторы, операторы циклов, массивы, перечисления и структуры.
Переменная – это именованная область памяти, в которой хранятся данные определенного типа. Имя служит для обращения к области памяти, в которой хранятся данные. Тип данных определяет:
Все типы языка С++ можно разделить на основные (стандартные) и составные. В языке С++ определено 6 основных типов данных:
Существуют 4 спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:
Кроме перечисленных, к основным типам данных относится тип void, но множество значений этого типа пусто. Он используется для определения функций, которые не возвращают значения, для указания пустого списка аргументов функции, как базовый тип для указателей.
Общий вид оператора описания переменных:
[класс памяти] [const] тип имя [инициализатор],
где:
На основе стандартных
типов программист может
Массивом называется конечная именованная последовательность однотипных величин. Описание массива в программе отличается от описания простой переменной наличием после имени квадратных скобок, в которых задается количество элементов массива (размерность). Элементы массива нумеруются с нуля. Размерность массива может быть задана только константой или константным выражением. Пример:
float a[10]; //массив из 10 вещественных чисел
int b[] = {1,2,3}; // b[0]=1, b[1]=2, b[2]=3
char str[10] = “Вася” // массив символов. Выделено 10 элементов с
// номерами от 0 до 9.
// первые элементы: ’в’, ’а’, ’с’, ’я’, ’\0’ – нуль – символ.
Указатели – переменные, предназначенные для хранения адресов областей памяти. В С++ различают 3 вида указателей – указатель на объект, на функцию, на void. Указатель не является самостоятельным типом, он всегда связан с каким – либо другим конкретным типом.
Указатель на функцию содержит адрес в сегменте кода, по которому располагается исполняемый код функции, т. е. адрес, по которому передается управление при вызове функции. Указатели на функции используются для косвенного вызова функции, а также для передачи имени функции в другую функцию в качестве параметра.
Указатель на объект содержит адрес области памяти, в которой хранятся данные определенного типа.
Указатель на void применяется в тех случаях, когда конкретный тип объекта, адрес которого требуется хранить, не определен (например, если в одной и той же переменной в разные моменты времени требуется хранить адреса объектов различных типов).
Примеры:
int func ( int, int ){…}; //определение функции
int (*f) ( int, int ); //указатель на функцию
f = func; //присваивание адреса функции
int a = 5; //целая переменная
int *p = & a; //в указатель записываем адрес переменной
int b[10]; //массив
int *t = b; // присваивание адреса начала массива
Операция разадресации (*), или разыменования предназначена для доступа к величине, адрес которой хранится в указателе. Эту операцию можно использовать как для получения, так и для изменения значения величины (если она не объявлена как константа).
Перечисления (enum).
При написании программ часто
возникает потребность
enum [имя_тип] {список констант},
где имя типа задается в том случае, если в программе требуется определять переменные этого типа.
Структуры (struct).
В отличие от массивов, все элементы которого однотипны, структура может содержать элементы разных типов:
struct [имя типа] {
тип_1 элемент_1;
тип_2 элемент_2;
…
тип_n элемент_n;
} [список описателей]
Элементы структуры называются полями структуры и могут иметь любой тип, кроме типа этой же структуры, но могут быть указателями на него. Если отсутствует имя типа, должен быть указан список описателей переменных, указателей или массивов. В этом случае описание структуры служит определением элементов этого списка. Если список отсутствует, описание структуры определяет новый тип, имя которого можно использовать в дальнейшем наряду со стандартными типами.
Для инициализации структуры значения ее элементов перечисляют в фигурных скобках в порядке их описания. При инициализации массива структур следует заключать в фигурные скобки каждый элемент массива (учитывая, что многомерный массив – это массив массивов).
Для переменных одного и того же структурного типа определена операция присваивания, при этом происходит поэлементное копирование. Структуру можно передавать в функцию и возвращать в качестве значения функции.
Доступ к полям структуры выполняется с помощью операций выбора ‘.’ (точка) при обращении к полю через имя структуры и ‘- >’ при обращении через указатель.
Объединения (union).
Объединение представляет собой частный случай структуры, все поля которой располагаются по одному и тому же адресу. Длина объединения равна наибольшей из длин его полей. В каждый момент времени в переменной типа объединение хранится только одно значение. Объединение применяется для экономии памяти в тех случаях, когда известно, что больше одного поля одновременно не требуется.
Помимо этого в программе
широко использовались
Функция – это именованная последовательность описаний и операторов, выполняющая какое – либо законченное действие. Функция может принимать параметры и возвращать значение.
Любая программа на языке С++ состоит из функций, одна из которых должна иметь имя main (с нее начинается выполнение программы). Функция начинает выполняться в момент вызова. Любая функция может быть объявлена и определена. Как и для других величин, объявлений может быть несколько, а определение только одно. Объявление функции должно находиться в тексте раньше ее вызова для того, чтобы компилятор мог осуществить проверку правильности вызова.
Объявление функции (прототип,
заголовок, сигнатура) задает ее имя
тип возвращаемого значения и
список передаваемых параметров. Определение
функции содержит, кроме объявления,
тело функции, представляющее собой
последовательность операторов и описаний
в фигурных скобках. В объявлении,
в определении и при вызове
одной и той же функции типы
и порядок следования параметров
должны совпадать. На имена параметров
ограничений по соответствию не накладывается,
поскольку функцию можно
Механизм передачи параметров является основным способом обмена информацией между вызываемой и вызывающей функциями. Параметры, перечисленные в заголовке описания функции, называются формальными параметрами, а записанные в операторе вызова функции – фактическими параметрами, или аргументами.
При вызове функции в первую очередь вычисляются выражения, стоящие на месте аргументов; затем в стеке выделяется память под формальные параметры функции в соответствии с их типом, и каждому из них присваивается значение соответствующего аргумента. При этом проверяется соответствие типов и при необходимости выполняется их преобразование.
существуют 2 способа передачи параметров в функцию:
При передаче по значению в стек заносятся копии значений аргументов, и операторы функции работают с этими копиями. Доступа к исходным значениям параметров у функции нет, а, следовательно, нет и возможности их изменить.
При передаче по адресу в стек заносятся копии адресов аргументов, а функция осуществляет доступ к ячейкам памяти по этим адресам и может изменить исходные значения аргументов. Параметры в функцию можно передавать по адресу с помощью указателей или с помощью ссылок.
В качестве среды разработки данной программы выступала среда Microsoft Visual Studio 2010.
2 ОПИСАНИЕ ПРОГРАММЫ
2.1 Описание разработанной
Описание структуры данных, используемой в программе, имеет вид:
struct TRAPEZIA{
uint A;
uint B;
uint H;
float S;
}trapezia;
struct TREUGOLNIK{
uint A;
uint B;
uint Ugol;
float S;
}treugolnik;
union FIGURE{
TREUGOLNIK*sTREUG;
TRAPEZIA*sTRAP;
}figure;
2.2 Логика работы программы
Исходя
из того, что в программе необходимо
предусмотреть выбор
Схема меню:
Выберите фигуру для расчёта площади:
1. Трапеция
2. Треугольник
0. Выход
Данное меню работает с помощью цикла
while (условие) {
команды;
}
while(pMenu>0 && pMenu<=2){операторы; scanf("%i",&pMenu);}
и с помощью оператора выбора
switch (выражение) {
case значение1:
операторы
break;
case значение 2 :
операторы
break;
…
default:
операторы
}
switch(pMenu)//Оператор выбора ввода pMenu
При выборе 1-го пункта меню программа предлагает ввод данных для расчёта трапеции, рассчитывает площадь, затем выводит результат расчёта и предлагает занести результаты в файл.
case 1:
puts("Рассчёт площади Трапеции.");
puts("Основание А:");
scanf("%u",&(*figure.sTRAP).A)
puts("Основание В:");
scanf("%u",&(*figure.sTRAP).B)
puts("Высота Н:");
scanf("%u",&(*figure.sTRAP).H)
(*figure.sTRAP).S=((*figure.
printf("Площадь трапеции равна %.2f\n",(*figure.sTRAP).S);
//запись в файл
file.open("result.txt");
file<<"Основание А: "<<(*figure.sTRAP).A<<endl;
file<<"Основание В: "<<(*figure.sTRAP).B<<endl;
Информация о работе Разработка консольного приложения на языке С++