1 / 1 / 3
Регистрация: 15.12.2017
Сообщений: 134
1

Ошибка в программе

15.05.2018, 16:50. Показов 601. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В запущенной программе ввожу, к примеру, 2 теста и 3 вопроса. Она выводит два теста и в каждом весь список вопросов. как это можно подправить, чтобы в каждом тесте выводило нужное количество вопросов?

Основное тело программы:
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
            questions.Add(QuestionManager.questionsThem1[0]);
            questions.Add(QuestionManager.questionsThem1[1]);
            questions.Add(QuestionManager.questionsThem1[2]);
            questions.Add(QuestionManager.questionsThem2[0]);
            questions.Add(QuestionManager.questionsThem2[1]);
            questions.Add(QuestionManager.questionsThem2[2]);
            questions.Add(QuestionManager.questionsThem3[0]);
            questions.Add(QuestionManager.questionsThem3[1]);
            questions.Add(QuestionManager.questionsThem3[2]);
 
            Console.Write("Kоличество тестов: ");
            int countTest = Convert.ToInt32(Console.ReadLine());
 
            Test[] tests = new Test[countTest];
 
            for (int i = 0; i < countTest; i++)
                tests[i] = new Test(new List<Question>());
 
            int counter = 0;
 
            Console.Write("Kоличество вопросов: ");
            int countQuestion = Convert.ToInt32(Console.ReadLine());
            int randomIndex = new Random().Next(3);
 
            while (counter < countQuestion)
            {
                for (int i = 0; i < countTest; i++)
                {
                    tests[i].AddQuestions(questions[randomIndex]);
                    counter++;
                    if (counter == countQuestion)
                        break;
                }
            }
 
            for (int count = 0; count < countTest; count++)
            {
                Console.Write($"Тест № {count + 1}:\n");
                for (int i = 0; i < questions.Count; i++)
                    Console.WriteLine(questions[i].ToString());
                Console.WriteLine();
                Console.WriteLine();
            }
 
            Console.ReadLine();
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
    public enum Themes
    {
        Комплексные_числа,
        Интегралы,
        Дифференциальные_уравнения_nго_порядка
    }
    public class Test
    {
        private List<Question> questions;
 
        public List<Question> Questions
        {
            get => questions;
            set => questions = new List<Question>();
        }
 
        public Test() => questions = null;
 
        public Test(List<Question> questions) => this.questions = questions;
 
        public void AddQuestions(Question question) => questions.Add(question);
    }
    public class Question
    {
        string questionText;
        Themes theme;
        string answers;
 
        public string QuestionText { get => questionText; set => questionText = value; }
        public Themes Theme { get => theme; set => theme = value; }
        public string Answers { get => answers; set => answers = value; }
 
        public Question(string questionText, Themes theme, string answers)
        {
            QuestionText = questionText;
            Theme = theme;
            Answers = answers;
        }
 
        public string ToString() => $"{theme}:\n{questionText}\nОтветы\n{answers}\n";
    }
    public class QuestionManager
    {
        public static List<Question> questionsThem1 = new List<Question> {
            (new Question("1", Themes.Комплексные_числа, "1 2 3 4")),
            (new Question("2", Themes.Комплексные_числа, "1 2 3 4")),
            (new Question("3", Themes.Комплексные_числа, "1 2 3 4"))};
        public static List<Question> questionsThem2 = new List<Question> {
            (new Question("1", Themes.Интегралы, "1 2 3 4")),
            (new Question("2", Themes.Интегралы, "1 2 3 4")),
            (new Question("3", Themes.Интегралы, "1 2 3 4"))};
        public static List<Question> questionsThem3 = new List<Question> {
            (new Question("1", Themes.Дифференциальные_уравнения_nго_порядка, "1 2 3 4")),
            (new Question("2", Themes.Дифференциальные_уравнения_nго_порядка, "1 2 3 4")),
            (new Question("3", Themes.Дифференциальные_уравнения_nго_порядка, "1 2 3 4"))};
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2018, 16:50
Ответы с готовыми решениями:

Ошибка в программе
При компиляции выдает такую ошибку 1.cpp(25) : error C2679: binary '&gt;&gt;' : no operator defined...

Ошибка в программе
complex.h #ifndef _COMPLEX_H_ #define _COMPLEX_H_ //класс комплексного числа class...

Ошибка в программе
Программа выдает ошибку: error C2664: month_day: невозможно преобразовать параметр из 'int' в 'int...

ошибка в программе
Всем привет!:) При компиляции программа выдает ошибку &quot;GraphEngine.exe&quot;: Загружено:...

4
Фрилансер
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
15.05.2018, 16:59 2
Цитата Сообщение от Lololoshk Посмотреть сообщение
В запущенной программе ввожу, к примеру, 2 теста и 3 вопроса. Она выводит два теста и в каждом весь список вопросов. как это можно подправить, чтобы в каждом тесте выводило нужное количество вопросов?
вы вводите общее количество вопросов или на каждый тест?
0
1 / 1 / 3
Регистрация: 15.12.2017
Сообщений: 134
15.05.2018, 17:02  [ТС] 3
На каждый тест
0
Фрилансер
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
15.05.2018, 17:33 4
Цитата Сообщение от Lololoshk Посмотреть сообщение
На каждый тест
тогда у вас в циклах какая то путаница

вроде так вам нужно

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while (counter < countQuestion)
{
    for (int i = 0; i < countTest; i++)
        tests[i].AddQuestions(questions[randomIndex]);
    counter++;
}
 
for (int i = 0; i < tests.Length; i++)
{
    Console.WriteLine($"Тест № {i + 1}");
    for (int j = 0; j < tests[i].Questions.Count; j++)
        Console.WriteLine(tests[i].Questions[j].QuestionText);
    Console.WriteLine();
}
0
1 / 1 / 3
Регистрация: 15.12.2017
Сообщений: 134
15.05.2018, 20:08  [ТС] 5
Как можно сделать так, чтобы из разных тем (они представлены в коде) добавлялись вопросы? К примеру, в первом тесте первый вопрос из первой темы, второй - из третьей, во втором тесте - первый из второй темы, второй - из первой
0
15.05.2018, 20:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2018, 20:08
Помогаю со студенческими работами здесь

Ошибка в программе
Program P1; type Individ = class FIO: string; Document: string; public constructor...

ошибка в программе
int alice(int n,int g,int x) { long int a,a1; a1=pow(g,x); a=a1%n; return(a); } ...

Ошибка в программе
Дали на задание программу с ошибкой.....где находится ошибка? var f:file of char; ...

Ошибка в программе
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; using namespace...

Ошибка в программе
Доброго времени суток. Помогите исправить ошибку в программе. Вот такое задание: Нужна...

Ошибка в программе
Господа, помогите пожалуйста. В 16й строке выдает ошибку, указал на скриншоте: #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru