Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2012, 23:13   #1
Slavik3
Пользователь
 
Регистрация: 30.09.2012
Сообщений: 18
По умолчанию вопрос по Visual C#

Пытаюсь написать тестовую программу
Код:
private void button1_Click(object sender, EventArgs e)
        {
            int vern=0;
            if (checkBox1.Checked)
            {
                vern++;
            }
        }
Как после вывода одного вопроса и нажатия на кнопку вывести следующий на том же месте?
Slavik3 вне форума Ответить с цитированием
Старый 30.10.2012, 23:18   #2
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Где у вас вопросы выводятся? Тот код что вы указали ни о чем не говорит, тут зачем то локальная переменная увеличивается при нажатии на кнопку при условии включенного чекбокса. Код не имеет смысла.
Вадим Буренков вне форума Ответить с цитированием
Старый 30.10.2012, 23:39   #3
Slavik3
Пользователь
 
Регистрация: 30.09.2012
Сообщений: 18
По умолчанию

Вопрос можно указать в groupBox или в label. Увеличивается на 1 чтобы посчитать в конце количество правильных ответов. Вопрос в другом: Как после вывода одного вопроса и нажатия на кнопку вывести следующий на том же месте?
Slavik3 вне форума Ответить с цитированием
Старый 31.10.2012, 12:13   #4
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Увеличивается на 1 чтобы посчитать в конце количество правильных ответов.
В данном случае у вас локальная переменная, значение сбрасывается каждый раз в 0 при нажатии на кнопку. Либо объявите ее глобальной, либо статичной (static int vern = 0).
Цитата:
Как после вывода одного вопроса и нажатия на кнопку вывести следующий на том же месте?
Код:
label1->Text = "Новый вопрос";
Заведите массив из вопросов и переменную с номером вопроса. Каждый раз при нажатии кнопки увеличиваете номер и в label записываете новый вопрос:
Код:
n++;
label1.Text = qArray[n];

Последний раз редактировалось Вадим Буренков; 31.10.2012 в 14:00.
Вадим Буренков вне форума Ответить с цитированием
Старый 31.10.2012, 22:41   #5
Slavik3
Пользователь
 
Регистрация: 30.09.2012
Сообщений: 18
По умолчанию

Спасибо, разобрался, вот что получилось:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();      
        }
        public string GetCorrect { get; set; }
        int n = 0, m = 0;//номер вопроса      
        int vern=0;//количество верных ответов
        private void button1_Click(object sender, EventArgs e)
        {
            string[] qArray = new string[] { "1+2", "2+2", "3+3", "4+1"};//вопросы выводимые в лэйбле
            string[] otv = new string[] { "2/5", "3/5", "4/5", "5/5"};//
            label1.Text = qArray[n];            
            groupBox1.Text = otv[n]; 
            string[] otvet1 = new string[] { "3", "4", "6", "5"};
            string[] otvet2 = new string[] { "один", "два", "три", "четыре" };
            string[] otvet3 = new string[] { "один", "два", "три", "четыре" };
            checkBox1.Text = otvet1[n];
            checkBox2.Text = otvet2[n];
            checkBox3.Text = otvet3[n];
            if(n<3)//иначе ошыбка выполнения
            n++;
            m++;
            if (checkBox1.Checked)
            {
                vern++;              
            }
            GetCorrect = "Тест закончен. Правильные ответы: " + vern.ToString() + " из 5";
            if (m > 4) { MessageBox.Show(GetCorrect); button1.Enabled = false; }            
        }
    }
}
Не подскажете как по более правильному считать количество правильных ответов, а то тут получается что у меня только первый ответ может быть правильным
Slavik3 вне форума Ответить с цитированием
Старый 01.11.2012, 06:08   #6
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Что ж даже в упор не смотрите-то ? http://programmersforum.ru/showthread.php?t=215919
phomm вне форума Ответить с цитированием
Старый 01.11.2012, 21:35   #7
Slavik3
Пользователь
 
Регистрация: 30.09.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Что ж даже в упор не смотрите-то ? http://programmersforum.ru/showthread.php?t=215919
Пробывал пересобрать с Вашым Form2.cs, там программа не рабочая
Slavik3 вне форума Ответить с цитированием
Старый 03.11.2012, 18:06   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Вы не правильно поняли наверное - надо взять проект автора той темы и в нем заменить 1 файл на мой. Тогда всё будет работать.
Пересобирать Ваш проект с моим файлом и надеяться на работу это верх наивности.
Программирование, знаете ли, не магия и не алхимия, это наука, и если делать не по науке, то ничего не получится.
phomm вне форума Ответить с цитированием
Старый 04.11.2012, 21:59   #9
Slavik3
Пользователь
 
Регистрация: 30.09.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Вы не правильно поняли наверное - надо взять проект автора той темы и в нем заменить 1 файл на мой. Тогда всё будет работать.
Пересобирать Ваш проект с моим файлом и надеяться на работу это верх наивности.
Программирование, знаете ли, не магия и не алхимия, это наука, и если делать не по науке, то ничего не получится.
Вы меня не правильно поняли. Я имел ввиду что я взял проэкт автора и присоеденил к нему Form2.cs, test.txt. Кнопка следующий вопрос не обрабатывается а кнопка старт выводит из текстового файла вопрос и четыре ответа
Slavik3 вне форума Ответить с цитированием
Старый 04.11.2012, 23:20   #10
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

А как-то должно быть иначе ? автору изначально требовалось сперва зайти в тест, потом нажать старт, а потом отвечать и нажимать след.вопрос. Нажатие след.вопроса сразу приводит к плохим последствиям ) не я такую логику построил, а просто довёл код до работы.
Но дело то в другом - Вам нужно понять сами принципы - работу с массивами, подсчёт ответов, кнопки тут ни при чём, у Вас же именно в этой части программы проблемы, это Вам и надо почерпнуть из того кода. Если хотите, возьмите любой построчный компаратор (сравниватель) файлов и "в живую", строка к строке, поглядите что изменилось у меня по сравнению с кодом автора.
Привязываться логикой к визуальным компонентам - плохой стиль, и у Вас из-за этого проблемы, надо выделить логику отдельно и тогда всё пойдёт лучше, визуальные компоненты - только для диалога с пользователем, а логика крутится отдельно.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по задаче (visual c++) JOFRIF Visual C++ 10 26.07.2009 19:52
Вопрос по Microsoft Visual C++ DiZZZ Visual C++ 3 06.04.2009 18:45
Вопрос по Visual Basic 6 С.М.С Помощь студентам 1 08.03.2009 17:06
Вопрос по Visual Basic 6. С.М.С Помощь студентам 7 08.03.2009 13:51
Вопрос по Visual C++ TheLostOne Visual C++ 4 12.02.2009 00:23