- •Оглавление
- •1. Порядок выполнения курсовой работы
- •2. Варианты заданий
- •3. Методические указания
- •5.2. Создание консольного приложения и работа с ним
- •5.3. Компиляция и запуск проекта
- •5.4. Отладка программы
- •5.5. Создание рабочего пространства для нескольких проектов
- •6. Содержание отчета
- •7. Список литературы
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РФ
ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра Информационных технологий и автоматизированных систем
Викентьева О. Л.
Методические указания к курсовой работе по дисциплине "Алгоритмические языки и программирование"
Пермь 2004
Оглавление
Оглавление 2
Введение 3
1. Порядок выполнения курсовой работы 3
2. Варианты заданий 4
3. Методические указания 10
4. Рекомендации по программированию 11
5. Среда программирования Visual C++ 6.0 13
5.1. Общий вид окна 13
5.2. Создание консольного приложения и работа с ним 14
5.3. Компиляция и запуск проекта 15
5.4. Отладка программы 16
6. Содержание отчета 16
7. Список литературы 17
Введение
Курсовая работа предназначена для отработки навыков программирования задач средней сложности у студентов дневного и заочного отделения специальностей "Автоматизированные системы управления" в рамках дисциплины "Алгоритмические языки и программирование".
Целью курсовой работы является закрепление и углубление знаний, полученных студентами в курсе "Алгоритмические языки и программирование", развитие навыков при выборе представления исходных данных, использовании объектно-ориентированного подхода при написании программ на языке С++, тестировании и отладки программы, оформлении документации на программную разработку.
1. Порядок выполнения курсовой работы
Курсовая работа по курсу "Алгоритмические языки и программирование" выполняется индивидуально каждым студентом в соответствии с выданным преподавателем вариантом. Обязательным является использование в разработке объектно-ориентированного подхода и пользовательских классов. Курсовая работа выполняеся в среде MS Visual C++6.0.
В процессе работы автор должен
Выбрать форму представления исходных данных и результатов.
Разработать и обосновать алгоритмы для решения задачи.
Разработать пользовательские классы (компонентные данные и компонентные функции, реализующие алгоритмы).
Разработать пользовательский интерфейс для ввода и получения информации.
Провести отладку и тестирование программы.
Оформить для нее документацию.
Все этапы работы должны быть отражены в пояснительной записке.
Примерный график выполнения работы
№ |
Этап курсовой работы |
Неделя семестра |
1 |
Осмысливание задачи, освоение визуальной среды программирования |
1-3 |
2 |
Выбор формы представления исходных данных и результатов, разработка алгоритмов, используемых при решении задачи |
4-5 |
3 |
Разработка пользовательских классов |
6-8 |
4 |
Разработка интерфейса |
9 |
5 |
Отладка и тестирование программы |
10-12 |
6 |
Оформление пояснительной записки |
13 |
7 |
Защита курсовой работы |
14-15 |
2. Варианты заданий
Калькуляторы
1) Разработать класс «Калькулятор», выполняющий указанные в варианте операции для заданных исходных данных. Программа должна выполнять ввод данных, проверку правильности введенных данных, выдачу соответствующих сообщений в случае возникновения ошибок.
2)Протокол работы калькулятора записать в файл. Протокол должен включать исходные данные, введенные пользователем, выполняемые операции и результаты их выполнения. В случае возникновения ошибки в файл записывается соответствующее сообщение.
3)Предусмотреть возможность просмотра этого файла из программы калькулятора.
В варианте указаны вид данных, обрабатываемых калькулятором, и операции, выполняемые калькулятором.
Вариант |
Вид данных |
Операции |
1 |
Двадцатипятизначные числа. |
Сложение, вычитание, умножение, деление, целочисленное деление, остаток от деления, отмена последней операции, сброс результата. |
2 |
Обыкновенные и десятичные дроби. |
Сложение, вычитание, умножение, деление, преобразование десятичной дроби в обыкновенную и обратно, отмена последней операции, сброс результата. |
3 |
Комплексные числа в алгебраической, тригонометрической и экспоненциальной формах. |
Сложение, вычитание, умножение, деление, возведение в целую степень, извлечение квадратного корня (по формуле Муавра), преобразование из одной формы в другую, отмена последней операции, сброс результата. |
4 |
Даты в российском, американском и английском форматах. |
Обратить внимание на проверку правильности вводимой информации (33 июня не бывает) |
5 |
Обыкновенные дроби в двух формах:
|
Сложение, вычитание, умножение, деление, возведение в целую степень, сокращение дроби, обмен местами числителя и знаменателя дроби, смена знака, отмена последней операции, сброс результата. |
6 |
Квадратные уравнения (в действительных или комплексных числах) |
Вычисление корней в форме, заданной пользователем. |
7 |
Углы, измеряемые в градусной системе мер (1 градус=60 минут, 1 минута=60 секунд) |
Сложение, вычитание, умножение, деление, нахождение тригонометрических и обратных тригонометрических функций, изменение знака угла. |
8 |
Выражения со скобками |
Вычисление заданного выражения со скобками, проверка правильности заданного выражения. |
9 |
Целые и вещественные числа в различных системах счисления, основания систем счисления взять следующие: 2, 3, 8, 9, 10, 16. |
Перевод чисел из одной системы счисления в другую. |
10 |
Логарифмы чисел при различных основаниях. |
Сложение, вычитание, умножение, деление, возведение в степень, переход к другому основанию. |
11 |
Многочлены (до 8-ой степени, задаются коэффициенты). |
Сложение, вычитание, умножение, деление, возведение в целую степень, подстановка многочлена вместо переменной в другой многочлен, вычисление значения многочлена. |
12 |
Система уравнений с тремя неизвестными (задаются коэффициенты). |
Ввод, хранение уравнений в памяти (до 4 систем), вычисление неизвестных. |
13 |
Алгебраические или трансцендентные уравнения (задаются функции, интервалы, на которых есть корень, точность вычислений). |
Решение уравнения методами половинного деления, Ньютона или итераций (в зависимости от выбора пользователя). |
14 |
Интервалы времени (задаются в часах, минутах, секундах). |
Ввод данных, ввод только в часах, минутах или секундах, нахождение величины временного интервала, суммы, разности, преобразование интервала в часы, минуты, секунды. |
15 |
Римские цифры. |
Сложение, вычитание, умножение, целочисленное деление, остаток от целочисленного деления, перевод из римской системы счисления в десятичную и обратно, отмена последней операции, сброс результата. |
Динамические структуры данных
Разработать класс, реализующий указанную в задании структуру данных. Разработать интерфейс программы, позволяющий вводить данные и получать результаты в удобной для пользователя форме. Программа должна проверять правильность вводимых данных. В случае возникновения ошибок должны выдаваться сообщения. Должна быть предусмотрена возможность получения данных из файла и запись результатов файл.
В варианте указаны вид данных и операции, выполняемые с указанной структурой.
Варант |
Вид данных |
Операции |
16 |
Бинарное дерево |
Создать идеально сбалансированное дерево, распечатать его (в виде дерева), найти величину наибольшего элемента дерева, напечатать элементы из всех листьев дерева, найти длину пути от корня до ближайшей вершины с элементом Е.
|
17 |
Бинарное дерево |
Создать идеально сбалансированное дерево, распечатать его (в виде дерева), определить максимальную глубину о дерева, определить есть ли в дереве хотя бы 2 одинаковых элемента, определить входит ли элемент Е в дерево, если таких элементов несколько, то определить число вхождений элемента Е в дерево.
|
18 |
Бинарное дерево |
Создать идеально сбалансированное дерево Т, распечатать его (в виде дерева), построить и напечатать по уровням дерево поиска Т1 для дерева Т, удалить из непустого дерева Т все четные элементы, найти количество вершин на n-ом уровне непустого дерева Т (корень - вершина 0 уровня). |
19 |
Линейный список |
Составить программу, которая содержит информацию о наличие автобусов в автобусном парке. Сведения об автобусе содержат:
Программа должна обеспечивать:
|
20 |
Бинарное дерево |
Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат:
Программа должна обеспечить :
|
21 |
Линейный список |
Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат:
Программа должна обеспечить:
|
22 |
Линейный список |
Составить программу, которая моделирует заполнение гибкого диска. В процессе работы файлы могут записываться на диск и удаляться с него. Файлы могут иметь произвольную длину. Если при удалении образовался свободный участок, то вновь записываемый файл помещается на этом свободном участке, либо, если он не помещается на этом участке, то его следует разместить после последнего записанного файла. Если файл превосходит длину самого большого участка, выдается аварийное сообщение. Рекомендуется создать список свободных участков и список занятых участков памяти на диске. |
23 |
Бинарное дерево |
Составить программу, которая формирует англо-русский словарь. Словарь должен содержать английское слово, русское слово и количество обращений к слову. Программа должна:
Пользователь должен иметь возможность добавлять новые слова, удалять существующие, выполнять писк нужного слова, выполнять просмотр обоих вариантов словаря |
24 |
Список |
Составить программу, которая содержит информацию о квартирах, содержащихся в базе данных бюро обмена квартир. Сведения о каждой квартире содержат:
Программа должна обеспечить:
|
25 |
Бинарное дерево |
Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для каждого поезда указывается:
Составить программу, которая
|