Визуальный интерфейс для программы - C#
Формулировка задачи:
есть вот такая программка подсчета максимальных баллов оценок на соревновании
нужно сделать ее в Visual с использованием Windows forms.
визуальное воплощение самое простое - сверху две кнопки - "вывести фамилии" и "поставить оценки"
под ними текстовый лейбл для вывода фамилий и оценок.
ниже кнопка - "подсчитать сумму оценок" (за вычетом минимальных в данном случае)
и поле для вывода результата,
последняя кнопка "winner" (сюда вывести фамилию и сумму баллов победителя)
и ниже поле для вывода результата.
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();
}
}
}Решение задачи: «Визуальный интерфейс для программы»
textual
Листинг программы
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() + " ";//выводим первый элемент отсортированного массива
}
}
}