КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Методические рекомендации. Обработка текстового файла
Обработка текстового файла Программа работает в соответствии с разработанным Вами алгоритмом, а не так, как Вам хочется Закон Мерфи Цель работы – освоить обработку текстового файла, содержащего данные некоторого структурного типа, а также выполнение типовых операций над структурами (4 час.) Задание. Проделайте следующее. 1. Выберите по своему усмотрению некоторый структурный тип, включающий компоненты разных типов: строкового (char []), символьного, целочисленного, булевского, вещественного. Например, это могут быть данные по студентам группы и их успеваемости или прайс-лист на какие-нибудь товары и т.п. (см. ниже методические рекомендации). Можно ограничиться 3-4 компонентами структур и 5-6 экземплярами структур. 2. Введите данные по выбранной тематике в текстовый файл. Каждая запись файла должна содержать данные по одному экземпляру структуры. Для облегчения чтения данных из файла настоятельно рекомендуется значения компонент структуры в файле отделять друг от друга пробелом. 3. Создайте консольное приложение по такому же сценарию, как и в первой лабораторной работе. На вкладке свойств проекта Application settings установите флажок MFC. 4. По разделу конспекта «Обработка текстовых файлов (MVS 2005)» [3] ознакомьтесь с алгоритмом чтения данных различных типов из текстового файла с помощью средств, предоставляемых классом ifstream. 5. Разработайте программу чтения записей текстового файла, размещения их в массиве структур, вывода данных на монитор, обработке массива и вывода результатов этой обработки. Под обработкой массива структур подразумевается их сортировка по компонентам и вывод результатов на монитор для контроля. 6. Собственные функции разместите в отдельном файле (как и в работе «Поиск данных в массиве»), а в главной функции сделайте только их вызовы. В заголовочном файле (.h) разместите прототипы функций и описание структурного типа, а в файле реализации (.cpp) разместите определения (реализацию) функций.
1. Варианты тем исходных данных
Можно предложить свои исходные данные, но они должны быть оригинальными, т.е. отличающимися от данных других бригад. 2. Со структурами (struct) можно ознакомиться в подразделе 7.1 работы [4] и/или путем допроса преподавателя. В той же работе [4] можно почитать и о массивах. 3. При создании своего текстового файла следите за тем, чтобы вслед за последним полем записи файла не было пробелов и пустых записей. См. пример файла – Beetles.txt, а пример программы, обрабатывающей этот файл – Beetles.exe.
4. Если текстовый файл находится в том же каталоге, что и файлы проекта, то при вводе его имени путь указывать не нужно. 5. Вывод сообщений в консольном приложении можно выполнять и в отдельном окне, например, так: AfxMessageBox(_T("Ошибка открытия файла"));
4. Задача «куча камней» Любая найденная в программе ошибка – не последняя Закон Мерфи
Цель работы – научиться реализовать алгоритм решения известной «задачи о камнях» как примере оптимизационной задачи (4 час.).
Постановка задачи. Из Википедии: Полный перебор (или метод «грубой силы», англ. brute force) относится к классу методов поиска решения исчерпыванием всевозможных вариантов. Сложность полного перебора зависит от количества всех возможных решений задачи. Если пространство решений очень велико, то полный перебор может не дать результатов в течение нескольких лет или даже столетий. (Другими словами, если вы хотите получать зарплату еще при жизни, то, возможно, вам следует поискать более «быстрое» решение?) Возьмем в качестве иллюстрации известную «олимпиадную» задачу о куче камней, которая заключается в следующем. Имеется произвольное число камней N>1, вес каждого из которых известен и равен Wi, i=1..N, причем 1<N<21, 0<Wi <100000, N и W – целые числа. Требуется распределить камни на две кучи таким образом, чтобы разность весов этих двух куч была минимальной. Например, пусть есть N=5 камней с весами: 5, 8, 13, 27, 14. Очевидно, что в одну кучу надо поместить камни 5 и 27 (вес 32), а в другую – 8, 13 и 14 (вес 35). Тогда разность весов будет минимальна и равна 3 (по абсолютной величине). Надо написать (точнее, разработать) алгоритм и программу, которая бы решала поставленную задачу. Учтите, что программа должна запросить у пользователя N и Wi.
Задание. Разработайте алгоритм и программу в соответствии с приведенными ниже (очень ценными) методическими указаниями, выполните отладку и тестирование разработанной программы. Используйте функции, чтобы структурировать программу и повысить ее наглядность и надежность. Разработайте тесты для контроля корректности программы и докажите преподавателю ее работоспособность.
Дата добавления: 2014-12-26; Просмотров: 433; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |