Форум программистов, компьютерный форум CyberForum.ru

Программа тестирования знаний - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить произведения элементов каждого столбца матрицы http://www.cyberforum.ru/cpp-beginners/thread1694762.html
Задать матрицу произвольным способом. 1 Вычислить произведения элементов каждого столбца. 2 Вывести в первый столбец элементы главной диагонали , во второй - боковой В каждой теме должна быть одна задача
C++ Заполнить элементы главной диагонали матрицы нулями остальные единицами Дала целочисленная матрица nxn. Заполнить элементы: главной диагонали 0, остальные 1. http://www.cyberforum.ru/cpp-beginners/thread1694744.html
Неправильное выполнение программы C++
Задание: В одномерном массиве, состоящем из n вещественных элементов, вычислить: • номер минимального элемента массива; • сумму элементов массива, расположенных между первым и вторым отрицательными элементами; • преобразовать массив таким образом, чтобы в первой его половине располагались элементы, модуль которых не превышает 1, потом все остальные. Каждый пункт задания оформить в виде...
Функция добавления одномерного массива после всех строк начинающихся на отрицательное значение C++
В двумерном массиве: Написать функцию добавления заданного одномерного массива после всех строк, начинающихся на отрицательное значение.
C++ В чем разница между Double и Float? http://www.cyberforum.ru/cpp-beginners/thread1694685.html
Хмм? :(
C++ Компилятор не видит реализацию методов begin() и end() При попытке вызова основанного на диапазоне выражения for (C++) вылезает ошибка С3312 error C3312: не найдена вызываемая функция "begin" для типа "Graph<Vertex> *" error C3312: не найдена вызываемая функция "end" для типа "Graph<Vertex> *" void search(Graph <Vertex> *gr) { //for (Iterator <Vertex> it = gr->begin(); it != gr->end(); it++) - так всё работает for (auto it : gr) // - а... подробнее

Показать сообщение отдельно
SolidCoder
 Аватар для SolidCoder
19 / 19 / 8
Регистрация: 21.03.2016
Сообщений: 60
Завершенные тесты: 2
25.03.2016, 23:44     Программа тестирования знаний
Набросок только для записи вопросов.

Формат вопросов и ответов в базе данных:
{ВОПРОС}-{Номер верного варианта}:{Первый вариант}+{Второй вариант}!{третий вариант}*{четвертый вариант};
Парсинг сам реализовать сможешь?

На винде не получилось поставить локаль для записи в файл, хз, мб кто решит, в линуксе все норм пашет, или замени интерфейс на англ

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>
#include <string>
#include <fstream>
#include <time.h>
#include <locale.h>
 
using namespace std;
 
 
int main()
{
    
    setlocale(LC_ALL, "Russian");
    locale mylocale("Russian");
    string DataBase;
    cout << "Введите файл базы данных: ";
    getline(cin, DataBase);
    cout << "1 - чтение\n0 - запись\n[0]/[1]> ";
    bool bRead;
    (cin >> bRead).get();
    if (bRead)
    {
        ifstream fin(DataBase);
        fin.imbue(mylocale);
        
        string line;
        int total;
        if (fin.is_open())
        {
            srand(time(NULL));
            (fin >> total).get();
            
            for (int i = 0; i < rand() % total; i++)
                getline(fin, line);
 
            // тут идет парсинг строки i-го вопроса
 
            fin.close();
        }
        else cout << "Ошибка открытия файла" << endl;
        
    }
    else
    {
        ofstream fout(DataBase);
        fout.imbue(mylocale);
 
        if (fout.is_open())
        {
            int total;
            cout << "Общее количество вопросов: ";
            (cin >> total).get();
            fout << total << endl;
 
            string question;
            string answers[4];
            char correct;
            for (int i = 0; i < total; i++)
            {
                cout << "Вопрос №" << i + 1 << ": ";
                getline(cin, question);
 
                for (int j = 0; j < 4; j++)
                {
                    cout << "\tВариант ответа №" << j + 1 <<": ";
                    getline(cin, answers[j]);
                }
                cout << "Верный вариант ответа> ";
                (cin >> correct).get();
                fout << "{" << question << "}-" << "{" << correct << "}:"
                    << "{" << answers[0] << "}+"
                    << "{" << answers[1] << "}!"
                    << "{" << answers[2] << "}*"
                    << "{" << answers[3] << "};"
                    << endl; // записали вопрос в формате
            }
 
            fout.close();
        } 
        else cout << "Ошибка открытия файла" << endl;
    }
 
    cin.get();
    return 0;
}
 
Текущее время: 12:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru