
- •Методические указания к лабораторным работам
- •Лабораторная работа №1 простые программы с циклами и операторами консольного ввода/вывода
- •Задание
- •Описание примера
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №2 работа с текстовыми файлами, структурами данных и меню
- •Задание
- •Структурное программирование и функциональная декомпозиция системы
- •Функции
- •Организация меню в консольном приложении
- •Структуры данных
- •Операции с файлами
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №3 разработка и спецификация функций и модулей программы
- •Задание
- •Модульная структура программ
- •Параметры командной строки
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №4 разработка и спецификация структур данных, использование указателей и динамических массивов структур
- •Задание
- •Указатели
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №5 использование объектно-ориентированного программирования в разработке приложений
- •Задание
- •Конструкторы и деструкторы
- •Конструктор по умолчанию
- •Конструктор копирования
- •Массивы объектов
- •Friend-конструкции
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №6 использование наследования, полиморфизма и абстрактных классов
- •Задание
- •Наследование данных и методов
- •Полиморфизм и виртуальные функции
- •Абстрактный класс
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №7
- •Сложные структуры из объектов классов
- •Цель работы - изучение организации различных структур данных и разработка методов манипулирования данными.
- •Задание
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №8 разработка windows-интерфейса приложения
- •Задание
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №9 разработка и использование com-сервера
- •Задание
- •Шаблоны классов
- •Использование библиотеки atl для создания серверов сом
- •Методика выполнения
- •Содержание отчета
- •Контрольные вопросы
- •Литература
Параметры командной строки
С помощью параметров командной строки в программу можно передать различные значения для ее настройки. Например, в командной строке могут быть указаны имена входного или выходного файлов. В главную функцию программы main система способна передать два параметра int argc и char* argv[].
Первый представляет собой целое число, которое соответствует количеству параметров в командной строке программы. Второй является массивом указателей на строки текста, которые пользователь задал в командной строке.
Если запуск программы осуществлен с помощью кнопки Start на панели задач Windows (Task bar) и при этом выбрана команда Run, то в окне Open можно, кроме имени программы, указать дополнительные строки, адреса которых и попадут в массив argv. Предположим, что строка запуска программы выглядит так:
"С:\Му Projects\Console\Debug\Console.exe" "..\Svet.c"
Обе строки должны быть разделены пробелами. При этом:
• argc будет равен 2, то есть учтена строка с именем запускаемого файла;
• argv[0] содержит адрес первой строки (то есть строки с полным именем запускаемого модуля);
• argv[l] содержит адрес второй строки (то есть строки с именем файла - параметра);
Пример программы:
int main(int argc, char* argv[])
{
char fnIn[80];
if (argc>1 )
strcpy(fnIn,argv[1]);
}
В результате массив fnIn будет содержать значение 1-го параметра.
Методика выполнения
Запустите MS Visual Studio и откройте проект консольного приложения из работы №2.
Добавьте к проекту дополнительные заголовочный файл и файл реализации.
Перенесите из основного модуля в дополнительный заголовочный объявление структуры данных и всех функций, кроме функции main. Подключите заголовочный файл к файлу "stdafx.h". В дополнительный файл реализации перенесите из главного модуля определения функций и подключите файл "stdafx.h". Скомпилируйте проект. Сделайте выводы.
Добавьте объявления и определения новых функций для реализации операций, указанных в п.2 задания. Определения новых функций должны представлять собой программные заглушки. В главное меню программы добавьте вызовы функций. Запустите программу и проверьте правильность ее работы.
Используя метод пошаговой детализации, разработайте функцию сохранения данных в бинарном файле, затем функцию загрузки данных из бинарного файла. Если нужно, оптимизируйте структуру программы, оформив вывод таблицы на экран в виде отдельной функции. Отладьте работу функций ввода/вывода данных в двоичный файл совместно.
Добавьте в основной модуль функцию обработки параметров командной строки.
Содержание отчета
Отчет готовится в письменном или печатном виде один на бригаду. В отчет включить модульную и функциональную структурные схемы программы, листинги модулей и результаты тестовых прогонов программы. Листинги должны содержать спецификации модулей и функций, иметь структурированный вид и комментарии.
Контрольные вопросы
Что такое заголовочный файл в программе C++?
Перечислите достоинства модульного программирования?
В чем разница между объявлением и определением переменной?
Как определяется область видимости переменной?
Что необходимо указывать в спецификации модуля?
Расскажите о функциях ввода/вывода в бинарный файл.
Как в программах на С++ используются параметры командной строки?
Как параметры командной строки передаются в программу на C++?