Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по лабораторным.docx
Скачиваний:
49
Добавлен:
18.11.2022
Размер:
600.23 Кб
Скачать

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

Задание:

Разработать приложение, позволяющее вычислять периметр и площадь треугольника. Площадь треугольника со сторонами a,b,c и периметром можно вычислить по формуле:

  1. Создать форму, на которой создать меню с командами Ввод, Расчет и Выход.

  2. Нанести на форму три поля типа TextBox для ввода трех сторон треугольника, группу из двух флажков типа CheckBox с названиями «Периметр» и «Площадь».

  3. При выборе команды Ввод обеспечить очистку значений в полях TextBox и сброс флажков.

  4. При выборе команды Расчет обеспечить подсчет периметра и/или площади треугольника. Результат вывести в новой форме. Нанести на эту форму кнопку с надписью ОК, при нажатии на которую форма будет закрываться. Остальной дизайн формы результатов разработать самостоятельно.

  5. При выборе команды Выход обеспечить выход из программы.

Ограничения:

  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 Лабораторная_6

{

public partial class Form1 : Form

{

private Form2 form2;

public Form1()

{

InitializeComponent();

}

private void вводToolStripMenuItem_Click(object sender, EventArgs e)

{

textBox1.Clear();

textBox2.Clear();

textBox3.Clear();

checkBox1.Checked = false;

checkBox2.Checked = false;

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

Close();

}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{

char ch = e.KeyChar;

if (!Char.IsDigit(ch) && ch != 8)

{

e.Handled = true;

}

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

if ((textBox3.Text.Length > 0) && (textBox1.Text.Length > 0) && (textBox2.Text.Length > 0))

{

расчётToolStripMenuItem.Visible = true;

}

if ((textBox3.Text.Length == 0) || (textBox1.Text.Length == 0) || (textBox2.Text.Length == 0))

{

расчётToolStripMenuItem.Visible = false;

}

}

private void расчётToolStripMenuItem_Click(object sender, EventArgs e)

{

form2 = new Form2();

form2.Show();

Int32 a, b, c, s, p;

a = Convert.ToInt32(textBox1.Text);

b = Convert.ToInt32(textBox2.Text);

c = Convert.ToInt32(textBox3.Text);

form2.textBox1.Clear();

form2.textBox2.Clear();

if((checkBox1.Checked==true)&&(checkBox2.Checked == false))

{

form2.label1.Visible = true;

form2.textBox1.Visible = true;

p = a + b + c;

form2.textBox1.AppendText(Convert.ToString(p));

}

if((checkBox2.Checked==true)&&(checkBox1.Checked == false))

{

form2.label2.Visible = true;

form2.textBox2.Visible = true;

p = a + b + c;

s = Convert.ToInt32(Math.Sqrt(p * (p - a) * (p - b) * (p - c)));

form2.textBox2.AppendText(Convert.ToString(s));

}

if ((checkBox1.Checked == true) && (checkBox2.Checked == true))

{

form2.label1.Visible = true;

form2.textBox1.Visible = true;

p = a + b + c;

form2.textBox1.AppendText(Convert.ToString(p));

form2.label2.Visible = true;

form2.textBox2.Visible = true;

p = a + b + c;

s = Convert.ToInt32(Math.Sqrt(p * (p - a) * (p - b) * (p - c)));

form2.textBox2.AppendText(Convert.ToString(s));

}

}

}

}

Форма для отображения периметра или площади:

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 Лабораторная_6

{

public partial class Form2 : Form

{

public Form2()

{