|
Автоматизация учета в автотранспортном предприятииАвтоматизация учета в автотранспортном предприятии1. Изучение предметной области 1.1 Заинтересованные лица и их требования Заинтересованные лица: 1. Водитель 2. Бухгалтер 3. Депо 4. Диспетчер 5. Кондуктор Основные требования: 1. Безошибочный ввод данных. 2. Программа работает без сбоев. 3. Хороший и удобный интерфейс. 4. Быстрое и качественное обслуживание 1.2 Документ «Видение» Заинтересованные лица: Водитель: хочет осторожно и точно по расписанию производить маршрут. Бухгалтер: хочет безошибочно и вовремя производить оплату с рабочими, точно отсчитывать прибыль и деньги в амортизационный фонд, в фонд налогов, за электроэнергию. Вовремя фиксировать необходимые данные в соответствующих журналах. Депо: хочет, в случае необходимости производить ремонт - амортизацию транспорта. Кондуктор: хочет зафиксировать в начале каждого маршрута количество билетов, выданных диспетчером, а также подсчитать их количество в конце маршрута. Диспетчер: хочет правильно создавать путевые листы (расписание маршрутов), вовремя отправлять (принимать) транспорт на линию (с линии) маршрута. Следить за соответствием расписания и движения транспортов и регистрировать все отправления и прибытия транспортов в журнале регистрации. Место системы. Систему можно использовать на такой государственной организации, как городской электротранспорт. Пользователи системы. В качестве непосредственных пользователей системы могут выступать: водитель, диспетчер, бухгалтер и кондуктор городского электротранспорта. Задачи и свойства системы. 1. Обеспечивать удобный интерфейс пользователя. 2. Реагировать на ошибки ввода - вывода данных. 3. Искать данные в системе по запросу. 1.3 График выполнения курсовой работы
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 Ассоциации классов
Диаграмма концептуальных классов Атрибуты классов
2. Проектирование системы 2.1 Описание операций и диаграмм взаимодействия Прецедент: Распределение транспорта по маршрутам. Описание операции ОП 1:
Прецедент: Начисление заработной платы. Описание операции ОП 2:
Описание операции ОП 3:
Прецедент: Оплата за электроэнергию. Описание операции ОП 4:
2.2 Программные классы
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_FILEstatic char THIS_FILE[] = __FILE__;#endif ///////////////////////////////////////////////////////////////////////////// // add1 dialogadd1: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_MAPEND_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // add1 message handlersCString 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 classvoid 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 classvoid 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_FILEstatic char THIS_FILE[] = __FILE__;#endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App Aboutclass 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 // Implementationprotected: // {{AFX_MSG(CAboutDlg) // }} AFX_MSGDECLARE_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_MAPEND_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMasKursDlg dialogCMasKursDlg: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 Win32m_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_MAPEND_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 dialogSetIcon (m_hIcon, TRUE); // Set big iconSetIcon (m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization herereturn 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 paintingSendMessage (WM_ICONERASEBKGND, (WPARAM) dc. GetSafeHdc(), 0); // Center icon in client rectangleint 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 icondc. 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 classvoid 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 classvoid 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);} |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Рефераты бесплатно, реферат бесплатно, сочинения, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |