Проектирование программного приложения

Автор: Пользователь скрыл имя, 06 Декабря 2011 в 03:08, курсовая работа

Краткое описание

Железнодорожное управление вокзала города Энска заказало логотип, рекламный ролик и программу обслуживания железнодорожных касс. Программа накапливает информацию: город следования, количество поездов на данное направление, среднее число посадочных мест в поезде, ожидаемый пассажиропоток. Программа по запросу на указанном направлении изменяет любое из информационных полей. Программа по запросу выдает информацию о тех направлениях, на которых наблюдается недогрузка поездов (загруженность поезда меньше 50%) и снимает с этих направлений избыточные поезда (считать допустимой загрузку на 89%)

Файлы: 1 файл

отчет.docx

— 140.93 Кб (Скачать)

     COLORREF col[4][3]={{RGB(205,133,63),RGB(192,192,192),RGB(0,240,240)},

                                    {RGB(255,233,25),RGB(255,117,25),RGB(255,1,30)},

                          {RGB(10,255,22),RGB(87,186,47),RGB(220,255,0)},

                                    {RGB(158,173,186),RGB(125,249,255),RGB(220,255,255)}}; 
 

      HBRUSH hBrush=CreateSolidBrush(col[colour][0]);

      HBRUSH oldBrush=(HBRUSH)SelectObject(hdc,(HBRUSH)hBrush);

      for (int i=0; i<3;i++)

            Rectangle(hdc,x1+x1*i*5,7*y1,4*x1+x1*i*5,0);

        

       DeleteObject((HBRUSH)hBrush);

       HBRUSH hBrush1 = CreateSolidBrush(col[colour][1]);

      SelectObject(hdc,(HBRUSH)hBrush1);

       for (int i=0; i<2; i++)

            Rectangle(hdc,0,y1*5-4*y1*i,x1*15,y1*6-4*y1*i);

      DeleteObject(SelectObject(hdc,(HBRUSH)oldBrush) ); 

      HPEN hpen = CreatePen(PS_SOLID,7,col[colour][2]);

      HPEN oldPen=(HPEN)SelectObject(hdc,(HPEN)hpen);

      POINT N[4]={{x1*1.5,y1*2.5},

            {x1*2.0, y1*4.5},

            {x1*3.0,y1*2.5},

            {x1*3.5,y1*4.5}};

      Polyline(hdc,N,4);

            POINT S[6]={{x1*6.5,y1*3},

            {x1*7.5, y1*2.5},

            {x1*8.5,y1*3},

            {x1*6.5,y1*4},

            {x1*7.5,y1*4.5},

            {x1*8.5,y1*4}};

      Polyline(hdc,S,6);

      POINT K[3]={{x1*13.5,y1*4.5},

            {x1*11.5,y1*3.5},

            {x1*13.5,y1*2.5}};

      Polyline(hdc,K,3);

      MoveToEx(hdc,K[1].x,K[0].y,NULL);

      LineTo(hdc,K[1].x,K[2].y); 

      DeleteObject(SelectObject(hdc,(HBRUSH)oldBrush) ); 

} 
 

void reclama(HWND hWnd, HDC hdc )

{ 

      TCHAR* line[7] ={   "\tЖД  г.Энск",

                                    "\tN едорогой",

                                    "\tS коростной",

                                    "\tK омфортабельный",

                                    "\t подробная  информация по телефонам:",

                                    "\t 777-77-76",

                                    "\t 777-77-77", 

                              };

// макрос  RGB задает палитру цветов от RGB(255,255,255)белый,

// до RGB(0,0,0) черный

    HPEN hPen0 = CreatePen(PS_SOLID,1,RGB(250,0,250));

      HPEN hOldPen= (HPEN)SelectObject(hdc,hPen0); 

      static LOGFONT lf;

      lf.lfPitchAndFamily = FIXED_PITCH | FF_MODERN;

                             // Шаг шрифта DEFAULT_PITCH по умолчанию

      lf.lfItalic   = TRUE;

                              // запрашивается курсивный шрифт, если TRUE

      lf.lfWeight   = FW_BOLD;

                     // жирность шрифта 0(FW_DONTCARE),100,200,... 700,..,900

                     // значение 0 предписывает выбрать вес по умолчанию

      lf.lfHeight   = 70;

      lf.lfCharSet  = DEFAULT_CHARSET;

                     // код используемого набора символов 

      HFONT hFont0 = CreateFontIndirect(&lf);

      HFONT hOldFont = (HFONT)SelectObject(hdc,hFont0);

      SetTextColor(hdc,RGB(0,150,150));

      RECT rect;

      GetClientRect(hWnd,&rect);

      int x=rect.right/2+50, y=30;

      const int xVE = rect.right - rect.left; // 760

      const int yVE = rect.bottom - rect.top;//  485

      int tabStop[] ={  xVE/80, xVE/5, -xVE/2,-(xVE-2*x)};

int dY=0;

LONG w=TabbedTextOut (hdc,x,y,line[0],wcslen(line[0]),sizeof(tabStop)/sizeof(int),

                    tabStop,x);

     dY=HIWORD(w)- 5;

     y=y+1*dY/4;

    

       int cv=50;

       int h[]={50,50,50};

for( int i=1; i<4; ++i)

{ y=y+dY;

lf.lfHeight   = h[i-1];

hFont0 = CreateFontIndirect(&lf);

DeleteObject(SelectObject(hdc,hFont0));

SetTextColor(hdc,RGB(150,150,cv=cv+50));

  TabbedTextOut (hdc,x,y,line[i],wcslen(line[i]),sizeof(tabStop)/sizeof(int),

                    tabStop,x);

} 

SetTextColor(hdc,RGB(0,0,0));

            lf.lfPitchAndFamily = FIXED_PITCH | FF_MODERN;

            lf.lfHeight=30;

            lf.lfWidth =23 ;

            lf.lfWeight=500;

            lf.lfUnderline=FALSE;

            hFont0 = CreateFontIndirect(&lf);

            SelectObject(hdc,hFont0); 

for(int i=4; i<7; i++)

            {

                  static int uu = 45,vv=200;

                  TextOut(hdc,80+vv*(i-4),325+uu*(i-4),line[i],wcslen(line[i])); 

            } 

    DeleteObject(SelectObject(hdc,hOldPen));

      DeleteObject(SelectObject(hdc,hOldFont)); 

      GetClientRect(hWnd,&rect);

} 

File Dialogs Func.cpp

#include "stdafx.h"

#include "kursovaya.h" 

void ClearAll(HWND hDlg)//очистка списка и полей

{

      SendMessage( GetDlgItem(hDlg, IDC_LIST_CITY), LB_RESETCONTENT, 0, 0); 

      ClearEdits(hDlg);

} 

void FillList(HWND hDlg, fstream& File)//заполнение списка названий городов.

{

      File.clear();

      File.seekp(0, ios::beg); 

      Record Info; 

      for(int i = 0; ReadInfo(File, Info, i+1); i++)

      {

            SendMessage( GetDlgItem(hDlg, IDC_LIST_CITY), LB_ADDSTRING, 0, (LPARAM)Info.City);

      }

} 

void ClearEdits(HWND hDlg)

{

      SetDlgItemText(hDlg, IDC_EDIT_COUNT, "");

      SetDlgItemText(hDlg, IDC_EDIT_PLACES, "");

      SetDlgItemText(hDlg, IDC_EDIT_PASSENGERS, ""); 

      SendMessage( GetDlgItem(hDlg, IDC_CHECK_DELETE), BM_SETCHECK, BST_UNCHECKED, 0);

} 

void FillEdits(HWND hDlg, Record& Info)//заполнение полей информацией,которую передаем

{

      SetDlgItemInt(hDlg, IDC_EDIT_COUNT, Info.Count, FALSE);

      SetDlgItemInt(hDlg, IDC_EDIT_PLACES, Info.Places, FALSE);

      SetDlgItemInt(hDlg, IDC_EDIT_PASSENGERS, Info.Passengers, FALSE); 

      SendMessage( GetDlgItem(hDlg, IDC_CHECK_DELETE), BM_SETCHECK, (Info.Delete == false) ? BST_UNCHECKED : BST_CHECKED, 0);

} 

bool GetInfo(HWND hDlg, Record& Info)//получаем информацию из полей

{

      BOOL CopyCount, CopyPlaces, CopyPassengers;

      GetDlgItemText(hDlg, IDC_EDIT_CITY, Info.City, STRLEN);

      Info.Count = GetDlgItemInt(hDlg, IDC_EDIT_COUNT, &CopyCount, FALSE);

      Info.Places = GetDlgItemInt(hDlg, IDC_EDIT_PLACES, &CopyPlaces, FALSE);

      Info.Passengers = GetDlgItemInt(hDlg, IDC_EDIT_PASSENGERS, &CopyPassengers, FALSE); 

      if(!CopyCount || !CopyPlaces || !CopyPassengers || !*Info.City)

      {

            return false;

      }

      return true;

} 
 

bool ChangeInfo(HWND hDlg, Record& Info)//изменяем запись в поле

{

      BOOL CopyCount, CopyPlaces, CopyPassengers;

      TCHAR City[STRLEN];

      GetDlgItemText(hDlg, IDC_EDIT_CITY, City, STRLEN);

      int Count = GetDlgItemInt(hDlg, IDC_EDIT_COUNT, &CopyCount, FALSE);

      int Places = GetDlgItemInt(hDlg, IDC_EDIT_PLACES, &CopyPlaces, FALSE);

      int Passengers = GetDlgItemInt(hDlg, IDC_EDIT_PASSENGERS, &CopyPassengers, FALSE); 

      if(CopyCount)

      {

            Info.Count = Count;

      }

      if(CopyPlaces)

      {

            Info.Places = Places;

      }

      if(CopyPassengers)

      {

            Info.Passengers = Passengers;

      }

      if(*City)

      {

            wcscpy(Info.City, City);

      }

      return true;

} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

File Dialogs.cpp

#include "stdafx.h"

#include "kursovaya.h" 

int N; 
 
 

INT_PTR CALLBACK InfoDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)

{

      UNREFERENCED_PARAMETER(lParam);

Информация о работе Проектирование программного приложения