int main() { setlocale(LC_ALL, "rus"); Person * person; person = new Rabochi; Rabochi Mihail; Mihail.setname("Михаил Юрьевич"); Mihail.getname(); Mihail.setzarplata(1800000); Mihail.getzarplata(); cout << endl; Mihail.add(); Person::show(); cout << endl; Student Mihaili; Mihaili.setname("Денис Юрьевич"); Mihaili.getname(); Mihaili.setkof(5); Mihaili.getkof(); cout << endl; Mihaili.add(); Person::show(); cout << endl; Student* f5 = new Student(&Mihail); f5->setname("Дориан Мальцев"); f5->getname(); f5->Infa->setzarplata(20000); f5->Infa->getzarplata(); f5->setkof(6); f5->getkof(); cout << endl; Tokar e; e.setname("Петров Сергей"); e.getname(); e.setzarplata(300000); e.getzarplata(); e.setstaz(2); e.getstaz(); cout << endl; e.add(); Person::show(); cout << endl; Inzhener d; d.setname("Гурин Владимир Иванович"); d.getname(); d.setzarplata(2300000); d.getzarplata(); d.setstaz(3); d.getstaz(); cout << endl; d.add(); Person::show(); cout << endl; Sluzachi f; f.setname("Ганс"); f.getname(); f.setzarplata(1500000); f.getzarplata(); f.setstaz(4); f.getstaz(); cout << endl; f.add(); Person::show(); cout << endl; return 0; }
int main() { freopen("errors", "w", stderr); srand(time(NULL)); Configuration::configuration->Instance("questions1.pb", "answer1.pb", "students1.pb", "groups1.pb", "results1.pb"); //1. Возможность изменения конфигурационного файла. Configuration::configuration->Instance("questions.pb", "answers.pb", "students.pb", "groups.pb", "results.pb"); //2. Возможность добавления вопроса. Question q; cout << "-------------------------------------Ввод вопроса: -----------------------------------------------" << endl; cin >> q; //Перегрузка оператора ввода. q.add(); //Использование метода add для добавления в файл. q.add("TCP/IP", "How many levels does TCP/IP have? "); //Добавление в файл методом add Question q1("RIP", "What metric does protocol RIP have?"); q1.add(); getchar();getchar(); //3. Печать всех объектов cout << "-----------------------------------Печать всех вопросов: -----------------------------------------" << endl; q.print_all(); getchar();getchar(); //4. Получение и печать объекта cout << "----------------------------------Получение вопроса по ID: --------------------------------------" << endl; q.get(1); cout << "---------------------------------Печать информации об объекте: ----------------------------------" << endl; q.print(); //Печать для просмотра информации об объекте, как объекте БД getchar();getchar(); cout << "---------------------------------Печать в пользовательском формате: -----------------------------" << endl; cout << q; //Печать в пользовательском формате //5. Обновление информации об объекте getchar();getchar(); cout << "--------------------------------Обновление информации о вопросе: -------------------------------" << endl; q.update("Routing Protocols", "What protocols in this list are routing?"); q.print_all(); getchar();getchar(); //Аналогичные действия могут быть произведены со всеми объектами, имеющими возможность работы с файлами cout << "--------------------------------Добавление ответов: ---------------------------------------------" << endl; Answer a; //Добавление ответа на 0 вопрос a.add("Only one", false, 0); a.add("Two", true, 0); //Добавим ответы на другие вопросы a.add("seconds per transmission 100 Mbit of information", true, 2); a.add("length of cable between stations", false, 2); a.add("there is no metric in RIP", false, 2); Answer a1; //Вопрос с множественными ответами a1.set_contents("RIP"); a1.set_correct(true); a1.set_q_id(3); //После обновления вопрос стал последним, значит его ID = 3 a1.add(); a1.add("ICMP", false, 3); a1.add("OSPF", true, 3); //Выведем все ответы. cout << "-------------------------------Вывод всех ответов в режиме дебага -------------------------------" << endl; a.print_all(); getchar();getchar(); //Также существует возможность получить вектор ответов на вопрос. cout << "-------------------------------Вывод вектора ответов на вопрос: ---------------------------------" << endl; vector <Answer> answers; answers = q.get_answers(); cout << "Ответы на вопрос Routing Protocol: " << endl; for (int i = 0; i < answers.size(); i++) { cout << answers[i]; cout << endl; } getchar();getchar(); cout << "-----------------------------------Создание группы и студентов: -----------------------------" << endl; //Теперь создадим группы и студентов. Group g("IU5-52"); g.add(); Student st; st.add("Myalkin", 3, g.getID()); st.add("Abashin", 3, g.getID()); st.add("Chernobrovkin", 3, g.getID()); //Теперь создадим тест. cout << "------------------------------------Создание теста: -----------------------------------------" << endl; Test t; t.get_questions(); //Тест выступает в роли хранилища всех вопросов. t.set_count(3); //Установка количества вопросов в каждом варианте. t.print(); getchar();getchar(); cout << "-----------------------------------Тестирование первого студента: -------------------------------------------" << endl; //Теперь нужно собрать варианты по тесту. Variant v1; v1 = get_variant(t); //Получение варианта по рандомным вопросам. st.get("Abashin"); v1.TestMePlease(st); getchar();getchar(); cout << "----------------------------------Тестирование второго студента: -----------------------------------------" << endl; Variant v2 = get_variant(t); st.get("Myalkin"); v2.TestMePlease(st); getchar();getchar(); //Вывод результатов cout << "---------------------------------Вывод результатов: ---------------------------------------" << endl; cout << "---------------------------------Результаты по группе: -------------------------------------" << endl; g.get("IU5-52"); group_result(g); getchar();getchar(); cout << "---------------------------------Все результаты: -------------------------------------------" << endl; all_results(); getchar();getchar(); cout << "---------------------------------Результаты студента: -------------------------------------------" << endl; st.get("Abashin"); student_result(st); getchar();getchar(); return 0; }