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

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

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

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

Файлы: 1 файл

отчет.docx

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

      return (INT_PTR)FALSE;

} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

{

      UNREFERENCED_PARAMETER(lParam);

      switch (message)

      {

      case WM_INITDIALOG:

            {

                  fstream File;

                  File.open(FileName, ios::app|ios::in|ios::out);

                  Record record;

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

                  {

                        float Persent = (record.Passengers / (record.Count * record.Places)) * 100;

                        if(Persent < 50)

                        {

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

                              while(Persent < 89)

                              {

                                    record.Count--;

                                    Persent = (record.Passengers / (record.Count * record.Places)) * 100;

                              } 

                              WriteInfo(File, record, i+1);

                        }

                  }

                  File.close();

            }

            return (INT_PTR)TRUE; 

      case WM_COMMAND:

            switch(LOWORD(wParam))

            {

            case IDCANCEL:

                  {

                        EndDialog(hDlg, LOWORD(wParam));

                  }

                  return (INT_PTR)TRUE;

            }

            break;

      }

      return (INT_PTR)FALSE;

} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

File kursovaya.cpp

// kursovaya.cpp : Defines the entry point for the application.

// 

#include "stdafx.h"

#include "kursovaya.h" 

#define MAX_LOADSTRING 100 

// Global Variables:

HINSTANCE hInst;        // current instance

TCHAR szTitle[MAX_LOADSTRING];     // The title bar text

TCHAR szWindowClass[MAX_LOADSTRING];   // the main window class name 

// Forward declarations of functions included in this code module:

ATOM    MyRegisterClass(HINSTANCE hInstance);

BOOL    InitInstance(HINSTANCE, int);

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); 

int APIENTRY _tWinMain(HINSTANCE hInstance,

                     HINSTANCE hPrevInstance,

                     LPTSTR    lpCmdLine,

                     int       nCmdShow)

{

      UNREFERENCED_PARAMETER(hPrevInstance);

      UNREFERENCED_PARAMETER(lpCmdLine); 

  // TODO: Place code here.

      MSG msg;

      HACCEL hAccelTable; 

      // Initialize global strings

      LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);

      LoadString(hInstance, IDC_KURSOVAYA, szWindowClass, MAX_LOADSTRING);

      MyRegisterClass(hInstance); 

      // Perform application initialization:

      if (!InitInstance (hInstance, nCmdShow))

      {

            return FALSE;

      } 

      hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_KURSOVAYA)); 

      // Main message loop:

      while (GetMessage(&msg, NULL, 0, 0))

      {

            if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))

            {

                  TranslateMessage(&msg);

                  DispatchMessage(&msg);

            }

      } 

      return (int) msg.wParam;

} 
 
 

//

//  FUNCTION: MyRegisterClass()

//

//  PURPOSE: Registers the window class.

//

//  COMMENTS:

//

//    This function and its usage are only necessary if you want this code

//    to be compatible with Win32 systems prior to the 'RegisterClassEx'

//    function that was added to Windows 95. It is important to call this function

//    so that the application will get 'well formed' small icons associated

//    with it.

//

ATOM MyRegisterClass(HINSTANCE hInstance)

{

      WNDCLASSEX wcex; 

      wcex.cbSize = sizeof(WNDCLASSEX); 

      wcex.style   = CS_HREDRAW | CS_VREDRAW;

      wcex.lpfnWndProc = WndProc;

      wcex.cbClsExtra  = 0;

      wcex.cbWndExtra  = 0;

      wcex.hInstance  = hInstance;

      wcex.hIcon   = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_KURSOVAYA));

      wcex.hCursor  = LoadCursor(NULL, IDC_ARROW);

      wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);

      wcex.lpszMenuName = MAKEINTRESOURCE(IDC_KURSOVAYA);

      wcex.lpszClassName = szWindowClass;

      wcex.hIconSm  = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); 

      return RegisterClassEx(&wcex);

} 

//

//   FUNCTION: InitInstance(HINSTANCE, int)

//

//   PURPOSE: Saves instance handle and creates main window

//

//   COMMENTS:

//

//        In this function, we save the instance handle in a global variable and

//        create and display the main program window.

//

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

{

   HWND hWnd; 

   hInst = hInstance; // Store instance handle in our global variable 

   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,

      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); 

   if (!hWnd)

   {

      return FALSE;

   } 

   ShowWindow(hWnd, nCmdShow);

   UpdateWindow(hWnd); 

   return TRUE;

} 

//

//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)

//

//  PURPOSE:  Processes messages for the main window.

//

//  WM_COMMAND - process the application menu

//  WM_PAINT - Paint the main window

//  WM_DESTROY - post a quit message and return

//

//

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

      int wmId, wmEvent;

      PAINTSTRUCT ps;

      HDC hdc;

      RECT rt;

      static enum ShapeSize shapeSize=MAX;

      static HMENU hMenu = GetMenu(hWnd);

      static int colour=0; 

      //static POINT beg={0,-300};

            TCHAR* itemResizeName[2] = {TEXT("Уменьшить!"), TEXT("Увеличить!")};

      switch (message)

      {

      case WM_COMMAND:

            wmId    = LOWORD(wParam);

            wmEvent = HIWORD(wParam);

            // Parse the menu selections:

            switch (wmId)

            {

            case IDM_INFO:

                  DialogBox(hInst, MAKEINTRESOURCE(IDD_INFO), hWnd, InfoDialog);

                  break;

            case IDM_ABOUT:

                  DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);

                  break;

            case IDM_RESIZE:

                  shapeSize = (shapeSize == MIN )? MAX : MIN;

                  //  значение, которое будет принимать объект shapeSize 0 или 1

                  ModifyMenu(hMenu, IDM_RESIZE,  MF_BYCOMMAND, IDM_RESIZE,

                  itemResizeName[shapeSize]); // индекс 0 или 1!!

                  DrawMenuBar(hWnd);  // перерисовать меню с новым названием пункта

                  break;

            case ID_COLOUR_GREYAUTUMN:

                  colour=0;

                  break;

            case ID_COLOUR_SUNNYSUMMER:

                  colour=1;

                  break;

            case ID_COLOUR_GREENSPRING:

                  colour=2;

                  break;

            case ID_COLOUR_WHITEWHINTER:

                  colour=3;

                  break; 

            case IDM_EXIT:

                  DestroyWindow(hWnd);

                  break;

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