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

Узнай цену своей работы

Формулировка задачи:

есть вот такая программка подсчета максимальных баллов оценок на соревновании
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" (сюда вывести фамилию и сумму баллов победителя) и ниже поле для вывода результата.

Решение задачи: «Визуальный интерфейс для программы»

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() + " ";//выводим первый элемент отсортированного массива
 
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы