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);
... оплаты в них, и северных надбавок. [7]. С 1 января 2009 г. минимальный размер оплаты труда составляет 4330 руб. 2. Аналитическая часть 2.1 Экономическая характеристика исследуемого предприятия Юргинское государственное грузовое автотранспортное предприятие Кемеровской области, сокращенное наименование Юргинское ГГАТП КО, создано в соответствии с Распоряжением администрации Кемеровской области № ...
... работ по строительству больших и внеклассных мостов, возведению мостовых сооружений, путепроводов, транспортных развязок, тоннелей и фундаментов любой категории сложности.[6] Впервые проблема автоматизации работы автотранспортного предприятия была поставлена в конце 80-х годов, в духе того времени, когда необходимо было просчитывать различные формы хозрасчетного предприятия с целью повышения его ...
... . III. Практическое применение комплекса «1С:Предприятие 7.5» в сфере автоматизации учета основных средств. 3.1. Предварительная настройка комплекса Прежде чем начинать работу с открытой бухгалтерской программой ее необходимо настроить на специфику учета в конкретной организации, а именно: q настроить список ...
... средств. В бухгалтерской отчетности объекты основных средств должны будут отражаться по остаточной стоимости по строке 120 «Основные средства» бухгалтерского баланса (форма № 1). 2. ОсОбЕННОСТИ БУХГАЛТЕРСКОГО УЧЕТА ОСНОВНЫХ СРЕДСТВ В филиалЕ ГПНО «Нижегородпассажиравтотранс» 2.1 Характеристика Сокольского ПАП Сокольское пассажирское автотранспортное предприятие является филиалом ГПНО « ...
0 комментариев