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

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

1. Изучение предметной области


1.1 Заинтересованные лица и их требования


Заинтересованные лица:


1. Водитель


2. Бухгалтер


3. Депо


4. Диспетчер


5. Кондуктор


Основные требования:


1. Безошибочный ввод данных.


2. Программа работает без сбоев.


3. Хороший и удобный интерфейс.


4. Быстрое и качественное обслуживание


1.2 Документ «Видение»


Заинтересованные лица:


Водитель:
хочет осторожно и точно по расписанию производить маршрут.


Бухгалтер:
хочет безошибочно и вовремя производить оплату с рабочими, точно отсчитывать прибыль и деньги в амортизационный фонд, в фонд налогов, за электроэнергию. Вовремя фиксировать необходимые данные в соответствующих журналах.


Депо:
хочет, в случае необходимости производить ремонт – амортизацию транспорта.


Кондуктор:
хочет зафиксировать в начале каждого маршрута количество билетов, выданных диспетчером, а также подсчитать их количество в конце маршрута.


Диспетчер:
хочет правильно создавать путевые листы (расписание маршрутов), вовремя отправлять (принимать) транспорт на линию (с линии) маршрута. Следить за соответствием расписания и движения транспортов и регистрировать все отправления и прибытия транспортов в журнале регистрации.


Место системы.


Систему можно использовать на такой государственной организации, как городской электротранспорт.


Пользователи системы.


В качестве непосредственных пользователей системы могут выступать: водитель, диспетчер, бухгалтер и кондуктор городского электротранспорта.


Задачи и свойства системы.


1. Обеспечивать удобный интерфейс пользователя.


2. Реагировать на ошибки ввода – вывода данных.


3. Искать данные в системе по запросу.


1.3 График выполнения курсовой работы























Период выполнения
Выполняемый этап курсовой работы
2 неделя Изучение предметной области.
34 неделя Выполнение анализа системы.
59 неделя Окончание проектирования.
1013 неделя Написания программного кода.
1314 неделя Предоставление окончательной программы.
1415 неделя Защита курсовой работы.

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


Журнал регистрации транспорта – Journaltransport 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.



В результате, получив список, необходимых действий.



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



Сделаем проверку журнала, в котором должен был сохраниться наш 1-й путевой лист.



Далее выбираем учет билетов (Uchet). Здесь аналогично вводим необходимые данные. Также сохраняем в журнале.



Проверяем журнал.



Далее выбираем операции с заработной платой и налогом. Введя необходимые данные, сохраняем в журнале.



Проверяем выданное и оставшееся количество билетов.



Начисляем заработную плату.



Проверяем начисление зарплаты.



Выбрав пункт Поломка (Polomka), мы видим следующее окно, в котором вводим необходимые данные.



Проверяем в журнале.



Если необходимо произвести отчет, то нажав на главной панели кнопочку Browse, мы видим следующее окно.



В котором выбрав необходимый нам журнал или файл, видим

его в окне на главной панели.



И дополнительная информация об авторе этого замечательного проекта может быть найдена по адресу – About -> Show.



Заключение

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


Список литературы


1. Майкл Дж. Янг Полное руководство по VisualC++ 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:MasKursdriver.txt», CFile:modeRead);


CStdioFile fOpen1 («d:MasKurskonductor.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:MasKursuchetzarplatnalogi.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:MasKurszarplata.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:MasKursnalog.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:MasKursshtraf.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:MasKursbre.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:MasKurszamena.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:MasKurspay.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:MasKurselec.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:MasKursdriver.txt», CFile:modeRead);


CStdioFile fOpen1 («d:MasKurskonductor.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:MasKurspath.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:MasKursmarshrutebegin.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:MasKursmarshruteokonchanie.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:MasKursuchet.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);


}

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

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

Слов:4203
Символов:48182
Размер:94.11 Кб.