
- •Овсянник в.Н. Лабораторные работы по курсу «Объектно-ориентированное программирование»
- •13. Разработка приложения с архитектурой «документ-вид». Часть 2 120
- •14. Разработка приложения с архитектурой «документ-вид». Часть 3 135
- •1.Разработка типового консольного приложения
- •1.1.Методические указания
- •1. Запуск и настройка ис mvs-2008.
- •2.Поиск данных в массиве
- •3.Обработка текстового файла
- •4.Задача «куча камней»
- •5.Реализация алгоритма полного перебора
- •6. Исследование погрешностей вычислений
- •7.Поиск экстремумов с ограничениями или «Брачное агенство»
- •Постановка задачи
- •Задание
- •Листинг файла mAgency.Cpp (с главной функцией)
- •Листинг файла Lib.H
- •Листинг файла Lib.Cpp
- •8.Приложение с окном вида
- •9.Разработка графического редактора
- •Задание.
- •9.1.Проектирование программы
- •9.2.Разработка интерфейса
- •Установка флагов
- •Создание меню и панели инструментов
- •Обработка сообщений о нажатии кнопки мыши
- •9.3.Рисование
- •9.4.Растягивание фигур
- •9.5.Обновление изображения
- •9.6.Сохранение метафайла на диске и его загрузка
- •10.Приложение, основанное на модальном диалоговом окне
- •Методические указания Модальные и немодальные диалоговые окна
- •Ресурсы и элементы управления
- •Сценарий создания приложения
- •Разбор приложения
- •Усовершенствование приложения
- •11.Приложение с контекстным меню и строкой состояния
- •11.1.Методические указания к первой части работы
- •11.2.Сценарий выполнения первой части работы
- •11.3.Методические указания ко второй части работы Строка состояния
- •Определение секций в строке состояния
- •Строка сообщений
- •Индикатор состояния
- •Управление строкой состояния
- •11.4.Сценарий выполнения второй части работы
- •12.Разработка приложения с архитектурой «документ-вид». Часть 1
- •12.1.Сценарий создания приложения
- •13.Разработка приложения с архитектурой «документ-вид». Часть 2
- •13.1.Методические указания Класс коллекций cObList
- •13.2.Сценарий выполнения работы
- •14.Разработка приложения с архитектурой «документ-вид». Часть 3
- •14.1.Методические указания
- •15.Класс вектор
- •15.1.Пример класса tVector
- •15.2.Класс tVector с перегруженными операциями
- •16.Приложение с таблицей
- •16.1.Вариант 1 Сценарий выполнения работы
- •16.2.Вариант 2 Сценарий выполнения работы
3.Обработка текстового файла
Программа работает в соответствии с разработанным Вами алгоритмом, а не так, как Вам хочется
Закон Мерфи
Цель работы – освоить обработку текстового файла, содержащего данные некоторого структурного типа, а также выполнение типовых операций над структурами (4 час.)
Задание. Проделайте следующее.
Выберите по своему усмотрению некоторый структурный тип, включающий компоненты разных типов: строкового (char []), символьного, целочисленного, булевского, вещественного. Например, это могут быть данные по студентам группы и их успеваемости или прайс-лист на какие-нибудь товары и т.п. (см. ниже методические рекомендации). Можно ограничиться 3-4 компонентами структур и 5-6 экземплярами структур.
Введите данные по выбранной тематике в текстовый файл. Каждая запись файла должна содержать данные по одному экземпляру структуры. Для облегчения чтения данных из файла настоятельно рекомендуется значения компонент структуры в файле отделять друг от друга пробелом.
Создайте консольное приложение по такому же сценарию, как и в первой лабораторной работе. На вкладке свойств проекта Application settings установите флажок MFC.
По разделу конспекта «Обработка текстовых файлов (MVS 2005)» [3] ознакомьтесь с алгоритмом чтения данных различных типов из текстового файла с помощью средств, предоставляемых классом ifstream.
Разработайте программу чтения записей текстового файла, размещения их в массиве структур, вывода данных на монитор, обработке массива и вывода результатов этой обработки. Под обработкой массива структур подразумевается их сортировка по компонентам и вывод результатов на монитор для контроля.
Собственные функции разместите в отдельном файле (как и в работе «Поиск данных в массиве»), а в главной функции сделайте только их вызовы. В заголовочном файле (.h) разместите прототипы функций и описание структурного типа, а в файле реализации (.cpp) разместите определения (реализацию) функций.
Методические рекомендации
Варианты тем исходных данных
№ компа |
Тематика исходных данных |
1 |
Эволюция жизни (на Земле или в другом месте, например, в Украине): молекулы, клетки, вирусы, …, сволочи, … |
2 |
Самолеты |
3 |
Компьютеры (старые, новые, супер, супер-пупер, персональные, черные, карманные, ворованные и пр.) |
4 |
Мухи |
5 |
Велосипеды (детские, взрослые, китайские, одноколесные и т.д.) |
6 |
Часы (песочные, световые, механические, поломанные и т.д.) |
7 |
Холодное оружие (рогатки, вилки, мачете, ножи, топоры, …) |
8 |
Образовательные учреждения (колония, тюрьма, детясли, детсад, школа. …) |
9 |
Компьютерные комплектующие (материнские и отцовские платы, глядеокарты, микропроцессоры, и т.д.) |
10 |
Жилища (лавка, спальный мешок, палатка, будка, конура, скворечник, общага, …) |
11 |
Форматы графических изображений (черно-белые, серые, противные, гадкие, …) |
12 |
Элита (депутаты, воры в законе, мошенники отпетые, …) |
Можно предложить свои исходные данные, но они должны быть оригинальными, т.е. отличающимися от данных других бригад.
2. Со структурами (struct) можно ознакомиться в подразделе 7.1 работы [4] и/или путем допроса преподавателя. В той же работе [4] можно почитать и о массивах.
3. При создании своего текстового файла следите за тем, чтобы вслед за последним полем записи файла не было пробелов и пустых записей. См. пример файла – Beetles.txt, а пример программы, обрабатывающей этот файл – Beetles.exe.
|
4. Если текстовый файл находится в том же каталоге, что и файлы проекта, то при вводе его имени путь указывать не нужно.
5. Вывод сообщений в консольном приложении можно выполнять и в отдельном окне, например, так:
AfxMessageBox(_T("Ошибка открытия файла"));