Операционные системы

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

kursach_po_OS_gotovyy.docx

— 1.23 Мб (Скачать файл)

cosIs=false;//Сбросить индикатор  наличия данных

menu->CheckMenuItem(202,MF_UNCHECKED);//Снять маркер

Invalidate();//Перерисовать окно (без этого графика)

}

}

void MyWindow::CmTan(){

int state=menu->GetMenuState(203,MF_BYCOMMAND);

if(state==MF_UNCHECKED){//Если этот  пункт меню не выбран

for(int i=0;i<1024;i++)//Образовать

tan[i]=(sin((double)i/50))/(cos((double)i/50)); //массив данных

tanIs=true;//Установить индикатор  наличия данных

menu->CheckMenuItem(203,MF_CHECKED);//Пометить  команду меню

Invalidate();//Инициировать перерисовку  окна

} else{//Если этот пункт  меню уже выбран

for(int i=0;i<1024;i++)//Очистить

tan[i]=0;//массив данных

tanIs=false;//Сбросить индикатор  наличия данных

menu->CheckMenuItem(203,MF_UNCHECKED);//Снять маркер

Invalidate();//Перерисовать окно (без этого графика)

}

}/*Функции CmCos(), CmSinX() , CmCosX() имеют аналогичное содержимое*/

void MyWindow::Cm200()

{//Устанавливаем 200 точек  на 1

k=200;

Invalidate();//Перерисовываем

}

void MyWindow::Cm100()

{//Устанавливаем 100 точек  на 1

k=100;

Invalidate();//Перерисовываем

}

void MyWindow::Cm50(){//Устанавливаем  50 точек на 1

k=50;

Invalidate();//Перерисовываем

} void MyWindow::EvRButtonDown(UINT,TPoint& point){  //функция обработки сообщений  от правой клавиши мыши

TRect rect;

GetWindowRect(rect);//Получим текущие  координаты главного окна

point+=rect.TopLeft();//Смещаем точку  вывода меню

popupMenu.TrackPopupMenu(TPM_LEFTALIGN,point,0,HWindow);//Отобразим

//плавающее меню

}

/*3амещающая функция InitMainWindow() */ void MyApp::InitMainWindow(){

MyWindow* myWin=new MyWindow(0,"Программа  построения тригонометрических  функций");

SetMainWindow(myWin);

myWin->SetIcon(this,IDI_ICON1) ;

myWin->SetIconSm(this,IDI_ICON1) ;

myWin->SetCursor(this,IDC_CURSOR1) ;

EnableBWCC();//Разрешаем загрузку  и использование BWCC.DLL

}

void MyWindow::Paint(TDC& dc, bool, TRect&)

{int y0=260;//Сдвиг начала координат  по оси у

int x0=156;

dc.MoveTo(0,y0);//Смещаем текущую  позицию к началу оси X

dc.LineTo(1024,y0);//Проводим ось  X

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);               //6

dc.LineTo(161,310);

dc.MoveTo(151,360);                  //7

dc.LineTo(161,360);

dc.MoveTo(151,410);                     //8

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]*k),TColor::LtBlue);//выводим точки графика

 dc.TextOut(200,10, "График функции синус ");

}

 

if(cosIs==true)//Если данные  по косинусу есть,

for (int i = 0; i<1024; i++) //то в  цикле по 640  точкам

{

dc.SetPixel(i,y0+(int)(cosine[i]*k),TColor::LtGreen);//выводим точки графика

 dc.TextOut(200,50, "График функции косинус");

}

if(tanIs==true)//Если данные  по синусу есть,

for(int i=0;i<1024;i++)//то в цикле  по 640 точкам

{

dc.SetPixel(i,y0+(int)(tan[i]*k),TColor::LtRed);//выводим точки графика

 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'

}



Информация о работе Операционные системы