Вы находитесь на странице: 1из 13

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

Федеральное государственное автономное образовательное учреждение


высшего образования
Национальный исследовательский технологический университет «МИСиС»»
Институт информационных технологий и автоматизированных систем
управления

ОТЧЕТ

Лабораторная работа №10

по дисциплине: «Объектно-ориентированное программирование»

на тему: «Разработка приложений с графическим интерфейсом пользователя.


Экранные формы»

Студент: Лазарев М.О.


Руководитель: Стучилин В.В.

Оценка: _____________________

Москва 2019
Цель работы: Приобретение навыков использования текстовых полей форм
Windows Forms для ввода и вывода данных.

Задание I уровня

Задача: Два массива размера 6 поместить в RichTextBox1 и RichTextBox2. Найти сумму


этих массивов, суммируя каждую пару элементов. Результат с заголовком поместить в
RichTextBox3.

Листинг программы:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp10
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
Random r = new Random();
const int n = 4;
int[,] a = new int[n, n];
for (int i=0; i<n; i++)
{

for (int j = 0; j < n; j++)


{

int rand = r.Next(-20, 100);


a[i, j] = rand;
}

for (int i = 0; i < n; i++)


{

for (int j = 0; j < n; j++)


{

richTextBox1.AppendText(a[i, j] + " ");


}
richTextBox1.AppendText("\n");

for (int i = 0; i < n; i++)


{

int sum = 0;

for (int j = 0; j < n; j++)


{
sum += a[i, j];

}
richTextBox2.AppendText(i + 1 + " строка= " + sum + "\n");
}
}
}
}
Блок-схема:
Результаты работы программы:

Задание II уровня

Цель работы: приобретение навыков визуализации графических данных.

Задача: Составить программы для решения указанных задач. Построить


график функции z = f(x) при a ≤ x ≤ b, разбивая отрезок [a, b] на n частей.
График начертить точками или отрезками прямых линий по указанию
преподавателя, выполнив предварительно масштабирование. При
вычерчивании графика функции предусмотреть вывод координатных осей.
z = x3 + 5x2 + 14x – 56; a = 1, b = 10, n = 40.
Листинг программы:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp11
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)


{

private void Form1_Paint(object sender, PaintEventArgs e)


{
Graphics g = e.Graphics;
double x, y;
int xc = this.Width / 2;
int yc = this.Height / 2;
g.TranslateTransform(xc, yc);
g.DrawEllipse(new Pen(Color.Green, 8.0f), 0, 0, 1, 1);
g.DrawLine(new Pen(Color.Black, 1.0f), -200, 0, 200, 0);
g.DrawLine(new Pen(Color.Black, 1.0f), 0, -200, 0, 200);

for (x = 1; x <= 10; x += 0.25)


{
y = Math.Pow(x,3) + 5 * Math.Pow(x,2) + 14 * x - 56;
g.DrawEllipse(new Pen(Color.Black, 2.0f), (int) (x*10), (int) (-y) , 1, 1);
}
}
}
}
Блок-схема:

Результат работы:
Задание III уровня
Задача: Игра "Быки и коровы" (вариант 1). Компьютер генерирует случайное
четырехзначное число, в котором все цифры различны. Игрок должен
отгадать число, делая несколько попыток. После ввода очередного числа
компьютер сообщает о степени совпадения введенного числа с исходным,
т.е. количество «быков» и «коров»: «корова» - это цифра в числе игрока,
совпадающая по разряду с такой же цифрой в загаданном числе; «бык» - это
цифра в числе игрока, не совпадающая по разряду с такой же цифрой в
загаданном числе. Если, например, загадано число 6482, то число 5428
содержит 1«корову» и 2«быка».
Листинг программы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BullsCows
{
public partial class Form1 : Form
{
Random rand;
string numberToSolve;
string currentNumber;
int bulls, cows;
public Form1()
{
InitializeComponent();
rand = new Random();
generateNumber();
}

void checkText()
{
if (textBox1.Text.Length > 4)
{
textBox1.Text = textBox1.Text.Substring(0, 4);
}
else if (textBox1.Text.Length < 4)
{
while (textBox1.Text.Length < 4) textBox1.Text += "0";
}
}

void generateNumber()
{
Random buff = new Random();
numberToSolve = Convert.ToString(buff.Next(1000,10000));
textBox2.Text = "Компьютер уже что-то задумал...Пора играть!!";
}

void CheckNumber()
{
bulls = 0;
cows = 0;
bool[] cowMask = { true, true, true, true };
bool[] bullMask = { true, true, true, true };

for(int i = 0; i < numberToSolve.Length; i++)


{
if (numberToSolve[i] == currentNumber[i]) { cows++; cowMask[i] =
false; }
}

for(int i = 0; i < numberToSolve.Length; i++)


{
if (!cowMask[i]) continue;
for(int j = 0; j < numberToSolve.Length; j++)
{
if (!bullMask[j]) continue;
if(numberToSolve[i] == currentNumber[j] && i != j)
{
bulls++;
bullMask[j] = false;
}
}
}

if(cows == 4)
{
textBox2.Text = "Вы выиграли!";
}
else
{
textBox2.Text = "Вы не отгадали" + Environment.NewLine + "В
вашем числе... " + " Быков: " + bulls + " Коров: " + cows ;
}

private void button1_Click(object sender, EventArgs e)


{
checkText();
currentNumber = textBox1.Text;
CheckNumber();
textBox3.Text += currentNumber + " " + "Быков: " + bulls + " Коров: " +
cows + Environment.NewLine;
}

private void button3_Click(object sender, EventArgs e)


{
textBox2.Text = "Я задумал число: " + numberToSolve;
}

private void button2_Click(object sender, EventArgs e)


{
generateNumber();
textBox3.Text = String.Empty;
}
}
}
Блок-схема:
Результат работы:

Вывод: Я научился основным приемам использования проекта Windows Forms.


Использовать текстовые поля форм Windows Forms для ввода и вывода данных,
приобрёл навыки визуализации графических данных.

Вам также может понравиться