Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/209: Рейтинг темы: голосов - 209, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 09.11.2014
Сообщений: 12

Как создать программу тестирования

09.11.2014, 19:02. Показов 41896. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые программисты! Нужна ваша помощь!
Задали сделать психологический тест в Microsoft Visual C# 2010 Express
Ничего сложного, самый банальный
в чём суть:
на форме должен быть "вопрос" и два варианта ответа(а, б)
при нажатие на один из вариантов, считывается следующие 3 строки из файла(вопрос и 2 варианта ответа(а,б) путём " FR.ReadLine() "
Выбранный вариант записывается в переменную
и после прохождения подсчитываются ответы и выдаётся результат
вопросов в общем 25
сам тест:
" http://www.syntone.ru/library/... /4609.html "
Думаю для Вас это вовсе не сложно, а я уже 2-ой день голову ломаю.
Прошу, помогите кто-чем сможет.
Заранее спасибо)
Миниатюры
Как создать программу тестирования  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2014, 19:02
Ответы с готовыми решениями:

Как написать программу для тестирования?
Как написать программу для тестирования. в программе должно быть 20 вопросов по 4 варианта ответа. Я новичок в программировании ...

Как написать программу для тестирования знаний
Система тестирования знаний. Дан текстовый файл с вопросами и верными ответами. Ввести Ф.И.О тестируемого(или выбрать из готового...

Создать программу тестирования, как организовать логику
Уважаемые ФОРУМЧАНЕ! Нужна помощь. Работаю в ВУЗе. Надо сделать программу по тестированию знаний. Купить, как обычно в бюджетной...

35
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
13.11.2014, 23:11
Лучший ответ Сообщение было отмечено kitchen как решение

Решение

Студворк — интернет-сервис помощи студентам
И вот чистый проект с добавкой по выводу результатов.
Вложения
Тип файла: rar Архив WinRAR.rar (483.2 Кб, 166 просмотров)
1
1 / 1 / 0
Регистрация: 09.11.2014
Сообщений: 12
13.11.2014, 23:17  [ТС]
insite2012, теперь получилось
странно, а с чем это мажет быть связано?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
13.11.2014, 23:22
Цитата Сообщение от kitchen Посмотреть сообщение
с чем это может быть связано?
Да кто его знает))) Пути господни неисповедимы)))
Пользуйтесь на здоровье. Сейчас все как надо? Результаты выводит корректно?
1
1 / 1 / 0
Регистрация: 09.11.2014
Сообщений: 12
13.11.2014, 23:26  [ТС]
insite2012,
да
всё как надо
в точности, как я хотел
Огромное спасибо Вам за помощь!
Прям выручили)
0
 Аватар для slenderface
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
14.11.2014, 15:25
kitchen, вопрос решен я вижу? мне стоит доделывать Ваш проект?
0
1 / 1 / 0
Регистрация: 09.11.2014
Сообщений: 12
17.11.2014, 01:13  [ТС]
slenderface, нет
уже всё решилось
мне помогли
но, всё равно спасибо Вам)
0
 Аватар для slenderface
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
17.11.2014, 20:40
kitchen, к сожалению не за что) рад был Вам помочь)
0
0 / 0 / 0
Регистрация: 05.11.2014
Сообщений: 7
25.11.2014, 22:58
insite2012, Здравствуйте, не хочется создавать новую тему и засорять форум но у меня аналогичная проблема (но я больше по webразработке а проект нужен на C#) поэтому не могли бы вы все таки оставить готовый проект без .exe файла а я дальше под свои вопросы сам допилю думаю и exeшник вроде сумею создать. Заранее спасибо)))
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
26.11.2014, 09:04
Цитата Сообщение от Tahhep Посмотреть сообщение
не могли бы вы все таки оставить готовый проект без .exe файла
Tahhep, в 21 посте и прикреплен готовый проект. К сожалению, web-разработкой я не занимаюсь, поэтому в этом направлении вряд ли смогу чем-то помочь...
0
 Аватар для Kombova
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 3
17.03.2015, 22:07
я нулевой в шарпах, но сейчас пытаюсь разобраться, поэтому от меня тупой вопрос: где здесь лежат вопросы? хочу их попробовать изменить
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
18.03.2015, 07:29
Цитата Сообщение от Kombova Посмотреть сообщение
где здесь лежат вопросы?
В базе данных.
0
0 / 0 / 0
Регистрация: 07.01.2016
Сообщений: 49
09.01.2016, 20:39
insite2012, а в каком приложении вы делали базу данных?)
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.01.2016, 20:43
Цитата Сообщение от Zvuk9 Посмотреть сообщение
в каком приложении вы делали базу данных?)
Я не помню какая там БД. Если аксовская - то в MS Office, если SQLite - то в SQLiteBrowser-е
0
0 / 0 / 0
Регистрация: 07.01.2016
Сообщений: 49
28.01.2016, 22:01
insite2012, Спасибо за то,что подсказали программу. Я брал ваш пример для создания своей БД с вопросами,разобрался,но столкнулся с такой вот проблемой. Они у меня загружаются в Label,но вопросы из БД повторяются и идут не по порядку.В чем может быть проблема?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
28.01.2016, 22:21
Цитата Сообщение от Zvuk9 Посмотреть сообщение
В чем может быть проблема?
Надо смотреть код выборки вопросов из БД, ятд.
0
0 / 0 / 0
Регистрация: 07.01.2016
Сообщений: 49
29.01.2016, 01:22
insite2012, Подключение БД
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.IO;
using System.Data;
using System.Data.SQLite;
 
namespace PsychoTest_Project
{
    class DataLoader1{
     private DataTable dt;
     string basePath;
     public DataLoader1() {
     basePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Base1.dblite");
     if (!File.Exists(basePath)) {
         throw new FileNotFoundException("File of DataBase not found!");
     }
     dt = new DataTable("Test");
     }
     public DataTable GetTestData() {
     string connectionStr = @"data source=" + basePath;
     using (SQLiteDataAdapter dAdapter = new SQLiteDataAdapter("SELECT * FROM Test", connectionStr)){
        dAdapter.Fill(dt);
     }
     return dt;
     }
    }
}
Основная форма:
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Threading;
using System.Threading.Tasks;
 
 
 
namespace PsychoTest_Project
{
    public partial class Form6 : Form{
      DataTable testTable = null;
        volatile string answer = null;
        EventWaitHandle wh = new AutoResetEvent(false);
        public event EventHandler<TestEventArgss> testResultEvent;
 
        string item;
        public Form6(){
            InitializeComponent();
            rbNo.Checked = false;
            rbYes.Checked = false;
            this.Load += new EventHandler(Form6_Load);
            btnStartTest.Click += new EventHandler(btnStartTest_Click);
            
            testResultEvent += new EventHandler<TestEventArgss>(Form6_testResultEvent);
        }
        void Form6_testResultEvent(object sender, TestEventArgss e)
        {
 
            this.Invoke((Action)(() =>
            {
                progressBar1.Value = 0;
                btnStartTest.Enabled = true;
                lblQuestion.Text = "";
                rbNo.Click -= rbYesNo_Click;
                rbYes.Click -= rbYesNo_Click;
            }));
            string info = GetTestResults(e.testResult);
        }
        //rbClicks
        void rbYesNo_Click(object sender, EventArgs e) {
            string ans = ((RadioButton)sender).Text;
            if (ans == "Да") {
                answer = "answer_Yes";
            }
            else {
                answer = "answer_No";
            }
            wh.Set();
        }
        void btnStartTest_Click(object sender, EventArgs e) {
            progressBar1.Maximum = testTable.Rows.Count;
            progressBar1.Minimum = 0;
            progressBar1.Step = 1;
            Task.Factory.StartNew(() => { Test(); });
            btnStartTest.Enabled = false;
            rbYes.Click += new EventHandler(rbYesNo_Click);
            rbNo.Click += new EventHandler(rbYesNo_Click);
        }
        void Form6_Load(object sender, EventArgs e) {
            try {
                DataLoader1 loader = new DataLoader1();
                testTable = loader.GetTestData();
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message, "Файл отсутствует");
                this.Close();
                return;
            }
            this.Text = "Тест"+ " 'Тип характера'";
        }
        void Test() {
            int index = 0;
            int result = 0;
    
            while (index < testTable.Rows.Count) {
                lblQuestion.Invoke((Action)(() => {
                    lblQuestion.Text = (string)testTable.Rows[index]["Question1"];
                }));
                progressBar1.Invoke((Action)(() => { progressBar1.PerformStep(); }));
                wh.WaitOne();
                result += (int)testTable.Rows[index][answer];
                index++;
            }
            if (testResultEvent != null) {
                TestEventArgss args = new TestEventArgss(result);
                testResultEvent(this, args);
            }
        }
        string GetTestResults(int result)
        {
            if (result >= 0 && result <= 19)
            {
                MessageBox.Show("Первый тип характера!" + "\r\n" +
                                "Вы не любите компании,предпочитаете тишину,прогулки на природе." + "\r\n" +
                                "Общение с друзьями в домашней,непринужденной обстановке вас радует больше,чем вечеа,проведенные в шумных барах,кафе,казино или на дискотеках." + "\r\n" +
                                "Возможно,некоторые знакомые считаю вас скучноватым человеком.", "Миротворец(Пассивный).", MessageBoxButtons.OK, MessageBoxIcon.Information);
                File.AppendAllText("Result.dat", "Миротворец!");
                File.AppendAllText(Application.StartupPath + "\\Result.dat", "\r\n" + item, Encoding.Default);
            }
            else if (result >= 20 && result <= 25)
            {
                MessageBox.Show("Второй тип характера!" + "\r\n" +
                                "Вы достаточно легкомысленный человек,легко сходитесь с людьми." + "\r\n" +
                                "Но вы паддаетесь слишком частой смене настроения: то грустного,то чересчур веселого." + "\r\n" +
                                "И потому многие просто не знают,как вести себя с вами в той или иной ситуации.", "Профессионал(Надежный).", MessageBoxButtons.OK, MessageBoxIcon.Information);
                File.AppendAllText("Result.dat", "Профессионал!");
                File.AppendAllText(Application.StartupPath + "\\Result.dat", "\r\n" + item, Encoding.Default);
            }
            else if (result > 25)
            {
                MessageBox.Show("Третий тип!" + "\r\n" +
                                "Ваши знакомые находят,что в компании вы незаменимы." + "\r\n" +
                                "У вас есть чувство юмора,вы способствуете созданию хорошего настроения у других." + "\r\n" +
                                "Можете без конца смешить,рассказывать интересные истории." + "\r\n" +
                                "И потому к вам тянутся люди(причем не только противоположного пола).", "Эпикуреец(Лидер).", MessageBoxButtons.OK, MessageBoxIcon.Information);
                File.AppendAllText("Result.dat", "Эпикуреец!");
                File.AppendAllText(Application.StartupPath + "\\Result.dat", "\r\n" + item, Encoding.Default);
            }
            return null;
        }
 
