Автоматизация учета в автотранспортном предприятии
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. Система выдает сообщение: ВлНЕДОСТАТОЧНО ДАННЫХ ДЛЯ РАiЕТА!!!В»
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 sum: Byte pribul: Byte sumZP: Byte zp: Byte zp_account: Byte zp_driv: Byte zp_disp: Byte zp_cond: Byte data: Byte timeA: Byte timeB: Byte sum_sh: Byte FIO: String pribul: Byte sumTax: Byte sum_el: Byte time_now: Byte №marsh_old: Byte №marsh_new: Byte sum_pay: Byte all_prible: Byte |
Plist (№marsh, data, №Plist, FIO_driver, FIO_cond), Beginwork_day (data, colvo_t №1, №marsh), Endwork_day (data, colvo_t №1, colvo_t №2, sum, №marsh), Podschet_ZP (pribul, sumZP), Pay_ZP (zp, zp_account, zp_driv, zp_disp, zp_cond), Begin_marsh (data, №marsh, timeA), End_marsh (data, №marsh, timeB), Shtraff (sum_sh, data, FIO, №marsh), Podschet_Tax (pribul, sumTax), Pay_ZP (sumTax, data), Polomka (data, №marsh), El_oplata (data, sum_el), Otsyts_tr (FIO_driver, FIO_cond, data, time_now, №marsh), Zamena (№marsh_old, №marsh_new), Pay_break (sum_pay, data), Salary (all_prible, data) |
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);
}
Вместе с этим смотрят:
Автоматизацiя бухгалтерського облiку ТОВ "Хлiбороб"
Автоматизацiя облiку зносу (амортизацii) необоротних активiв
Автоматизация бухгалтерского учета на малых предприятиях