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

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

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

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

Файлы: 1 файл

отчет.docx

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

МОСКОВСКИЙ  ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ  И ИНФОРМАТИКИ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И ПРОГРАММИРОВАНИЯ 
 
 
 
 
 
 
 

Курсовая  работа

По теме:

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

Для

Железнодорожное управление вокзала города Энска 
 
 
 

Специальность:

071900 –  Информационные системы в технике  и технологиях

Факультет ОТФ–2, курс 1, семестр 2

Выполнила: Сушевская И.С..

Группа: ИТ0901

Вариант: 20

Руководитель: Загвоздкина А.В. 

     Задание на курсовую работу:

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

     Пояснительная записка:

  • File Dialogs CALLBACK.cpp
  • INT_PTR CALLBACK InfoDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)

INT_PTR CALLBACK ViewDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) Основное окно. Считывает из файла записи и помещает названия городов в список городов. Взаимодействует с элементами окна, со списком городов, получает номер выбранной записи и вызывает функцию, заполняющую окошки. У функции есть кнопки «добавить запись» (вызывает диалоговое окно и после работы с ним заново заполняет список городов), «изменение записи» (получает номер записи, осуществляет проверку на выбор записи, вызывает диалоговое окно заполняет список фамилий заново, иначе выдает сообщение об ошибке). Кнопка «Изменение пометки на удаление» получает номер записи, читает с файла информацию, помечает запись и заполняет окошки диалогового окна заного, также осуществляет проверку на правильность выбора записи. Кнопка удаления записей с пометкой вызывает функцию удаления и перезаполняет список. Кнопка основной задачи обработки информации вызывает диалоговое окно /*и заполняет список*/. Стандартная кнопка закрытия диалогового окна выходит из диалоговой процедуры.

INT_PTR CALLBACK AddDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) Функция обратного вызова для добавления записи в файл. Читает из окон ввода информацию, и если условия ввода не нарушены, функция ставит начальные условия и записывает информацию в файл.

INT_PTR CALLBACK ChangeDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) Функция для изменения записи. Вызывает диалоговое окно для изменения записи, и , если условия ввода измененной информации не нарушены, изменяет запись.

INT_PTR CALLBACK DoDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) Функция обратного вызова для пересчета недогруженных маршрутов и выводит измененную информацию.

INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) Функция инициализирует диалоговое окно, имеет одну кнопку, закрывающую диалог.

  • File Files.cpp

fstream& ReadInfo(fstream& File, Record& Info, int N) Функцияя считывает информацию из файла с определенной позиции

fstream& WriteInfo(fstream& File, Record& Info, int N) Записывает в файл в определённую позицию

void DeleteInfo(fstream& File) удаление помеченных на удаление записей. Функция задаёт имя временного файла, создаёт для него поток. Пока возможно чтение с файла, если пометка на удаление отсутствует, помещает запись во временный файл. Удаляет исходный файл, а временный файл переименовывает в исходный.

  • File Dialogs Func.cpp

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

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

void ClearEdits(HWND hDlg) Очистка записей в окошках и установление пометки с положение «не отмечено».

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

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

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

  • File paint.cpp

void paint(HWND hWnd,HDC hdc,int colour,ShapeSize shapeSize)

рисует логотип  относительно полученных данных, выбранных  пользователем, либо установленных  по умолчанию (набор цветов и размер).Высчитывает  область для рисования. При минимальном  размере вызывает функцию, рисующую рекламу. 

void reclama(HWND hWnd, HDC hdc ) Использует массив из строчек типа TCHAR и в двух циклах прорисовывает два столбца рекламного текста. 
 

  • File kursovaya.cpp

int APIENTRY _tWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

             LPTSTR lpCmdLine, int nCmdShow)

ATOM MyRegisterClass(HINSTANCE hInstance)

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

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

  • File kursovaya.h

В этом файле прописаны прототипы функций, определены структуры, подключены нужные файлы.

  • File Resource.h

Здесь определены «дефайны» (наборов цветов. кнопок, листбоксов, диалоговых окон, элементов меню и  т.д.)

 

     Эскизы  рекламной заставки и логотипа:  
 

 
 

 
 
 
 
 
 
 
 
 

     File Files.cpp

#include "stdafx.h"

#include "kursovaya.h" 

fstream& ReadInfo(fstream& File, Record& Info, int N)// функцияя считывания информации из файла

{

      File.clear();

      switch(N)//переход к нужной записи

      {

      case -1:

      case 0:

            break;

      default:

            File.seekp( (N-1)*( ALLLEN*sizeof(char)) , ios::beg);

      } 

      File >> Info.Delete

       >>Info.City

       >>Info.Count

       >>Info.Places

       >>Info.Passengers; 
 

      if(!File && !File.eof())

      {

            MessageBox(NULL, "O", "O", MB_OK);

      }

      return File; 

} 

fstream& WriteInfo(fstream& File, Record& Info, int N)//функция записи в файл

{

      File.clear(); 

      switch(N)//переход в нужное место файла

      {

      case -1:

            break;

      case 0:

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

            break;

      default:

            File.seekp( (N-1)*( ALLLEN*sizeof(char)) , ios::beg);

      }

      File << setw(INTLEN+1) << Info.Delete;

      File << setw(STRLEN+1) <<Info.City;

      File << setw(INTLEN+1) <<Info.Count;

      File << setw(INTLEN+1) <<Info.Places;

      File << setw(INTLEN+1) <<Info.Passengers; 

      return File;

} 

void DeleteInfo(fstream& File)//функция удаления помеченных записей

{

      Record Info;

      File.clear();

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

      TCHAR BufferFile[] = "BUF.txt";

      //создание  временного файла. помещение в  него записей,непомеченных на  удаление.

      //удаление  настоящего файла и переименование  нового 

      fstream File1(BufferFile, ios::in|ios::out|ios::trunc); 

      while(ReadInfo(File, Info) )

      {

            if(!Info.Delete)

            {

                  WriteInfo(File1, Info);

            }

      }

      File.close();

      File1.close(); 

      remove(FileName );//удаление настоящего фйла

      rename(BufferFile,FileName );//переименование

     } 
 

File paint.cpp 

#include "stdafx.h"

#include "kursovaya.h" 
 
 

void paint(HWND hWnd,HDC hdc,int colour,ShapeSize shapeSize)

      POINT pt={0,0};

      RECT rect;

      GetClientRect(hWnd,&rect); 

      int yCl=(rect.bottom - rect.top);

      int xCl=(rect.right - rect.left); 

      double x1 = xCl/15;//одна клеточка по горизонтали

      double y1 = yCl/7;//по вертикали 

      if(shapeSize==MIN)   // привязка к клиентскому окну для рекламы

      {

          y1=y1*0.5;

            x1=x1*0.5;

            yCl=yCl*0.5;

            xCl=xCl*0.5;

            pt.x=30;

            pt.y=-45;

            reclama(hWnd,hdc);

      } 
 
 
 

SetMapMode(hdc,MM_ISOTROPIC);

      SetWindowExtEx(hdc,xCl,yCl,NULL);

      SetViewportExtEx(hdc,xCl,-yCl,NULL);

      SetViewportOrgEx(hdc,pt.x,yCl-pt.y,  NULL); 
 
 
 

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