Вариант 4. Написать приложение Windows, которое по заданным в файле исходным данным строит два графика. Этапы выполнения работы. 1)Подготовить несколько текстов файлов исходных данных с расширением DAT (например,data1.dat) для построения графика. Файл должен быть доступен для корректировки текстовым редактором. Значения Х и Y могут быть как положительные, так и отрицательные. 2)Предусмотреть возможность задания имени файла исходных данных при запуске приложения (например, LABA4 data1.dat). 3) Создать главное окно. Заголовок содержит ФИО, гр., вар. Главное окно должно иметь меню вида: Prepare Draw About Exit │Input data │ │Choose color│ По Exit приложение завершается. Пункт Draw запрещен. Пункт Input data запрещен, если имя файла корректно указано при запуске приложения, и разрешен при запуске без указания имени файла или указанный файл отсутствует. Пункт Choose color разрешается ,если имя файла корректно указано при запуске приложения,и запрещен при запуске без указания имени файла или указанный файл отсутствует. По About выдается информация о теме разработки. 4) Пo Input data открывается диалоговое окно вида: ┌──────────────────────────────────┐ │ ┌─1──────────┬┐ ┌────────╖ │ │ ╞════════════╡│ │ O K ║ │ │ ├────────────┤│ ╘════════╝ │ │ ├────────────┤│ ┌────────╖ │ │ ├────────────┤│ │ Cancel ║ │ │ └────────────┴┘ ╘════════╝ │ └──────────────────────────────────┘ где 1 - окно-список, содержащее файлы исходных данных текущей директории; OK, Cancel - кнопки типа BS_PUSHBUTTON. При инициализации диалога фокус ввода должно иметь окно 1. Исходные данные для построения графиков читаются из текстового файла, выбранного в окне-списке. Пункт Choose color разрешается после выбора OK и завершения диалога. По Cancel пункт Choose color запрещается. Допускается использование стандартного диалога для выбора файла. 5) По Choose color открывается диалоговое окно вида: ┌────────────────────────────────────────────────────┐ │ Color 1: Color 2: │ │ ┌─1─────────┬┐ ┌─2─────────┬┐ ┌────────╖ │ │ ├───────────┤│ ├───────────┤│ │ O K ║ │ │ ├───────────┤│ ├───────────┤│ ╘════════╝ │ │ ├───────────┤│ ├───────────┤│ ┌────────╖ │ │ ├───────────┤│ ├───────────┤│ │ Cancel ║ │ │ └───────────┴┘ └───────────┴┘ ╘════════╝ │ └────────────────────────────────────────────────────┘ где 1,2 - окна-списки (класса Listbox ) для выбора цвета графиков. Цвета задаются в текстовом виде(например,зеленый). Пункт Draw разрешается после выбора OK и завершения диалога Choose color. По Cancel выбор игнорируется и пункт Draw остается в прежнем состоянии. 6) По Draw в главном окне приложения строятся 2 графика в одной системе координат. При этом 1-й график отрисовывается линией толщиной 1 пиксел, а 2-й -2 пиксела. Градация осей обязательна. Число делений градации по обеим осям равно 10. При этом шаг градации должен быть равен разнице между соответствующим иаксимальным и минимальным на даннный момент значению поделенной на 10 Например 1-й график строится для значений X от -10 до 5, а второй - от 2 до 4 до 16. В этом случае шаг градации равен 2.6 (16 минус -10, деленное на 10). Точка пересечения осей должна соответствовать координатам 0,0. При этом максимальные и минимальные значения по осям должны выбираться в соответствии с максимальными и минимальными значениями, заданными в файле (если все значения по оси отрицательные, то махимальное значение равно 0, а если все значения по оси положительные, то минимальное значение равно 0). Расположение точки пересечения осей в рабочей области окна также должно выбираться с учетом значений исходных данных(так, например,если максимальное положительное значение по оси больше максимального(по модулю) отрицательного, то и область для вывода этих значений должна быть пропорционально больше;при этом если отрицательные или положительные значения по оси отсутствуют,то и соответсвующий участок этой оси не рисуется. Таким образом достигается оптимальное заполнение рабочей области окна полезной информацией. Обратите внимание на то,что отрисовка осей и построение графиков по новым выбранным значениям осуществляется только после входа в пункт Draw. 7)При нажатии одновременно клавиши и клавиши <1> удаляется 1-й график (если он есть), а при нажатии одновременно клавиш и <2> удаляется 2-й график (если он есть). При этом возможен перерасчет шага градации и расположения точки пересечения осей. Если удалены оба графика, то должны остаться только оси координат без рисок градации и выдано соответствующее сообщение. Обработку нажатия указанных клавиш осуществить без использования таблицы акселлераторов или других средств назначения "горячих клавиш". Если соответствующий график отсутствует - действие игнорируется. Изображение должно масштабироваться при изменении размеров окна. Ознакомьтесь также с информацией в файле !README.TXT.