Автор работы: Пользователь скрыл имя, 26 Мая 2013 в 18:08, курсовая работа
Создать приложение, используя библиотеку объектов OWL, позволяющее:
выводить тригонометрические функции (синус, косинус, тангенс) в рабочее поле приложения
выбирать требуемый график из меню приложения
задавать необходимый масштаб
запрашивать информации о программе
стирать выбранные функции
использовать горячие клавиши для построения графиков, для выхода из программы и для вывода информационного табло
1.Техническое задание. 3
2. Краткие теоретические сведения 3
2.1. Структура OWL-программы 3
2.2. Вызов функций в Windows 4
2.3. Программирование на С++ 4
2.4. Общие положения программирования в среде Windows 4
2.5. Win16 и Win32 5
2.6. Графический интерфейс устройства 5
2.7. Цикл сообщений 5
2.8. Особенности Borland C++ 6
2.9. Функция Run() 7
3. Файлы, используемые при создании проекта. 8
4. Стандартные классы OWL. 8
4.1. Взаимодействие классов. 8
5. Стандартные функции классов OWL. 8
6. Пользовательские функции 8
7. Иерархия классов приложения. 9
8. Системные требования. 9
9. Размер файла. 9
10. Руководство пользователя. 10
11. Список использованной литературы: 14
12. Листинг программ. 15
cosIs=false;//Сбросить
menu->CheckMenuItem(202,MF_
Invalidate();//Перерисовать
}
}
void MyWindow::CmTan(){
int state=menu->GetMenuState(203,
if(state==MF_UNCHECKED){//
for(int i=0;i<1024;i++)//Образовать
tan[i]=(sin((double)i/50))/(
tanIs=true;//Установить
menu->CheckMenuItem(203,MF_
Invalidate();//Инициировать
} else{//Если этот пункт меню уже выбран
for(int i=0;i<1024;i++)//Очистить
tan[i]=0;//массив данных
tanIs=false;//Сбросить
menu->CheckMenuItem(203,MF_
Invalidate();//Перерисовать
}
}/*Функции CmCos(), CmSinX() , CmCosX() имеют аналогичное содержимое*/
void MyWindow::Cm200()
{//Устанавливаем 200 точек на 1
k=200;
Invalidate();//Перерисовываем
}
void MyWindow::Cm100()
{//Устанавливаем 100 точек на 1
k=100;
Invalidate();//Перерисовываем
}
void MyWindow::Cm50(){//
k=50;
Invalidate();//Перерисовываем
} void MyWindow::EvRButtonDown(UINT,
TRect rect;
GetWindowRect(rect);//Получим
point+=rect.TopLeft();//
popupMenu.TrackPopupMenu(TPM_
//плавающее меню
}
/*3амещающая функция InitMainWindow() */ void MyApp::InitMainWindow(){
MyWindow* myWin=new MyWindow(0,"Программа построения тригонометрических функций");
SetMainWindow(myWin);
myWin->SetIcon(this,IDI_ICON1) ;
myWin->SetIconSm(this,IDI_
myWin->SetCursor(this,IDC_
EnableBWCC();//Разрешаем
}
void MyWindow::Paint(TDC& dc, bool, TRect&)
{int y0=260;//Сдвиг начала
int x0=156;
dc.MoveTo(0,y0);//Смещаем
dc.LineTo(1024,y0);//Проводим
dc.MoveTo(x0,20);
dc.LineTo(x0, 500);
dc.MoveTo(x0,20); //стрелка по у
dc.LineTo(160,50);
dc.MoveTo(x0,20);
dc.LineTo(152,50);
dc.MoveTo(1024,y0); //стрелка по х
dc.LineTo(994,264);
dc.MoveTo(1024,y0);
dc.LineTo(994,256);
//Метки по у
dc.MoveTo(151,60); //1
dc.LineTo(161,60);
dc.MoveTo(151,110); //2
dc.LineTo(161,110);
dc.MoveTo(151,160); //3
dc.LineTo(161,160);
dc.MoveTo(151,210); //4
dc.LineTo(161,210);
dc.MoveTo(151,260); //5
dc.LineTo(161,260);
dc.MoveTo(151,310);
dc.LineTo(161,310);
dc.MoveTo(151,360);
dc.LineTo(161,360);
dc.MoveTo(151,410);
dc.LineTo(161,410);
dc.MoveTo(151,460);
dc.LineTo(161,460);
//Подписи по y
dc.TextOut(130,50, "2");
dc.TextOut(130,100, "1.5");
dc.TextOut(130,150, "1");
dc.TextOut(130,200, "0.5");
dc.TextOut(130,240, "0");
dc.TextOut(130,300, "-0.5");
dc.TextOut(130,350, "-1");
dc.TextOut(130,400, "-1.5");
dc.TextOut(130,450, "-2");
//Метки по x
dc.MoveTo(76,255); //-1
dc.LineTo(76,265);
dc.MoveTo(236,255);
dc.LineTo(236,265);
dc.MoveTo(314,255); //1
dc.LineTo(314,265);
dc.MoveTo(391,255);
dc.LineTo(391,265);
dc.MoveTo(470,255); //2
dc.LineTo(470,265);
dc.MoveTo(547,255);
dc.LineTo(547,265);
dc.MoveTo(628,255); //3
dc.LineTo(628,265);
dc.MoveTo(703,255);
dc.LineTo(703,265);
dc.MoveTo(784,255); //4
dc.LineTo(784,265);
dc.MoveTo(862,255);
dc.LineTo(862,265);
dc.MoveTo(942,255); //5
dc.LineTo(942,265);
//Подписи по х
dc.TextOut(62,275, "-П/2");
dc.TextOut(140,275, "0");
dc.TextOut(226,275, "П/2");
dc.TextOut(310,275, "П");
dc.TextOut(375,275, "3П/4");
dc.TextOut(462,275, "2П");
dc.TextOut(530,275, "5П/4");
dc.TextOut(610,275, "3П/2");
dc.TextOut(685,275, "7П/4");
dc.TextOut(775,275, "4П");
dc.TextOut(845,275, "9П/4");
dc.TextOut(925,275, "5П/2");
//Подписи осей
dc.TextOut(180,30, "Y(t)");
dc.TextOut(1000,275, "t, рад");
if(sinIs==true)//Если данные по синусу есть,
for(int i=0;i<1024;i++)//то в цикле по 640 точкам
{
dc.SetPixel(i,y0+(int)(sine[i]
dc.TextOut(200,10, "График функции синус ");
}
if(cosIs==true)//Если данные по косинусу есть,
for (int i = 0; i<1024; i++) //то в цикле по 640 точкам
{
dc.SetPixel(i,y0+(int)(cosine[
dc.TextOut(200,50, "График функции косинус");
}
if(tanIs==true)//Если данные по синусу есть,
for(int i=0;i<1024;i++)//то в цикле по 640 точкам
{
dc.SetPixel(i,y0+(int)(tan[i]*
dc.TextOut(200,100, "График функции тангенс");
}
}
/*Главная функция приложения OwlMain*/
OwlMain (int, char*[]){
//TApplication app(argv[0]);
return MyApp().Run();
}
MAINMENU MENU
{
POPUP "&Файл"
{
MENUITEM "&О программе\tEnter", 100
MENUITEM "&Выход\tEsc", 24310
}
POPUP "&Графики"
{
MENUITEM "&Синус\tF1", 201
MENUITEM "&Косинус\tF2", 202
MENUITEM "&Тангенс\tF3", 203
MAINMENU ACCELERATORS
{
VK_RETURN, 100, VIRTKEY
VK_ESCAPE, 24310, VIRTKEY
VK_F1, 201, VIRTKEY
VK_F2, 202, VIRTKEY
VK_F3, 203, VIRTKEY
}
#define IDC_CURSOR1 1
#define IDI_ICON1 1
#define CM_200 106
#define CM_100 107
#define CM_50 108
1 CURSOR
{
'00 00 02 00 01 00 20 20 00 00 00 00 00 00 30 01'
'00 00 16 00 00 00 28 00 00 00 20 00 00 00 40 00'
'00 00 01 00 01 00 00 00 00 00 80 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 FF FF FF 00 03 FF FE 00 03 FF FF 00 0F FF'
'FF 00 1F FF FF C0 1F FF FF FF FF FF FF FF FF FF'
'FF FF FF FD FF FF FF FD FF FF FF F8 FF FF FF F0'
'FF FF FF E0 3F FF FF C0 00 1F C0 00 00 1F E0 00'
'00 1F E0 00 00 1F F8 00 00 1F FC 3F E0 1F FE 3F'
'E0 1F FE FF E0 1F FF FF FF 9F FF FF FF 9F FF FF'
'FF 9F FF FF FF 9F FF FF FF FF FF FF FF FF FF FF'
'FF FF FF FF 7F FF FF FE 7F FF 00 00 7F FF 00 00'
'7F FF 00 00 7F FF 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00'
}
1 ICON
{
'00 00 01 00 01 00 20 20 10 00 00 00 00 00 E8 02'
'00 00 16 00 00 00 28 00 00 00 20 00 00 00 40 00'
'00 00 01 00 04 00 00 00 00 00 00 02 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 80 00 00 80 00 00 00 80 80 00 80 00'
'00 00 80 00 80 00 80 80 00 00 80 80 80 00 C0 C0'
'C0 00 00 00 FF 00 00 FF 00 00 00 FF FF 00 FF 00'
'00 00 FF 00 FF 00 FF FF 00 00 FF FF FF 00 99 99'
'99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99'
'99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99'
'99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99'
'9F FF FF FF FF FF FF FF FF FF FF FF F9 99 99 9F'
'FF FF FF FF FF FF FF FF FF FF FF FF F9 99 99 9F'
'FF FF FF FF FF FF FF FF FF FF FF FF F9 99 99 9F'
'FF FF FF FF FF FF FF FF FF FF FF FF F9 99 99 9F'
'FF FF FF FF FF FF FF FF FF FF FF FF F9 99 99 9F'
'FF FF FF FF FF FF FF FF FF FF FF FF F9 99 99 9F'
'FF FF FF FF FF FF FF FF FF FF FF FF F9 99 99 9F'
'FF FF FF FF FF FF FF FF FF FF FF FF F9 99 99 9F'
'FF FF FF FF F9 99 99 99 99 99 99 99 99 99 99 9F'
'FF FF FF FF 99 99 99 99 99 99 99 99 9F 99 99 9F'
'FF FF FF FF F9 99 99 99 99 F9 99 99 9F 99 99 9F'
'FF FF FF FF F9 99 99 99 99 F9 99 99 FF FF 99 9F'
'FF FF FF FF FF 99 99 9F FF FF F9 99 9F 99 99 9F'
'FF FF FF FF FF F9 99 99 99 F9 99 99 9F 99 99 9F'
'FF FF FF FF FF FF 99 99 99 F9 99 99 9F 99 99 9F'
'FF FF FF FF FF FF F9 99 99 F9 99 99 9F 99 99 99'
'FF FF FF FF FF FF FF FF FF FF F9 99 99 99 99 99'
'FF FF FF FF FF FF FF FF FF FF F9 99 99 99 99 99'
'9F FF FF FF FF FF FF FF FF FF F9 99 99 99 99 99'
'9F FF FF FF FF FF FF FF FF FF F9 99 99 99 99 99'
'99 FF FF FF FF FF FF FF FF FF F9 99 99 99 99 99'
'99 9F FF FF FF FF FF FF FF FF F9 99 99 99 99 99'
'99 99 9F FF FF FF FF FF FF FF F9 99 99 99 99 99'
'99 99 9F FF FF FF FF FF FF FF F9 99 99 99 99 99'
'99 99 9F FF FF FF FF FF FF FF F9 99 99 99 99 99'
'99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99'
'99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99'
'99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99'
'99 99 99 99 99 99 99 99 99 99 99 99 99 99 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00'
}