Довідник футбольних клубів

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
О
Факультет:
Комп’ютерні науки
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Курсова робота
Предмет:
Алгоритмізація та програмування

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Ковельський промислово – економічний коледж Луцького НТУ Курсова робота з дисципліни «Алгоритмізація та програмування» та тему «Довідник футбольних клубів» Студента: 2 курсу 291 Д групи напряму підготовки Комп’ютерні науки спеціальності Обслуговування програмних систем та комплексів Шкіля Дмитра Андрійовича Керівник викладач Новосад О.Р. Національна шкала ________________ Кількість балів: _______Оцінка: ECTS _____ Члени комісії ________________ ___________________________ (підпис) (прізвище та ініціали) ________________ ___________________________ (підпис) (прізвище та ініціали) ________________ ___________________________ (підпис) (прізвище та ініціали Ковель 2017 Оглавление. Техническое задание…………………………………………………………………1 Объяснение пунктов меню. …………………………………………………………2 Концептуальная модель данных. …………………………………………………...3 Аттрибуты книги и студента. ……………………………………………………….4 Листинг файлов bibliotekaDlg.cpp : implementation file……………………………………….5 Bring_book.cpp : implementation file…………………………………………7 Change_book.cpp : implementation file……………………………………….6 Change_student.cpp : implementation file…………………………………….8 Delete_book.cpp : implementation file………………………………………...9 Delete_student.cpp : implementation file……………………………………...10 Enter_nomer_of_changed_book.cpp : implementation file…………………...11 Enter_nomer_of_changed_student.cpp : implementation file…………………12 Find_book_by_key.cpp : implementation file…………………………………13 Find_book_in_student.cpp : implementation file……………………………...14 Find_student_and_his_book.cpp : implementation file.. ……………………...15 Myclasses.h……………………………………………………………………..16 Global_variables.h………………………………………………………….…..17 Zapis.h………………………………………………………………………..…18 Card.h…………………………………………………………………………...19 Student.h……………………………………………………………………..….20 Mas_ini.h……………………………………………………………………..…21 Inout_card.h…………………………………………………………………..…22 Inout_student.h……………………………………………………………….....23 Rwfiles.h…………………………………………………………………..…….24 Spisok.h………………………………………………………………………....25 UML-диаграмма классов. …………………………………………………………..…26 Заключение...………………………………………………………………………..….27 Техническое задание. В данной курсовой работе предполагается разработать и реализовать программу, предназначенную для ведения учета книг в книжной библиотеки. При этом подразумевается, что будут доступны следующие функции: добавление книг в библиотеку, выдача книги, забирание книги у студента, добавление студента в список людей, которым доступны услуги библиотеки, удаление из списков книги или студента, изменение параметров книги или студента. А также поиск по ключу студента или книги. В самой программе должны присутствовать следующие элементы: Работа с файлами (база книг и студентов). Запись и считывание. Использование классов и наследования. Использование исключительных ситуаций и обработка их. Реализация классов в программе должна исходить из UML-диаграммы. Программа должна обладать интерфейсом приложения WINDOWS и написана на языке С++. Объяснение пунктов меню. Считать базу книг. Считывание из файла books.txt базы книг (из параметров). Считать базу студентов. Считывание из файла students.txt базы студентов (из параметров и номеров взятых ими книг). Найти книгу по ключу. Поиск книги по ключу (фамилии автора, названию, году издания, издательства, теме, номеру). Для поиска следует ввести искомое значение и нажать кнопку с ключом поиска. Найти студента по ключу. Поиск студента по ключу (фамилии, группе, году продления читательского, университету, взятым книгам, номеру). Для поиска следует ввести искомое значение и нажать кнопку с ключом поиска. Добавить новую книгу. Добавление новой книги в библиотеку. Требуется ввести все параметры книги и нажать OK. Добавить нового студента. Добавление нового студента в список студентов. Требуется ввести все параметры студента и нажать OK. Удалить книгу. Надо ввести номер удаляемой книги. Удалить студента. Надо ввести номер удаляемого студента. Записать в файл библиотеку. Запись текущего списка книг в файл books.txt. Записать в файл базу студентов. Запись текущего списка студентов в файл students.txt. Найти книгу у студентов. Надо ввести номер искомой книги. Нажать ПОИСК. Будет выведен список студентов, которым выдана данная книга. Найти студента и посмотреть его книги. Надо ввести номер искомого студента. Нажать ПОИСК. Будет выведен список книг, выданных студенту. Изменить параметры книги. Следует ввести новые параметры книги и нажать ОК. Изменить параметры студента. Следует ввести новые параметры студента и нажать ОК. Выдать книгу. Следует ввести номера книги и студента и нажать ОК. Взять книгу. Следует ввести номера книги и студента и нажать ОК. Выход. Выход из программы. Автоматически запоминается в файлы текущие базы студентов и книг. Концептуальная модель данных. ER-диаграмма. Аттрибуты книги и студента. Книга: Название, Фамилия, Имя, Отчество, Год издания, Издательство, Издание, Количество, Количество выданных, Номер Студент: Фамилия, Имя, Отчество, Год продления читательского билета, Группа, Университет, Номер Номер является уникальным – ключевой атрибут. // bibliotekaDlg.cpp : implementation file // #include "stdafx.h" #include "biblioteka.h" #include "bibliotekaDlg.h" #include "DlgProxy.h" // #include "MyClasses.h" #include "card.h" #include "mas_int.h" #include "spisok.h" #include "zapis.h" #include "global_variables.h" #include "student.h" #include <stdlib.h> #include <stdio.h> #include <string.h> #include <iostream.h> #include <conio.h> #include <malloc.h> #include <afx.h> #include "Afxwin.h" #include <afxcoll.h> #include <memory.h> // #include "Find_book_by_key.h" #include "Find_book_in_student.h" #include "Find_student_and_his_book.h" #include "New_book.h" #include "New_student.h" #include "Delete_book.h" #include "Delete_student.h" #include "Find_student_by_key.h" #include "Take_book.h" #include "Bring_book.h" #include "Change_book.h" #include "Change_student.h" #include "Enter_nomer_of_changed_book.h" #include "Enter_nomer_of_changed_student.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() ///////////////////////////////////////////////////////////////////////////// // CBibliotekaDlg dialog IMPLEMENT_DYNAMIC(CBibliotekaDlg, CDialog); CBibliotekaDlg::CBibliotekaDlg(CWnd* pParent /*=NULL*/) : CDialog(CBibliotekaDlg::IDD, pParent) { //{{AFX_DATA_INIT(CBibliotekaDlg) //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_pAutoProxy = NULL; oldMemState.Checkpoint(); } CBibliotekaDlg::~CBibliotekaDlg() { // If there is an automation proxy for this dialog, set // its back pointer to this dialog to NULL, so it knows // the dialog has been deleted. if (m_pAutoProxy != NULL) m_pAutoProxy->m_pDialog = NULL; } void CBibliotekaDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CBibliotekaDlg) DDX_Control(pDX, IDC_LIST1, m_books); DDX_Control(pDX, IDC_LIST2, m_students); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CBibliotekaDlg, CDialog) //{{AFX_MSG_MAP(CBibliotekaDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_WM_CLOSE() ON_BN_CLICKED(IDC_BUTTON3_find_book_by_key, OnBUTTON3findbookbykey) ON_BN_CLICKED(IDC_BUTTON1_read_book_base, OnBUTTON1readbookbase) ON_BN_CLICKED(IDC_BUTTON2_read_student_base, OnBUTTON2readstudentbase) ON_BN_CLICKED(IDC_BUTTON11_find_book_in_student, OnBUTTON11findbookinstudent) ON_BN_CLICKED(IDC_BUTTON12_find_student_with_book, OnBUTTON12findstudentwithbook) ON_BN_CLICKED(IDC_BUTTON4_new_book, OnBUTTON4newbook) ON_BN_CLICKED(IDC_BUTTON5_new_student, OnBUTTON5newstudent) ON_BN_CLICKED(IDC_BUTTON6_delete_book, OnBUTTON6deletebook) ON_BN_CLICKED(IDC_BUTTON7_delete_student, OnBUTTON7deletestudent) ON_BN_CLICKED(IDC_BUTTON10_find_student_by_key, OnBUTTON10findstudentbykey) ON_BN_CLICKED(IDC_BUTTON15_take_book, OnBUTTON15takebook) ON_BN_CLICKED(IDC_BUTTON16_bring_book, OnBUTTON16bringbook) ON_BN_CLICKED(IDC_BUTTON8_write_book_base, OnBUTTON8writebookbase) ON_BN_CLICKED(IDC_BUTTON9_write_student_base, OnBUTTON9writestudentbase) ON_BN_CLICKED(IDC_BUTTON13_change_book, OnBUTTON13changebook) ON_BN_CLICKED(IDC_BUTTON14_change_student, OnBUTTON14changestudent) ON_WM_SHOWWINDOW() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CBibliotekaDlg message handlers BOOL CBibliotekaDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. CAboutDlg dlgAbout; dlgAbout.DoModal(); // 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); } } // 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 CBibliotekaDlg::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 CBibliotekaDlg::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 CBibliotekaDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } // Automation servers should not exit when a user closes the UI // if a controller still holds on to one of its objects. These // message handlers make sure that if the proxy is still in use, // then the UI is hidden but the dialog remains around if it // is dismissed. void CBibliotekaDlg::ShutDown()//при выходе (запись в файлы и очистка памяти) { if (spis_book!=NULL) { lpFileName="books.txt"; hWrite=CreateFile( lpFileName, // pointer to name of the file GENERIC_WRITE, // access (read-write) mode 0, // share mode NULL, // pointer to security attributes CREATE_ALWAYS, // how to create FILE_ATTRIBUTE_NORMAL,// file attributes NULL // handle to file with attributes to copy ); if (hWrite!=INVALID_HANDLE_VALUE) { spis_book->infile('b', hWrite); CloseHandle( hWrite ); }; }; if (spis_stud!=NULL) { lpFileName="students.txt"; hWrite=CreateFile( lpFileName, // pointer to name of the file GENERIC_WRITE, // access (read-write) mode 0, // share mode NULL, // pointer to security attributes CREATE_ALWAYS, // how to create FILE_ATTRIBUTE_NORMAL,// file attributes NULL // handle to file with attributes to copy ); if (hWrite!=INVALID_HANDLE_VALUE) { spis_stud->infile('s', hWrite); CloseHandle( hWrite ); }; }; spis_stud=spis_stud->del_spisok(); spis_book=spis_book->del_spisok(); newMemState.Checkpoint(); if( diffMemState.Difference( oldMemState, newMemState ) ) { CAboutDlg dlgAbout; dlgAbout.DoModal(); _getch(); }; } void CBibliotekaDlg::OnClose() { ShutDown(); if (CanExit()) CDialog::OnClose(); } void CBibliotekaDlg::OnCancel() { ShutDown(); if (CanExit()) CDialog::OnCancel(); } BOOL CBibliotekaDlg::CanExit() { // If the proxy object is still around, then the automation // controller is still holding on to this application. Leave // the dialog around, but hide its UI. if (m_pAutoProxy != NULL) { ShowWindow(SW_HIDE); return FALSE; } return TRUE; } void CBibliotekaDlg::OnBUTTON1readbookbase()//чтение из файла базы книг { if (spis_book==NULL) { lpFileName="books.txt"; hWrite=CreateFile( lpFileName, // pointer to name of the file GENERIC_READ, // access (read-write) mode 0, // share mode NULL,// pointer to security attributes OPEN_EXISTING,// how to create FILE_ATTRIBUTE_NORMAL,// file attributes NULL// handle to file with attributes to copy ); if (hWrite!=INVALID_HANDLE_VALUE) { spis_book=spis_book->outfile('b',hWrite); CloseHandle( hWrite ); MessageBox("База книг успешно считана!"); } else {MessageBox("Не существует файла базы книг!");}; } else {MessageBox("В памяти уже есть считанная база книг!");}; this->OnShowWindow(true,NULL); } void CBibliotekaDlg::OnBUTTON2readstudentbase()//чтение из файла базы студентов { if (spis_stud==NULL) { lpFileName="students.txt"; hWrite=CreateFile( lpFileName, // pointer to name of the file GENERIC_READ, // access (read-write) mode 0, // share mode NULL,// pointer to security attributes OPEN_EXISTING,// how to create FILE_ATTRIBUTE_NORMAL,// file attributes NULL// handle to file with attributes to copy ); if (hWrite!=INVALID_HANDLE_VALUE) { spis_stud=spis_stud->outfile('s',hWrite); CloseHandle( hWrite ); MessageBox("База студентов успешно считана!"); } else {MessageBox("Не существует файла базы студентов!");}; } else {MessageBox("В памяти уже есть считанная база студентов!");}; this->OnShowWindow(true,NULL); } void CBibliotekaDlg::OnBUTTON11findbookinstudent()//поиск книги у студентов { //проверка, что подгружены обе базы if ((spis_stud!=NULL)&&(spis_book!=NULL)) { Find_book_in_student dlg; dlg.DoModal(); } else {MessageBox("Не существует базы книг или студентов!");}; } void CBibliotekaDlg::OnBUTTON3findbookbykey()//поиск студентов по ключу { //проверка, что база уже есть if (spis_book!=NULL) { Find_book_by_key dlg; dlg.DoModal(); } else {MessageBox("Не существует базы книг!");}; } void CBibliotekaDlg::OnBUTTON12findstudentwithbook()//поиск студентов по выданной книге { if ((spis_stud!=NULL)&&(spis_book!=NULL)) { Find_student_and_his_book dlg; dlg.DoModal(); } else {MessageBox("Не существует базы студентов или книг!");}; } void CBibliotekaDlg::OnBUTTON4newbook() //занесение новой книги в список { New_book dlg; dlg.DoModal(); this->OnShowWindow(true,NULL); } void CBibliotekaDlg::OnBUTTON5newstudent() //занесение нового студента в список { New_student dlg; dlg.DoModal(); this->OnShowWindow(true,NULL); } void CBibliotekaDlg::OnBUTTON6deletebook() //удаление книги из списка книг { if (spis_book!=NULL) { Delete_book dlg; dlg.DoModal(); } else {MessageBox("Не существует базы книг!");}; this->OnShowWindow(true,NULL); } void CBibliotekaDlg::OnBUTTON7deletestudent() //удаление студента из списка студентов { if (spis_stud!=NULL) { Delete_student dlg; dlg.DoModal(); } else {MessageBox("Не существует базы студентов!");}; this->OnShowWindow(true,NULL); } void CBibliotekaDlg::OnBUTTON10findstudentbykey()//поиск книги по ключу { if (spis_stud!=NULL) { Find_student_by_key dlg; dlg.DoModal(); } else {MessageBox("Не существует базы студентов!");}; } void CBibliotekaDlg::OnBUTTON15takebook()//взять книгу { if ((spis_stud!=NULL)&&(spis_book!=NULL)) { Take_book dlg; dlg.DoModal(); } else {MessageBox("Не существует базы книг или студентов!");}; this->OnShowWindow(true,NULL); } void CBibliotekaDlg::OnBUTTON16bringbook()//выдать книгу { if ((spis_stud!=NULL)&&(spis_book!=NULL)) { Bring_book dlg; dlg.DoModal(); } else {MessageBox("Не существует базы книг или студентов!");}; this->OnShowWindow(true,NULL); } void CBibliotekaDlg::OnBUTTON8writebookbase()//запись в файл базы книг { if (spis_book!=NULL) { lpFileName="books.txt"; hWrite=CreateFile( lpFileName, // pointer to name of the file GENERIC_WRITE, // access (read-write) mode 0, // share mode NULL, // pointer to security attributes CREATE_ALWAYS, // how to create FILE_ATTRIBUTE_NORMAL,// file attributes NULL // handle to file with attributes to copy ); if (hWrite!=INVALID_HANDLE_VALUE) { spis_book->infile('b', hWrite); CloseHandle( hWrite ); MessageBox("База книг успешно записана!"); } else {MessageBox("Невозможно записать базу книг!");}; } else {MessageBox("База книг не подгружена!!!");}; } void CBibliotekaDlg::OnBUTTON9writestudentbase() //запись в файл базы студентов { if (spis_stud!=NULL) { lpFileName="students.txt"; hWrite=CreateFile( lpFileName, // pointer to name of the file GENERIC_WRITE, // access (read-write) mode 0, // share mode NULL, // pointer to security attributes CREATE_ALWAYS, // how to create FILE_ATTRIBUTE_NORMAL,// file attributes NULL // handle to file with attributes to copy ); if (hWrite!=INVALID_HANDLE_VALUE) { spis_stud->infile('s', hWrite); CloseHandle( hWrite ); MessageBox("База студентов успешно записана!"); } else {MessageBox("Невозможно записать базу студентов!");}; } else {MessageBox("База студентов не подгружена!!!");}; } void CBibliotekaDlg::OnBUTTON13changebook() //изменение параметров книги { if (spis_book!=NULL) { //найти книгу Enter_nomer_of_changed_book dlg; dlg.DoModal(); if (kniga!=NULL) { CChange_book dlg; dlg.DoModal(); }; } else {MessageBox("Не существует базы книг!");}; this->OnShowWindow(true,NULL); } void CBibliotekaDlg::OnBUTTON14changestudent() //изменение параметров студента { if (spis_stud!=NULL) { Enter_nomer_of_changed_student dlg;//найти студента dlg.DoModal(); if (stud!=NULL) { CChange_student dlg; dlg.DoModal(); }; } else {MessageBox("Не существует базы студентов!");}; this->OnShowWindow(true,NULL); } void CBibliotekaDlg::OnShowWindow(BOOL bShow, UINT nStatus) //печать текущего списка студентов и книг { //CDialog::OnShowWindow(bShow, nStatus); m_students.ResetContent(); m_books.ResetContent(); m_books.SetHorizontalExtent(1000); m_students.SetHorizontalExtent(1000); if (spis_stud!=NULL) { CString s; spisok* temp=spis_stud; while (temp!=NULL) { // stud=((student*)(temp->spelt())); s="Номер билета: "+myconv(stud->outnomzap())+" Фамилия: " +stud->out_familia()+" Имя: "+stud->out_imia() +" Отчество: "+stud->out_otchestvo()+" Университет: " +stud->out_univer()+" Группа: "+myconv(stud->out_gruppa()) +" Продлен : "+myconv(stud->out_prodlen()); m_students.AddString(s); temp=temp->spnext(); }; } else { m_students.AddString("Нет базы со студентами"); }; if (spis_book!=NULL) { CString s; spisok* temp=spis_book; while (temp!=NULL) { kniga=((card*)(temp->spelt())); s="Номер книги: "+myconv(kniga->outnomzap())+" Название: " +kniga->out_nazvanie()+" Автор: "+kniga->out_familia() +" "+kniga->out_imia()+" "+kniga->out_otchestvo() +" Издательство: "+kniga->out_izdv()+" Издание: " +myconv(kniga->out_izdn())+" Тема: "+kniga->out_tema() +" Год: "+myconv(kniga->out_year())+" В наличии: " +myconv(kniga->out_kol()-kniga->out_vid()); m_books.AddString(s); temp=temp->spnext(); }; } else {m_books.AddString("Нет базы с книгами");} } // Bring_book.cpp : implementation file // #include "stdafx.h" #include "biblioteka.h" #include "Bring_book.h" #include "MyClasses.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // Bring_book dialog Bring_book::Bring_book(CWnd* pParent /*=NULL*/) : CDialog(Bring_book::IDD, pParent) { //{{AFX_DATA_INIT(Bring_book) m_nomer_of_book = _T(""); m_nomer_of_student = _T(""); //}}AFX_DATA_INIT } void Bring_book::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(Bring_book) DDX_Text(pDX, IDC_EDIT1_nomer_of_book, m_nomer_of_book); DDV_MaxChars(pDX, m_nomer_of_book, 6); DDX_Text(pDX, IDC_EDIT9_nomer_of_student, m_nomer_of
Антиботан аватар за замовчуванням

13.06.2018 21:06-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!