Автоматизация учета в автотранспортном предприятии

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в


Автоматизация бухгалтерского учета на малых предприятиях


Амортизацiя основних засобiв


Амортизацiя основних засобiв