Методические указания ЛР10(примеры)_2014 (1079944)
Текст из файла
51
Методические указания к лабораторной работе № 10 по курсу
Основы программирования (СУЦ)
" Структуры, указатели, файлы, массивы, алгоритмы и списки"
Москва, МГТУ - 2014 год
_____________________________________________________________________________
СОДЕРЖАНИЕ
1. Цель ЛР №10 3
2. Требования к заданию на ЛР №10 3
3. Особенности описания разделения заданий по уровням ЛР №10 3
4. Функции и структуры в домашнем задании 3
5. Варианты для выполнения ЛР 4
6. Порядок выполнения работы (Уровень А и В) 5
7. Дополнительные требования для сильных студентов (Уровень С): 22
8. Требование к отчету по ЛР 29
9. Контрольные вопросы к ДЗ/КЛР 29
10. Литература. 30
11. Приложения 32
11.1. Главный модуль File_P3.cpp 32
11.2. Заголовочный файл проекта File_P3.h 41
11.3. Результаты работы примера (текст) 49
11.4. Шаблон отчета по ЛР10 53
1 Цель ЛР №10
Комплексная лабораторная работа/Домашнее задание (КЛР/ДЗ) № 10 выполняется для получения навыков совместного использования знаний по отдельным приемам программирования, изучаемым в курсе основы программирования, после выполнения комплекса отдельных лабораторных работ дисциплины “Основы программирования”.
В предыдущих работах студенты изучают следующие темы: операторы, структуры, указатели, строки, файлы, массивы, алгоритмы и списки. Студенты создают файл своих структурных переменных (набор записей) и комплекс специальных функций-операций для работы с этим файлом и этими записями. Предусматриваются важные операции с файлом: запись файла, его распечатки, его сортировки, доступа к записям в файле, изменение записей, поиск записей и перезапись его в массив записей и обратно. Фактически, на уровне файлов, студенты осваивают работу с прообразом однотабличной базой данных (БД), что в дальнейшем поможет более глубоко понять функционирование сложных систем управления базами и банками данных (СУБД).
2 Требования к заданию на ЛР №10
Данное описание ЛР и задание на ЛР может быть выполнено на трех уровнях сложности, в зависимости от выбора студента:
- базовый уровень (уровень А),
- продвинутый уровень (уровень В),
- уровень для сильных студентов (уровень С).
Пункты задания выделены цветом, соответствующим выбранному уровню. В дальнейшем, конкретизирую требования на ЛР, мы будем использовать эти цвета для привязки к одному из уровней задания. Проще - цвет пункта задания определяет его уровень сложности. Студент может и частично использовать пункты задания из разных уровней, однако базовый уровень является обязательным.
Примечание 1. Данную лабораторную работу (№ 10) мы будем также именовать комплексной лабораторной работой (КЛР) либо домашним заданием (ДЗ), так как в отдельных учебных планах на семестр иногда появляется такая позиция. В общем возможен и комбинированный вариант КЛР/ДЗ.
3 Особенности описания разделения заданий по уровням ЛР №10
Описание шагов выполнения КЛР и требований к ней намеренно предлагается в двух вариантах: вариант (№1), в котором примеры располагаются отдельно от текста и вариант (№2), в котором примеры и решения вставлены в текст методических указаний. На сайте для работы студентам доступны оба варианта. Если студент стремится и способен получить максимальный уровень знаний (даже более чем по плану) он должен попробовать использовать первый вариант методических указаний и обращаться к подсказкам во втором варианте только в крайнем случае. Если студенту пока трудно самостоятельно выполнить какой-то конкретный шаг задания, то он может использовать подсказку (извините, шпаргалку) и на основе ее сделать собственное задание.
4 Функции и структуры в домашнем задании
Как было отмечено выше, студенты в рамках ЛР разрабатывают программный комплекс, основанный на файловой системе, иллюстрирующий основные операции работы с базами данных (БД). Программный комплекс состоит из: набора специальных функций (фактически библиотеки), и фрагментов программ, для демонстрации работы этих функций. Например, должны быть разработаны функции заполнения файла записями, его распечатки, изменения записей и другие. Кроме этого, в главном модуле могут быть реализованы некоторые действия с файлом без оформления функций (в каждом пункте заданий указывается, когда нужно создавать функцию). Работа с файлами основывается на специальной структуре данных, которую студент самостоятельно разрабатывает в предложенной предметной области (см. варианты задания). Структура данных должна иметь осмысленные поля и представлять единое целое. Например, для описания студента можно выделить поля: фамилия студента, курс студента, размер стипендии и т.д. Часть названий полей предложены в варианте (см. ниже), хотя по согласованию с преподавателем их можно заменить. Неизменным должно оставаться только содержательное название структуры данных (студент, книга и т.д.).
5 Варианты для выполнения ЛР
Варианты для выполнения работы студентами представлены в таблице, в дополнение к трем указанным полям в структуре студент должен добавить еще любые два дополнительных поля, которые он придумает сам. Эти поля должны иметь смысл иметь смысл для собственного проекта. Например, для структуры типа студент можно добавить поля: курс обучения, год поступления, процент посещения занятий и т.д.
В таблице расположенной ниже приведены основные названия структурных переменных и обязательных полей по вариантам.
| № Вар. | Структура (имя структуры придумать самому) | Поля структуры и их тип | Примечание (интегральн. характеристика) | ||
| Поле-имя-тип | Поле-имя-тип | Поле-имя-тип | |||
| | Кафедра | Название (Name) –char[] | Число студентов (CountS) - int | Число преподавателей (CountP) - int | Среднее Число студентов на кафедре |
| | Книга | Название (Name) –char[] | Автор (Avtor) – char[] | Число страниц (nCountS) - int | Среднее Число страниц |
| | Файл | Имя файла (NameFile) –char[] | Дата создания (DateFile)– char[] | Размер файла (SizeFile) - int | Средний Размер файла |
| | Автомобиль | Марка автомобиля (Marka)–char[] | Стоимость (Cost) - double | Мощность (Kraft) - float | Средняя Мощность |
| | Компьютер | Владелец(Fam) –char[] | Размер ОП (SizeMem) - int | Объем HDD (SizeHDD) - int | Средний Объем |
| | Группа | Индекс группы (Name) –char[] | Число студентов (CountS) - int | Средняя оценка в группе в % -(AvExam) -float | Среднее число студентов в группе |
| | Человек | Фамилия (Fam) –char[] | Пол (Pol) - char | Возраст (Age) - int | Средний Возраст |
| | Стеллаж | Название (Namt) –char[] | Материал (Mat) - char | Число полок (nPol) - int | Среднее число полок |
| | Дом | Улица (Fam) –char[] | Число этажей (nStage) - int | Номер дома (Numb)- char[] | Среднее число этажей |
| Вариант представленный в примере выполнения ЛР № 10 | |||||
| Студент (Student) | Имя (Name) - char[20] | Номер (Num) - int | Стипендия (Oklad)-double | Задание моего примера | |
Примечание 2: Номер варианта студента уточняется по журналу группы. При желании студент может предложить свой вариант темы структурной переменной, но при этом он должен согласовать его с преподавателем.
6 Порядок выполнения работы (Уровень А и В)
1. Создать консольный проект (главная программа, вспомогательный модуль для функций и заголовочный файл для структур/констант)
Для создания консольного проекта необходимо:
-
Запустить систему программирования VS 2005/8/10/12;
-
В меню “File” выбрать пункт “New” и в подменю выбрать позицию “Project…”;
-
В списке “Project types” выбрать “Visual C++/Win32”, а в списке “Templates” выбрать “Win32 Console Application”;
-
В поле “Name” ввести: LAB1_XDD (где X – номер группы, а DD – номер варианта по журналу группы текущего семестра. Например, для студента группы ИУ5-31 с вариантом 5 – введем – LAB1_15). Далее нажать “OK”;
-
В новом окне мастера проектов нажать “Next”. Проверить настройки проекта: “Application Type” должно быть – “Console Application”, “Additional option” -> “Empty Project” должен быть включено. Остальные галочки должны быть выключены.
-
Далее необходимо нажать кнопку “Finish”. Новый проект будет создан.
-
Необходимо убрать из главных моделей проекта (LAB1_XDD.CPP и LAB1_XDD.H) все лишнее. Этого: в файле LAB1_XDD.H (у нас в примере LAB1_15.H) уберем все, а в файле LAB1_XDD.CPP (LAB1_15.CPP) оставим только следующий текст:
#include "lab1_15.h"
#include <process.h>
#include <stdio.h>
void main(void)
{ … }
-
Для контроля правильности создания пустого проекта, нажмем клавишу “F7” для проверки создания программы (build) и “F5” для проверки ее выполнения (run/debug). Все перечисленные действия должны быть выполнены безошибочно.
Для корректного отображения текстов на русском языке и его ввода в окне командной строки (после первого запуска программы) нужно сделать настройки шрифта этого окна. Переключаем шрифт в тип - Lucida Console. Выбираем настройки (после вывода консольного окна на экран, правой кнопкой вызываем системное меню): СВОЙСВА->ШРИФТ -> Lucida Console). После переключения шрифта, на запрос в отдельном окошке нужно выбрать режим – “Для всех окон с данным именем!”. Для правильной русификации окна консоли, кроме этого, в самом начале главной программы нужно переключить кодовую страницу для вывода:
system(" chcp 1251 > nul");
Для приостановки завершения программы в консольном окне в конце ее работы можно вызвать паузу следующим образом (например, в конце текста программы):
system(" PAUSE");
На экране появиться следующая строка (смотри ниже) и программа будет ожидать нажатия клавиши:
Для продолжения нажмите любую клавишу . . .
Обратите внимание на то, что при другом способе локализации (setlocale(0,"rus");) не все работает правильно. Вывод на консоль и ввод с консоли выполняется правильно, но после этого введенные в консольном окне данные (например, строка) имеют другую кодировку и выводятся неверно! Можете сами это проверить. Поэтому предпочтительно использовать предложенный выше способ с переключением кодовой страницы.
2. Описать свою структуру, придумав ее название. Типы и названия полей взять из таблицы вариантов (см. ниже). Все данные структуры статические. Дополнить описание структуры двумя полями, придумав их по смыслу. Описание структуры выполнить в заголовочном файле проекта (<имя проекта>.h).
(*.h).
//////// ЗАГОЛОВОЧНЫЙ ФАЙЛ
// МУ п.2
////////
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