        private void Form6_Load_1(object sender, EventArgs e)
        {
            BackColor = Color.Lavender;
        }
 
     private void btnStartTest_Click_1(object sender, EventArgs e)
        {
 
        }
    }
    public class TestEventArgss : EventArgs {
        public readonly int testResult;
        public TestEventArgss(int res) {
            testResult = res;
        }
    }
}
Выводится результат,но вопросы из БД выводятся,например 1,2,3,4,5,6,7,8,а потом 2,9,3,10,11
В БД 11 вопросов,как высвечивается 11 вопрос и на него отвечаешь,то высвечивается сообщение об результате.А так вопросы randomno выдаются,могут и повторяться по 2 раза.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2016, 01:22

Как создать C# код для тестирования, не закрывая текущего проекта
Открыт большой проект в VS2010. Хочется протестировать (debug + запуск) небольшой сторонний консольный код не закрывая этого проекта. ...

Как написать программу тестирования, где вопросы и ответы хранятся в MSSQL SERVER2008R2
Как написать про-му тестирования на ASP.NET (C#) MSSQL SERVER2008R2-база данных с вопросами и ответами,?

Как создать программу тестирования
Доброго времени суток, вопрос в том как сделать программы чтобы я мог создать тест, а потом и пройти его!

Как создать программу тестирования, чтобы после ответа на все вопросы программа выводила результат?
Всем привет. Как создать программу тестирования, чтобы после ответа на все вопросы программа выводила результат?

Создать программу тестирования по программированию
Создайте программу тестирования по программированию по форматам данных (в тесте должно содержаться не менее 10 вопросов, должна...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru