Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 23

Визуальный интерфейс для программы

22.01.2011, 09:37. Показов 2741. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть вот такая программка подсчета максимальных баллов оценок на соревновании

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication7
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] fam = { "Иванов", "Петров", "Сидоров" }; //вводим фамилии участников
            int n = 3; //Указываем количество участников
            int[][] marks; //определяем ступенчатый массив оценок
            marks = new int[n][];//выделяем память под ступ. массив оценок
            int[] sum_marks; //массив суммарных оценок
            sum_marks = new int[n];
            for (int i = 0; i < n; i++)
            {
                marks[i] = new int[5]; 
            }
            Random r = new Random((int)DateTime.Now.Ticks); //генерируем оценки случайным образом
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < 5; j++)//j - индекс массива оценок
                    marks[i][j] = r.Next(1, 6);
            }
 
            for (int i = 0; i < n; i++)
            {
                Console.Out.Write("{0} ", fam[i]);//выводим на экран фамилии
 
                for (int j = 0; j < 5; j++)
                {
                    Console.Out.Write(" {0}", marks[i][j]);//выводим на экран оценки
                }
                Console.Out.WriteLine();
            }
            Console.Out.WriteLine();
            int tmp;//вводим временную переменную
            int min;//вводим минимум
 
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < 4; j++)//ищем минимальные оценки и сортируем по возрастанию (сортировка вставка)
                {
                    min = j;
                    for (int k = j + 1; k < 5; k++)
                    {
                        if (marks[i][k] < marks[i][min])
                        {
                            min = k;
                        }
                    }
                    tmp = marks[i][min];
                    marks[i][min] = marks[i][j];
                    marks[i][j] = tmp;
                }
 
            }
            
            for (int i = 0; i < n; i++)
            {
                for (int j = 1; j < 4; j++)
                {
 
                    sum_marks[i] = sum_marks[i] + marks[i][j];//итоговые суммарные оценки записываем в массив суммарных оценок
                }
 
            }
            Console.Out.WriteLine("Максимальные баллы:");
            for (int i = 0; i < n; i++)
            {
                Console.Out.Write(" {0} ", sum_marks[i]);//выводим суммарные оценки
            }
            Console.Out.WriteLine();
            Console.Out.WriteLine();
            int a;//временная переменная
            string b;//вводим переменную для участника с максимальной оценкой
            int max;
            for (int i = 0; i < n - 1; i++)
            {
                max = i;
                for (int j = i + 1; j < n; j++)//ищем максимум в массиве суммарных оценок и сортируем массив
                {
                    if (sum_marks[j] > sum_marks[max])
                    {
                        max = j;
                    }
                }
                a = sum_marks[max];
                sum_marks[max] = sum_marks[i];
                sum_marks[i] = a;
                b = fam[max];
                fam[max] = fam[i];
                fam[i] = b;
            }
            Console.Out.Write("{0} {1} ", fam[0], sum_marks[0]);//выводим первый элемент отсортированного массива
            Console.Out.WriteLine();
            Console.Out.WriteLine();
        }
    
    }
 
}
нужно сделать ее в Visual с использованием Windows forms.
визуальное воплощение самое простое - сверху две кнопки - "вывести фамилии" и "поставить оценки"
под ними текстовый лейбл для вывода фамилий и оценок.
ниже кнопка - "подсчитать сумму оценок" (за вычетом минимальных в данном случае)
и поле для вывода результата,
последняя кнопка "winner" (сюда вывести фамилию и сумму баллов победителя)
и ниже поле для вывода результата.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2011, 09:37
Ответы с готовыми решениями:

Визуальный интерфейс
Есть следующий программный код: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Как создать визуальный интерфейс (окно с элементами) на основе только кода c# - без использования XAML и WPF?
Интересуют примеры создания визуальных интерфейсов (окон с элементами) на основе только кода c# - без использования XAML и WPF. И...

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

8
 Аватар для Ногин Антон
64 / 12 / 3
Регистрация: 04.10.2009
Сообщений: 519
22.01.2011, 10:03
murus, у Вас есть Visual Studio?

Кнопки можно сделать с помощью контрола button.

Текстовый лейбл через label

По нажатию кнопки создать обработчики..

Что у Вас не получилось конкретно?
0
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 23
22.01.2011, 18:34  [ТС]
Есть, кнопки-то нарисовать 5 минут, не получается увязать кнопки с уже написанным выше кодом
не пойму в какое место вставлять определители массивов, куда вывод-ввод с клавиатуры и сам код рендома например...
0
0 / 0 / 1
Регистрация: 13.10.2010
Сообщений: 37
22.01.2011, 18:54
делаешь кнопку... тыкаешь по ней два раза появится

C#
1
2
3
4
private void button1_Click(object sender, EventArgs e)
        {
           // сюда ваш код
        }
0
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 23
22.01.2011, 20:48  [ТС]
xFroLx, это понятно... вопрос в том как распределить обработчики событий на каждой кнопке...
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
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 sorevnovaniya_visual
{
    public partial class sorevnovaniya : Form
    {
 
        
        public TextBox TextBox1;
        
        public sorevnovaniya()
        {
            InitializeComponent();
        }
        string[] fam = { "Иванов", "Петров", "Сидоров" }; //вводим фамилии участников
        int n = 3; //Указываем количество участников
        int[][] marks; //определяем ступенчатый массив оценок
 
 
        private void family_Click(object sender, EventArgs e)
        {
 
            marks = new int[n][];//выделяем память под ступ. массив оценок
            
 
            for (int i = 0; i < n; i++)
            {
                marks[i] = new int[5];
            }
            Random r = new Random((int)DateTime.Now.Ticks); //генерируем оценки случайным образом
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < 5; j++)//j - индекс массива оценок
                    marks[i][j] = r.Next(1, 6);
            }
 
            for (int i = 0; i < n; i++)
            {
                label1.Text = label1.Text + fam[i].ToString() + " ";
            }
 
        }
 
        private void ocenki_Click(object sender, EventArgs e)
        {
            int i = 0;
            
            for (int j = 0; j < 5; j++)
            {
                label1.Text = label1.Text + marks[i][j].ToString() + " ";//выводим на экран оценки
            }
        }
 
        private void summa_Click(object sender, EventArgs e)
            {
                int tmp;//вводим временную переменную
            int min;//вводим минимум
            int[] sum_marks; //массив суммарных оценок
            sum_marks = new int[n];
 
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < 4; j++)//ищем минимальные оценки и сортируем по возрастанию (сортировка вставка)
                {
                    min = j;
                    for (int k = j + 1; k < 5; k++)
                    {
                        if (marks[i][k] < marks[i][min])
                        {
                            min = k;
                        }
                    }
                    tmp = marks[i][min];
                    marks[i][min] = marks[i][j];
                    marks[i][j] = tmp;
                }
 
            }
            
            for (int i = 0; i < n; i++)
            {
                for (int j = 1; j < 4; j++)
                {
 
                    sum_marks[i] = sum_marks[i] + marks[i][j];//итоговые суммарные оценки записываем в массив суммарных оценок
                }
 
            }
            TextBox1.Text = "Максимальные баллы:";
 
            for (int i = 0; i < n; i++)
            {
                TextBox1.Text = textBox1 + sum_marks[i].ToString() + " ";//выводим суммарные оценки
 
            }
 
       
        
 
 
    }
 
        private void winner_Click(object sender, EventArgs e)
        {
            int a;//временная переменная
            string b;//вводим переменную для участника с максимальной оценкой
            int max;
            int[] sum_marks; //массив суммарных оценок
            sum_marks = new int[n];
            for (int i = 0; i < n - 1; i++)
            {
                max = i;
                for (int j = i + 1; j < n; j++)//ищем максимум в массиве суммарных оценок и сортируем массив
                {
                    if (sum_marks[j] > sum_marks[max])
                    {
                        max = j;
                    }
                }
                a = sum_marks[max];
                sum_marks[max] = sum_marks[i];
                sum_marks[i] = a;
                b = fam[max];
                fam[max] = fam[i];
                fam[i] = b;
            }
            textwinner.Text = textwinner + fam[0].ToString() + sum_marks[0].ToString() + " ";//выводим первый элемент отсортированного массива
 
        }
    }
}
получилось примерно это... не работает

Добавлено через 27 минут
з.ы. фамилии выводятся нормально. оценки с помощью генератора должны выводится сразу по всем участникам (по 1-кратному нажатию кнопки), а у меня выводятся в строку и почему-то только 1 вариант рендома для всех участников.... ну а дальше кнопки вообще не работают
0
мастер топоров
 Аватар для Koran
917 / 742 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
22.01.2011, 20:53
лично я не понял Вашей задачи? не могли бы Вы более детально написать задание - я постараюсь написать готовый проект.
0
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 23
22.01.2011, 21:35  [ТС]
Koran, есть задача, решенная на С#, ее код в первом посте (ее суть в том что есть 5 судей, которые выставляют оценки трем участникам соревнований - оценки задаются генератором случайных чисел. далее нужно отбросив максимальные и минимальные оценки найти участника с наибольшим кол-вом баллов и вывести на консоль.) Вообщем нужно сделать по этому коду для нее простейший интерфейс - кнопки вывода массивов фамилий и оценок, кнопки для подсчета максимальных оценок...
принсткрин тут http://imagepost.ru/?v=505/Untitled_1.jpg

Добавлено через 21 минуту
пардон, еще такой нюанс, что максимальное кол-во баллов ищется за вычетом минимальных оценок по каждому - но это уже решено в самой задаче, в данном случае мне нужно прикрутить этот код к форме....
0
мастер топоров
 Аватар для Koran
917 / 742 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
22.01.2011, 22:07
я тут кодю.
я смотрел Ваш консольный код - там выводится сумма баллов по каждому участнику? тоесть суммируются баллы по одному участнику от всех судей и потом они же выводятся?
1
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 23
23.01.2011, 01:48  [ТС]
Koran, да именно так...

Добавлено через 3 часа 28 минут
Koran, огромное человеческое спасибо за помощь!!!
задачка решена.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2011, 01:48
Помогаю со студенческими работами здесь

Оконный интерфейс для программы решения СЛАУ методом Гаусса
Добрый день! Мне надо сделать оконный интерфейс для решения слау методом гаусса! Помогите или посоветуйте как это сделать) Спасибо! ...

Как создать визуальный интерфейс
Подскажите пожалуйста как можно реализовать кнопки в паскаль АВС.net. и вообще какие есть приколюхи для оформления программы?

Приложение с заставкой. Создать визуальный интерфейс
Задание: Вот небольшая наработка, осталось только назначить кнопки, не знаю как это сделать ) Или так вот текстом: Форм1...

Какой визуальный компонент используется для отображения таблиц в окне программы?
Доброго времени суток. Подскажите пожалуйста, какой визуальный компонент в C# используется для отображения таблиц в окне программы. Я...

Интерфейс для программы
Как сделать интерфейс для программы?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru