Курсовая на тему Автоматизация учета в автотранспортном предприятии
Работа добавлена на сайт bukvasha.net: 2015-07-01Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
1. Изучение предметной области
1.1 Заинтересованные лица и их требования
Заинтересованные лица:
Водитель
Бухгалтер
Депо
Диспетчер
Кондуктор
Основные требования:
Безошибочный ввод данных.
Программа работает без сбоев.
Хороший и удобный интерфейс.
Быстрое и качественное обслуживание
1.2 Документ «Видение»
Заинтересованные лица:
Водитель: хочет осторожно и точно по расписанию производить маршрут.
Бухгалтер: хочет безошибочно и вовремя производить оплату с рабочими, точно отсчитывать прибыль и деньги в амортизационный фонд, в фонд налогов, за электроэнергию. Вовремя фиксировать необходимые данные в соответствующих журналах.
Депо: хочет, в случае необходимости производить ремонт – амортизацию транспорта.
Кондуктор: хочет зафиксировать в начале каждого маршрута количество билетов, выданных диспетчером, а также подсчитать их количество в конце маршрута.
Диспетчер: хочет правильно создавать путевые листы (расписание маршрутов), вовремя отправлять (принимать) транспорт на линию (с линии) маршрута. Следить за соответствием расписания и движения транспортов и регистрировать все отправления и прибытия транспортов в журнале регистрации.
Место системы.
Систему можно использовать на такой государственной организации, как городской электротранспорт.
Пользователи системы.
В качестве непосредственных пользователей системы могут выступать: водитель, диспетчер, бухгалтер и кондуктор городского электротранспорта.
Задачи и свойства системы.
Обеспечивать удобный интерфейс пользователя.
Реагировать на ошибки ввода – вывода данных.
Искать данные в системе по запросу.
1.3 График выполнения курсовой работы
Период выполнения | Выполняемый этап курсовой работы |
2 неделя | Изучение предметной области. |
3\4 неделя | Выполнение анализа системы. |
5\9 неделя | Окончание проектирования. |
10\13 неделя | Написания программного кода. |
13\14 неделя | Предоставление окончательной программы. |
14\15 неделя | Защита курсовой работы. |
1.4 Диаграмма прецедентов и описание прецедентов
Диаграмма прецедентов
Описание прецедентов
Прецедент П1: Подсчет прибыли.
Основной исполнитель: Бухгалтер.
Заинтересованные лица и их требования:
Кондуктор: Хочет в начале и в конце каждого рабочего дня знать количество билетов, выданных диспетчером, и соответственно оставшихся.
Бухгалтер: Хочет подсчитать полученную прибыль от продажи билетов и распределить ее на оплату налогов и зарплаты.
Предусловия: Бухгалтер должен быть идентифицирован и аутентифицирован.
Постусловия: Прибыль посчитана, и данные о подсчете занесены в систему.
Основной, успешный сценарий:
1).В начале рабочего дня бухгалтер фиксирует в «журнале учета»: дату, количество выдающихся билетов, в соответствии с маршрутом; выдает билеты диспетчеру, который передает кондуктору.
2).В конце рабочего дня кондуктор возвращает диспетчеру оставшееся количество билетов и сумму от проданных. Диспетчер передает их бухгалтеру, который заносит всю необходимую информацию (дата, №маршрута, количество оставшихся билетов, количество выданных билетов, сумма) в «журнал учета».
3).Бухгалтер учитывает образовавшуюся прибыль и высчитывает денежные финансы на оплату налогов и заработной платы. А также, фиксирует количество денежных финансов на налоги в «журнале налогов», а заработную плату в «журнале ЗП».
Альтернативный сценарий 1:
2.а). В конце рабочего дня кондуктор возвращает диспетчеру всё оставшееся количество билетов, но не всю сумму денег за проданные билеты.
1. Диспетчер передает все бухгалтеру. Бухгалтер заносит всю необходимую информацию в систему.
2. Система при подсчете обнаруживает ошибку недостачи, а также количество штрафа.
3. Бухгалтер вызывает кондуктора и информирует его о недостаче. Кондуктор платит необходимую сумму штрафа, по ранее определенной сумме. Бухгалтер заносит заплаченную сумму штрафа в «журнал штрафов».
4. Бухгалтер заносит в систему уже новые данные. Переход к п. 1).
Прецедент П2: Распределение транспорта по маршрутам.
Основной исполнитель: Диспетчер.
Заинтересованные лица и их требования:
Диспетчер: Хочет точно и правильно создать путевые листы для каждого маршрута. Хочет правильно распределить транспорт по маршрутам, в соответствии с количеством пассажиров на маршрутах, а также не допустить пересечение или столкновение транспортов. Провести регистрацию в соответственном журнале.
Водитель: Хочет иметь в наличии маршрут своего транспорта, путевой лист, расписание остановок, точное время передвижения и остановок.
Предусловия: Диспетчер должен быть идентифицирован и аутентифицирован.
Постусловия: Транспорт распределен по маршрутам.
Основной, успешный сценарий.
1).Диспетчер создает путевые листы в системе для всех необходимых маршрутов, в зависимости от количества мест, приходящихся на каждый транспорт, и количеством пассажиров на маршрутах. Все путевые листы хранятся в «журнале П_лист’.
2).В начале рабочего дня диспетчер выдает каждому водителю его путевой лист. Диспетчер отправляет транспорт по маршруту. Регистрирует начало каждого маршрута в «журнале регистрации отправки и прибытия транспортов».
3).Диспетчер принимает транспорт, проверяет его, и не найдя повреждений отпускает водителя, регистрирует в «регистрации отправки и прибытия транспортов», а также сообщает системе о завершении определенного маршрута.
Альтернативный сценарий 1:
3.а) В конце рабочего дня транспорт не возвращается в Депо
1. Диспетчер фиксирует в системе отсутствие транспорта. Информирует необходимых лиц. Производятся поиски транспорта.
2. При прибытии с маршрута транспорта переход к п. 3).
Альтернативный сценарий 2:
3.б) Принимая и осматривая транспорт в конце рабочего дня, диспетчер находит незначительные повреждения.
1. Диспетчер сообщает о повреждениях водителю, в Депо, в систему в «журнал повреждений».
2. Транспорт снимают с линии маршрута, заменяя его другим и фиксируя смену в системе.
3. Депо вызывает мастера по ремонтным работам, регистрируя в системе оплату работнику за ремонт.
4. После ремонта транспорт возвращают на линию маршрута. Переход к п. 3).
Прецедент П3: Расчет с работниками.
Основной исполнитель: Бухгалтер.
Заинтересованные лица и их требования:
Бухгалтер. Хочет точно и быстро выделить средства для оплаты услуг работников.
Руководство. Хочет аккуратно и точно записать и хранить информацию о выделенных средствах в систему.
Предусловия: Бухгалтер идентифицирован и аутентифицирован (имеет доступ к определенным ресурсам). Программа загружена.
Постусловия: Расчет с работниками. Занесение и сохранение соответствующей информации в журналах системы.
Основной, успешный сценарий
1).В систему бухгалтером заноситься количество выданных билетов и количество оставшихся, за весь месяц.
2).Система считает прибыль от всех проданных билетов. Бухгалтер отсчитывает некоторую часть прибыли на оплату налогов, заносит в «журнал налогов».
3).Система вычисляет заработную плату работникам в соответствии с установленным коэффициентом k, который (от всей суммы прибыли) составляет:
– для водителя = 0,3
– для кондуктора = 0,15
– для диспетчера = 0,15
– для бухгалтера =0,2
5).Система выводит конечные данные по оплате и сохраняет их. Бухгалтер расплачивается с работниками, фиксируя все расчеты в «журнале ЗП».
Альтернативный сценарий 1:
1.а). В систему бухгалтер заносит не всю информацию.
1. Бухгалтер заносит только количество выданных билетов.
2. Система выдает сообщение: «НЕДОСТАТОЧНО ДАННЫХ ДЛЯ РАСЧЕТА!!!»
3. Бухгалтер вводит уже всю информацию заново. Переход к п. 1.
Прецедент П4: Расчет с поставщиком электроэнергии.
Основной исполнитель: Бухгалтер.
Заинтересованные лица и их требования:
Бухгалтер. Хочет точно и быстро выделить средства для оплаты услуг энергопоставщика.
Руководство. Хочет аккуратно и точно записать в систему, и хранить информацию о выделенных энергопоставщику средствах.
Предусловия: Бухгалтер идентифицирован и аутентифицирован (имеет доступ к определенным ресурсам). Программа загружена.
Постусловия: Произведен расчет за электроэнергию. Занесение и сохранение соответствующей информации в базе данных системы.
Основной, успешный сценарий:
1).Бухгалтер заносит все необходимые данные (количество маршрутов, пройденные ими расстояния) в систему.
2).Система в конце каждого дня производит подсчет затраченной электроэнергии на каждый маршрут, соответственно учитывая расстояния маршрутов. Бухгалтер сохраняет в системе все данные в конце каждого дня.
3).В конце каждой недели бухгалтер суммирует окончательный результат за оплату электроэнергии. Бухгалтер сохраняет в системе все данные в конце каждой недели.
4).Бухгалтер представляет полученный отчет поставщику электроэнергии. Поставщик сверяет со своими расчетами, и при совпадении принимает оплату. Бухгалтер фиксирует в системе все проведенные расчеты и уплаты в «журнале оплаты за электричество».
Альтернативный сценарий 1:
4).Не совпадение расчетов бухгалтера и поставщика.
1. Бухгалтер заново вносит свои данные в систему. Система выдает новые данные об оплате.
2. Бухгалтер представляет новый полученный отчет поставщику электроэнергии. Переход к п4).
1.5 Составление концептуальных классов
Список категорий концептуальных классов
Категории концептуальных классов | Пример |
Физические или материальные объекты | Трамвай, троллейбус |
Спецификации, элементы проектных решений или описание объектов | Описание регистрации |
Места | Остановки, Депо |
Транзакции | Регистрация |
Роль людей | Водитель, кондуктор, диспетчер, бухгалтер |
Контейнеры других объектов | Трамвай, троллейбус |
Содержимое контейнеров | Пассажиры, кондуктор |
Организации | Служба авторизации платежей, налоговая служба, амортизационная служба. |
События | Продажа билета, создание путевого листа. |
Правила и политика | Правило возврата путевого листа |
Записи различных деятелей | Различного вида журналы |
Описание концептуальных классов.
Бухгалтер – Accountant
Пассажир – Passenger
Водитель – Driver
Диспетчер – Dispatch
Кондуктор – Conductor
Депо – Depo
Служба авторизации платежей – Service payment
Амортизационный фонд – Repair fund
Билет – Ticket
Налог – Tax
Прибыль – Profit
Заработная плата – Salary
Трамвай – Tram
Троллейбус – Trolley-bus
Путевой лист – Plist
Продажа – Sale
Оплата – Payment
Маршрут – Itinerary
Расписание – Time_table
Налоговая служба – Tax_Service
Энергопоставщик – ElSupplier
Журнал регистрации транспорта – Journal transport register
Журнал путевых листов – Journal_Plist
Журнал учета – Journal_Ychet
Журнал ЗП (Заработной платы) – Journal_ZP
Журнал налогов – Journal_Tax
Журнал оплаты за электроэнергию – Journal_Elect
Журнал штрафов – Journal_sh
Журнал повреждений – Journal_break
Ассоциации классов
Категория | Пример |
А является физической частью В | Троллейбус =вагон |
А физически содержится в В | Маршрут =остановка |
А логически содержится в В | Остановка =расписание остановок |
А получает В | Пассажир =билет |
А начисляет В | Бухгалтер =зарплата |
А использует В | Водитель = расписание |
А выдает В | Диспетчер =путевой лист |
А получает В | Водитель =путевой лист |
А принимает В | Кондуктор =оплату |
Диаграмма концептуальных классов
Атрибуты классов
Itinerary |
nameIt-ry: text Col. Stop: int nameStop: text time between Stop: double timeA: double timeB: double |
Salary |
Summa: double Col sale ticket: double Bonus: double Tax: double Procent: double Holiday: double |
PList |
NumberT-t: int Itinerary: text timeA: double timeB: double surnameDriver: text year: double month: double |
Accountant |
name: FIO addres: text tel: PhoneNumber |
Transport_Register |
Surname_Dispatch: text NumberIt-ry: double Number_Tr-t: double timeA: double TimeB: double |
Transport |
Tip: text Number: int Ser_number: int |
2. Проектирование системы
2.1 Описание операций и диаграмм взаимодействия
Прецедент: Распределение транспорта по маршрутам.
Описание операции ОП 1:
Операция | Transport_Itinerary |
Ссылки | Распределение транспорта по маршрутам и занесение данных в журнал регистрации |
Предусловия | Бухгалтер идентифицирован и аутентифицирован. |
Постусловия | Транспорт распределен. Данные занесены в журнал. |
Прецедент: Начисление заработной платы.
Описание операции ОП 2:
Операция | Receive_Profit |
Ссылки | Подсчет прибыли. |
Предусловия | Бухгалтер идентифицирован и аутентифицирован. |
Постусловия | Прибыль подсчитана, данные занесены в систему. |
Описание операции ОП 3:
Операция |
Pay_Salary
Ссылки
Выделение средств оплаты услуг работникам
Предусловия
Бухгалтер идентифицирован и аутентифицирован.
Постусловия
Средства выделены, данные записаны в журнале системы.
Прецедент: Оплата за электроэнергию.
Описание операции ОП 4:
Операция | Pay_Supplier |
Ссылки | Выделение средств оплаты услуг поставщика энергии. |
Предусловия | Бухгалтер идентифицирован и аутентифицирован |
Постусловия | Средства выделены, данные записаны в журнале системы |
2.2 Программные классы
Journal_Plist |
FIO_driver: String FIO_cond: String №marsh: Byte data: Byte №Plist: Byte |
Plist (№marsh, data, №Plist, FIO_driver, FIO_cond) |
Journal_Ychet |
data: Byte colvo_t №1: Byte colvo_t №2: Byte №marsh: Byte sum: Byte |
Beginwork_day (data, colvo_t №1, №marsh) Endwork_day (data, colvo_t №1, colvo_t №2, sum, №marsh) |
Journal_ZP |
pribul: Byte sumZP: Byte zp: Byte zp_account: Byte zp_driv: Byte zp_disp: Byte zp_cond: Byte |
Podschet_ZP (pribul, sumZP) Pay_ZP (zp, zp_account, zp_driv, zp_disp, zp_cond) |
Journal_transport register |
data: Byte №marsh: Byte timeA: Byte timeB: Byte |
Begin_marsh (data, №marsh, timeA) End_marsh (data, №marsh, timeB) |
Journal_sh |
№marsh: Byte sum_sh: Byte data: Byte FIO: String |
Shtraff (sum_sh, data, FIO, №marsh) |
Journal_Tax |
pribul: Byte sumTax: Byte data: Byte |
Podschet_Tax (pribul, sumTax) Pay_ZP (sumTax, data) |
Journal_break |
№marsh: Byte data: Byte |
Polomka (data, №marsh) |
Journal_Elect |
data: Byte sum_el: Byte |
El_oplata (data, sum_el) |
System | ||
FIO_driver: String FIO_cond: String №marsh: Byte data: Byte №Plist: Byte colvo_t №1: Byte colvo_t №2: Byte
3. Описание интерфейса приложения При входе в систему, она запрашивает пароль. Без него пользователь не сможет иметь доступ к системе. Далее, пользователь может выбирать необходимое действие, нажав в открывшемся окне – File -> Action. В результате, получив список, необходимых действий.
Для начала выбираем создание путевого листа (Path List). В необходимых колонках вводим соответствующие данные. После создания обязательно сохраняем в созданном и указанном журнале. Сделаем проверку журнала, в котором должен был сохраниться наш 1-й путевой лист.
Далее выбираем учет билетов (Uchet). Здесь аналогично вводим необходимые данные. Также сохраняем в журнале. Проверяем журнал. Далее выбираем операции с заработной платой и налогом. Введя необходимые данные, сохраняем в журнале. Проверяем выданное и оставшееся количество билетов. Начисляем заработную плату.
Проверяем начисление зарплаты. Выбрав пункт Поломка (Polomka), мы видим следующее окно, в котором вводим необходимые данные. Проверяем в журнале. Если необходимо произвести отчет, то нажав на главной панели кнопочку Browse, мы видим следующее окно. В котором выбрав необходимый нам журнал или файл, видим его в окне на главной панели.
И дополнительная информация об авторе этого замечательного проекта может быть найдена по адресу – About -> Show. Заключение В результате выполнения данного курсового проекта было разработано приложение для автоматизации работы службы занятости. Данное приложение позволяет значительно упростить работу сотрудников службы занятости (инспектора и бухгалтера) и сэкономить время посетителей данной организации, которыми являются безработные и работодатели. Программа позволяет оформлять и хранить заявки посетителей, быстро находить вакантные места для безработных и рабочих для работодателей, содержит информацию о курсах переобучения безработных, позволяет начислять пособие безработным, заявки которых сохранены. Предусмотрены разные варианты обращения посетителей. Правила пользования программой описаны в разделе Описание интерфейса. Список литературы 1. Майкл Дж. Янг Полное руководство по Visual C++ 6. Издательский дом «Ирина», BHV, Киев, 2000 г.-1048 с. 2. Дейтел Х.М., Дейтел П.Дж. Как программировать на С++ (Третье издание). Под издательством ЗАО «Бином», Москва, 2003 г.-1150 с. 3. Крэг Лерман. Применение UML и шаблонов проектирования. М. Издательский дом «Вильямс». 2002.-624 с. 4. Гради Буч. Объектно-ориентированный анализ и проектирование. Бином, СПБ, 2000. -560 с. 5. Орлов С.А. Технология разработки программного обеспечения. СПБ.: Питер, 2002. -464 с. Приложение Листинги программных модулей Add class #include «add1.h» #include «path.h» #include «uch.h» #include «bre.h» #include «elec.h» void add: OnChoose() { UpdateData(TRUE); if (m_radio==0) { path dlg; dlg. DoModal(); } if (m_radio==1) { uch dlg; dlg. DoModal(); } if (m_radio==2) { add1 dlg; dlg. DoModal(); } if (m_radio==3) { elec dlg; dlg. DoModal(); } if (m_radio==4) { bre dlg; dlg. DoModal(); } } Add1 class // add1.cpp: implementation file // #include «stdafx.h» #include «MasKurs.h» #include «add1.h» #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // add1 dialog add1:add1 (CWnd* pParent /*=NULL*/) : CDialog (add1:IDD, pParent) { // {{AFX_DATA_INIT(add1) m_date = _T(«»); m_numberofout = _T(«»); m_numberofleft = _T(«»); m_number = _T(«»); m_profit = 0; m_zarplata = 0; m_zarpl = _T(«»); m_nalog1 = _T(«»); m_profit1 = 0; m_nalog = 0; m_shtraf = _T(«»); // }} AFX_DATA_INIT } void add1: DoDataExchange (CDataExchange* pDX) { CDialog: DoDataExchange(pDX); // {{AFX_DATA_MAP(add1) DDX_Control (pDX, IDC_COMBO1, m_combo1); DDX_Text (pDX, IDC_EDIT1, m_date); DDX_Text (pDX, IDC_EDIT2, m_numberofout); DDX_Text (pDX, IDC_EDIT3, m_numberofleft); DDX_Text (pDX, IDC_EDIT11, m_number); DDX_Text (pDX, IDC_EDIT4, m_profit); DDX_Text (pDX, IDC_EDIT5, m_zarplata); DDX_Text (pDX, IDC_EDIT8, m_zarpl); DDX_Text (pDX, IDC_EDIT9, m_nalog1); DDX_Text (pDX, IDC_EDIT6, m_profit1); DDX_Text (pDX, IDC_EDIT7, m_nalog); DDX_Text (pDX, IDC_EDIT10, m_shtraf); // }} AFX_DATA_MAP } BEGIN_MESSAGE_MAP (add1, CDialog) // {{AFX_MSG_MAP(add1) ON_WM_SHOWWINDOW() ON_BN_CLICKED (IDC_BUTTON5, OnSaveToUchetZarplataNalogi) ON_BN_CLICKED (IDC_BUTTON1, OnCount1) ON_BN_CLICKED (IDC_BUTTON2, OnSaveToZarp) ON_BN_CLICKED (IDC_BUTTON3, OnCount2) ON_BN_CLICKED (IDC_BUTTON4, OnSaveToNalog) ON_BN_CLICKED (IDC_BUTTON6, OnSaveToshtraf) // }} AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // add1 message handlers CString str0; void add1: OnShowWindow (BOOL bShow, UINT nStatus) { CDialog: OnShowWindow (bShow, nStatus); UpdateData(TRUE); // CStdioFile fOpen («d:\\MasKurs\\driver.txt», CFile:modeRead); CStdioFile fOpen1 («d:\\MasKurs\\konductor.txt», CFile:modeRead); CString str; // CString str1; // while (fOpen. ReadString(str)!=0) { // m_combo. AddString(str); // } while (fOpen1. ReadString(str0)!=0) { m_combo1. AddString(str0); } } void add1: OnSaveToUchetZarplataNalogi() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\uchetzarplatnalogi.txt», CFile:modeWrite); CString str; // int index=m_combo. GetCurSel(); int index1=m_combo1. GetCurSel(); // m_combo. GetLBText (index, str1); m_combo1. GetLBText (index1, str0); if (m_date==»» || m_number==»» || m_numberofout==»» || m_numberofleft==»» || str0==»») { MessageBox («Please fill all fields», «Info», MB_OK); return; } fOpen. SeekToEnd(); // fOpen. WriteString («FIO driver «+str1+»\n»); fOpen. WriteString («FIO konductor «+str0+»\n»); fOpen. WriteString («Date «+m_date+»\n»); fOpen. WriteString («Number of vudanih «+m_numberofout+»\n»); fOpen. WriteString («Number of ostavshihsa «+m_numberofleft+»\n»); fOpen. WriteString («Number «+m_number+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to uchetzarplatnalogi.txt», MB_OK); } void add1: OnCount1 () { UpdateData(TRUE); int result=m_profit*m_zarplata/100; CString str; str. Format («%d», result); GetDlgItem (IDC_EDIT8)->SetWindowText(str); // UpdateData(FALSE); } void add1: OnSaveToZarp() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\zarplata.txt», CFile:modeWrite); CString str; // int index=m_combo. GetCurSel(); int index1=m_combo1. GetCurSel(); // m_combo. GetLBText (index, str1); m_combo1. GetLBText (index1, str0); if (m_profit==0 || m_zarplata==0 || str0==»») { MessageBox («Please fill all fields», «Info», MB_OK); return; } fOpen. SeekToEnd(); // fOpen. WriteString («FIO driver «+str1+»\n»); fOpen. WriteString («FIO konductor «+str0+»\n»); fOpen. WriteString («Zarplata «+m_zarpl+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to zarplata.txt», MB_OK); } void add1: OnCount2 () { UpdateData(TRUE); int result=m_profit1*m_nalog/100; CString str; str. Format («%d», result); // GetDlgItem (IDC_EDIT9)->SetWindowText(str); m_nalog1=str; UpdateData(FALSE); } void add1: OnSaveToNalog() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\nalog.txt», CFile:modeWrite); CString str; // int index=m_combo. GetCurSel(); // int index1=m_combo1. GetCurSel(); // m_combo. GetLBText (index, str1); // m_combo1. GetLBText (index1, str0); if (m_profit1==0 || m_nalog==0) { MessageBox («Please fill all fields», «Info», MB_OK); return; } fOpen. SeekToEnd(); str. Format («%d», m_profit1); // fOpen. WriteString («FIO driver «+str1+»\n»); fOpen. WriteString («Profit «+str+»\n»); fOpen. WriteString («Nalog «+m_nalog1+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to nalog.txt», MB_OK); } void add1: OnSaveToshtraf() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\shtraf.txt», CFile:modeWrite); CString str; // int index=m_combo. GetCurSel(); int index1=m_combo1. GetCurSel(); // m_combo. GetLBText (index, str1); m_combo1. GetLBText (index1, str0); if (m_shtraf==»» || str0==»») { MessageBox («Please fill all fields», «Info», MB_OK); return; } fOpen. SeekToEnd(); // fOpen. WriteString («FIO driver «+str1+»\n»); fOpen. WriteString («FIO konductor «+str0+»\n»); fOpen. WriteString («Shtraf «+m_shtraf+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to shtraf.txt», MB_OK); } Bre class void bre: OnSaveToBreak() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\bre.txt», CFile:modeWrite); CString str; if (m_date==»» || m_number==»») { MessageBox («Please fill all fields», «Info», MB_OK); return; } fOpen. SeekToEnd(); fOpen. WriteString («Date «+m_date+»\n»); fOpen. WriteString («Number «+m_number+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to bre.txt», MB_OK); } void bre: OnSaveToZamena() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\zamena.txt», CFile:modeWrite); CString str; if (m_date1==»» || m_number1==»» || m_number2==»») { MessageBox («Please fill all fields», «Info», MB_OK); return; } fOpen. SeekToEnd(); fOpen. WriteString («Number marsh old «+m_number1+»\n»); fOpen. WriteString («Number marsh new «+m_number2+»\n»); fOpen. WriteString («Date «+m_date1+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to zamena.txt», MB_OK); } void bre: OnSaveToPay() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\pay.txt», CFile:modeWrite); CString str; if (m_date2==»» || m_sum==»») { MessageBox («Please fill all fields», «Info», MB_OK); return; } fOpen. SeekToEnd(); fOpen. WriteString («Sum «+m_sum+»\n»); fOpen. WriteString («Date «+m_date2+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to pay.txt», MB_OK); } Elec class void elec: OnSaveToElectro() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\elec.txt», CFile:modeWrite); CString str; // m_combo. GetLBText (index, str1); // m_combo1. GetLBText (index1, str0); if (m_ammount==»» || m_sum==»») { MessageBox («Please fill all fields», «Info», MB_OK); return; } fOpen. SeekToEnd(); // fOpen. WriteString («FIO driver «+str1+»\n»); fOpen. WriteString («Ammount «+m_ammount+»\n»); fOpen. WriteString («Number «+m_sum+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to elec.txt», MB_OK); } MasKursDlg class // MasKursDlg.cpp: implementation file // #include «stdafx.h» #include «MasKurs.h» #include «MasKursDlg.h» #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg: public CDialog { public: CAboutDlg(); // Dialog Data // {{AFX_DATA(CAboutDlg) enum {IDD = IDD_ABOUTBOX}; // }} AFX_DATA // ClassWizard generated virtual function overrides // {{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support // }} AFX_VIRTUAL // Implementation protected: // {{AFX_MSG(CAboutDlg) // }} AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg:CAboutDlg(): CDialog (CAboutDlg:IDD) { // {{AFX_DATA_INIT(CAboutDlg) // }} AFX_DATA_INIT } void CAboutDlg: DoDataExchange (CDataExchange* pDX) { CDialog: DoDataExchange(pDX); // {{AFX_DATA_MAP(CAboutDlg) // }} AFX_DATA_MAP } BEGIN_MESSAGE_MAP (CAboutDlg, CDialog) // {{AFX_MSG_MAP(CAboutDlg) // No message handlers // }} AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMasKursDlg dialog CMasKursDlg:CMasKursDlg (CWnd* pParent /*=NULL*/) : CDialog (CMasKursDlg:IDD, pParent) { // {{AFX_DATA_INIT(CMasKursDlg) // NOTE: the ClassWizard will add member initialization here // }} AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon (IDR_MAINFRAME); } void CMasKursDlg: DoDataExchange (CDataExchange* pDX) { CDialog: DoDataExchange(pDX); // {{AFX_DATA_MAP(CMasKursDlg) DDX_Control (pDX, IDC_LIST1, m_list); // }} AFX_DATA_MAP } BEGIN_MESSAGE_MAP (CMasKursDlg, CDialog) // {{AFX_MSG_MAP(CMasKursDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_COMMAND (ID_FILE_ACTION, OnFileAction) ON_BN_CLICKED (IDC_BUTTON3, OnBrowse) ON_BN_CLICKED (IDC_BUTTON1, OnButton1) ON_BN_CLICKED (IDC_BUTTON2, OnButton2) ON_COMMAND (ID_FILE_EXIT, OnFileExit) ON_COMMAND (ID_ABOUT_SHOW, OnAboutShow) // }} AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMasKursDlg message handlers #include «login.h» BOOL CMasKursDlg: OnInitDialog() { CDialog: OnInitDialog(); // Add «About…» menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT (IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu!= NULL) { CString strAboutMenu; strAboutMenu. LoadString (IDS_ABOUTBOX); if (! strAboutMenu. IsEmpty()) { pSysMenu->AppendMenu (MF_SEPARATOR); pSysMenu->AppendMenu (MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } login dlg; dlg.m_login= «buhgalter»; if (dlg. DoModal()==IDOK) { if (dlg.m_pass== «111» && dlg.m_login== «buhgalter») { return TRUE; } else { MessageBox («Incorrect!!!»); EndDialog(0); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon (m_hIcon, TRUE); // Set big icon SetIcon (m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control } void CMasKursDlg: OnSysCommand (UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout. DoModal(); } else { CDialog: OnSysCommand (nID, lParam); } } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CMasKursDlg: OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage (WM_ICONERASEBKGND, (WPARAM) dc. GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics (SM_CXICON); int cyIcon = GetSystemMetrics (SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect. Width() – cxIcon + 1) / 2; int y = (rect. Height() – cyIcon + 1) / 2; // Draw the icon dc. DrawIcon (x, y, m_hIcon); } else { CDialog: OnPaint(); } } // The system calls this to obtain the cursor to display while the user drags // the minimized window. HCURSOR CMasKursDlg: OnQueryDragIcon() { return (HCURSOR) m_hIcon; } #include «add.h» void CMasKursDlg: OnFileAction() { add dlg; dlg. DoModal(); } void CMasKursDlg: OnBrowse() { CString str; CString str1; CFileDialog OpenFileDialog (true, «txt», NULL, OFN_FILEMUSTEXIST|OFN_HIDEREADONLY, «Text files (*.txt)|*.txt||»); if (OpenFileDialog. DoModal()==IDOK) { str=OpenFileDialog. GetPathName(); GetDlgItem (IDC_EDIT1)->SetWindowText(str); CStdioFile fOpen (str, CFile:modeRead); while (fOpen. ReadString(str)!=0) { m_list. AddString(str); } } } void CMasKursDlg: OnButton1 () { add dlg; dlg. DoModal(); } void CMasKursDlg: OnButton2 () { EndDialog(0); } void CMasKursDlg: OnFileExit() { EndDialog(0); } void CMasKursDlg: OnAboutShow() { CAboutDlg dlg; dlg. DoModal(); } Path class void path: OnShowWindow (BOOL bShow, UINT nStatus) { CDialog: OnShowWindow (bShow, nStatus); UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\driver.txt», CFile:modeRead); CStdioFile fOpen1 («d:\\MasKurs\\konductor.txt», CFile:modeRead); CString str; CString str1; while (fOpen. ReadString(str)!=0) { m_combo. AddString(str); } while (fOpen1. ReadString(str1)!=0) { m_combo1. AddString(str1); } // fOpen. SeekToEnd(); // fOpen. WriteString (m_date+»\n»); // fOpen. WriteString (m_number+»\n»); // fOpen. WriteString (m_marsh+»\n»); // fOpen. WriteString («*****"+»\n»); } CString str1; CString str2; void path: OnSaveToPath() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\path.txt», CFile:modeWrite); CString str; int index=m_combo. GetCurSel(); int index1=m_combo1. GetCurSel(); if (m_date==»» || m_number==»») { MessageBox («Please fill all fields», «Info», MB_OK); return; } m_combo. GetLBText (index, str1); m_combo1. GetLBText (index1, str2); fOpen. SeekToEnd(); fOpen. WriteString («FIO driver «+str1+»\n»); fOpen. WriteString («FIO konductor «+str2+»\n»); fOpen. WriteString («Date «+m_date+»\n»); fOpen. WriteString («Number «+m_number+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to path.txt», MB_OK); } void path: OnBeginMarshrute() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\marshrutebegin.txt», CFile:modeWrite); CString str; if (m_date1==»» || m_number1==»» || m_time==»») { MessageBox («Please fill all fields», «Info», MB_OK); return; } fOpen. SeekToEnd(); fOpen. WriteString («Date «+m_date1+»\n»); fOpen. WriteString («Number «+m_number1+»\n»); fOpen. WriteString («Time «+m_time+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to marshrutebegin.txt», MB_OK); } void path: OnSaveToMarshruteOkonchanie() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\marshruteokonchanie.txt», CFile:modeWrite); CString str; if (m_date2=»» || m_number2==»» || m_time1==»») { MessageBox («Please fill all fields», «Info», MB_OK); return; } fOpen. SeekToEnd(); fOpen. WriteString («Date «+m_date2+»\n»); fOpen. WriteString («Number «+m_number2+»\n»); fOpen. WriteString («Time «+m_time1+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to marshruteokonchanie.txt», MB_OK); } Uch class void uch: OnSaveToUchet() { UpdateData(TRUE); CStdioFile fOpen («d:\\MasKurs\\uchet.txt», CFile:modeWrite); CString str; fOpen. SeekToEnd(); fOpen. WriteString («Date «+m_date+»\n»); fOpen. WriteString («Number of tickets «+m_number+»\n»); fOpen. WriteString («Nomer «+m_marsh+»\n»); fOpen. WriteString («*****\n»); MessageBox («Saved to uchet.txt», MB_OK); } 2. Курсовая на тему Культура андеграунда как социальное явление 3. Курсовая на тему Інфляція 2 4. Реферат на тему Can We Hold Macbeth Fully Responsible For 5. Реферат на тему Fall Of The Roman Empire Essay Research 6. Доклад на тему Л гкая атлетика королева спорта 7. Реферат на тему Communication Essay Research Paper Ihave always made 8. Реферат на тему Конкуренция и монополия в рыночной системе 9. Реферат на тему Повреждение клетки 2 10. Курсовая на тему Усадьба Шахматово в поэтическом мире ААБлока |