Лаб 8 - Графический интерфейс - СФ
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего
образования ТОМСКИЙ ГОСУДАРСТВЕЕНЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И
РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
Работа с графическим интерфейсом
Лабораторная работа №8 по дисциплине «Основы программирования» Отчет по лабораторной работе
Студент гр. ххххх
________ хххххххх
16.03.2022
Руководитель: Преподаватель КИБЭВС
_________ ________ ххххххх
16.03.2022
Томск 2022
2
Содержание Введение……………………………………………………………………………………. 3 Теоретические сведения…………………………………………………………………… 4 Ход работы для задания №1………………………………………………………………. 5 Ход работы для задания №2………………………………………………………………. 7
Ход работы для задания №3………………………………………………………………. 9 Заключение………………………………………………………………………………...11
Список использованной литературы……………………………………………………. 12
3
1 Введение
Цель работы: овладеть навыками работы с графическим интерфейсом.
Задание1: Написать программу вычисления стоимости вычисления, состоящей из нескольких тетрадей карандашей. Извне вводится цена Ct тетради количество Kt тетрадей, а
также цена Ck карандаша и количество карандашей Kk.
Задание 2: Написать программу, которая в зависимости от выбранного способа (по формуле суммы или суммированием в цикле) рассчитывает сумму: 1^2+2^2+n^2=n(n+1)(2n+1)/6.
Задание 3: Организовать вычисление с помощью полосы прокрутки для различных n.
причем предусмотреть вычисление как в цикле, так и по формуле, приведенной в правой части выражения: 1^5-2^5+3^5+(-1)^(n-1)*n^5=(1/4)(1+(-1)^n(5*n^2-5*n^4-2*n^5-1)).
4
2 Теоретические сведения
Метод Main является точкой входа для каждого приложения C# и вызывается общеязыковой средой выполнения (CLR) при запуске программы. В приложении,
использующем инструкции верхнего уровня, метод Main создается компилятором и содержит все инструкции верхнего уровня.
Методы объявляются в классе, структуре или интерфейсе путем указания уровня доступа, такого как public или private, необязательных модификаторов, таких как abstract или sealed, возвращаемого значения, имени метода и всех параметров этого метода. Все эти части вместе представляют собой сигнатуру метода.
Вызов метода в объекте аналогичен доступу к полю. После имени объекта добавьте точку, имя метода и круглые скобки. Аргументы перечисляются в этих скобках и разделяются запятыми. Таким образом, методы класса Motorcycle могут вызываться, как показано в следующем примере:
При передаче в метод объекта ссылочного типа передается ссылка на этот объект. То есть метод получает не сам объект, а аргумент, который указывает расположение объекта. При изменении члена объекта с помощью этой ссылки это изменение отражается в аргументе в вызывающем методе, даже если объект передается по значению.
Методы могут возвращать значение вызывающему объекту. Если тип возврата,
указываемый перед именем метода, не void, этот метод может возвращать значение с помощью ключевого слова return . Инструкция с ключевым словом return , за которым следует значение, соответствующее типу возврата, будет возвращать это значение объекту,
вызвавшему метод.
5
3 Ход работы для задания №1
Данный алгоритм состоит из классов. В нем есть классы label, textbox, button. В textbox
вводятся значения, а при нажатии на button происходит расчет.
На рисунке 3.1 представлен результат работы программы.
Ниже представлен сам код программы:
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 WindowsFormsApp7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
try {
string Kt = textBox1.Text; string Ct = textBox4.Text; string Kk = textBox3.Text; string Ck = textBox2.Text;
MessageBox.Show($"Сумма равна:{int.Parse(Kt) * double.Parse(Ct) + int.Parse(Kk) * double.Parse(Ck)} ", "Сумма", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch(FormatException exception)
{
MessageBox.Show("Введены некорректные данные!!!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
}
}
6
}
Рисунок 3.1 - Работа программы 1
Данная программа работает корректно, без каких-либо проблем.
7
4 Ход работы для задания №2
Данный алгоритм состоит из классов. В нем есть классы label, textbox, button, radiobatton. В textbox пользователь вводит значение n, затем пользователь должен выбрать каким методом считать сумму, а потом он должен нажать на кнопку “Счет”.
На рисунке 4.1 представлен результат работы программы.
Ниже представлен сам код программы:
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 WindowsFormsApp8._2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
try
{
double n = double.Parse(textBox1.Text); double MainSum;
if( radioButton1.Checked)
{
MainSum = Formula(n);
}
else
{
MainSum = Circle(n);
}
MessageBox.Show($"Сумма равна: {MainSum}", "Сумма", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (FormatException exception)
{
MessageBox.Show(exception.Message, "Введены некорректные данные!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private double Formula(double n)
{
return n * (n + 1)*(2 * n + 1) / 6;
}
private double Circle(double n)
{
double MainV = 0;
8
for (int i = 0; i < n+1; i++)
{
MainV += Math.Pow(i, 2);
}
return MainV;
}
}
}
Рисунок 4.1 - Работа программы 2
Данная программа работает корректно, без каких-либо проблем.
9
5 Ход работы для задания №3
Данный алгоритм состоит из классов. В нем есть классы comboBox, button, radiobatton. ComboBox представляет собой ленту прокрутки переменной n, которая задается пользователем, затем пользователь должен выбрать метод расчета либо по формуле суммы,
либо через цикл и нажать на кнопку «Считать».
На рисунке 5.1 представлен результат работы программы.
Ниже представлен сам код программы:
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 WindowsFormsApp8._3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
try
{
int n = int.Parse(comboBox1.Text); double MainSum;
if (radioButton1.Checked)
{
MainSum = Formula(n);
}
else
{
MainSum = Circle(n);
}
MessageBox.Show($"Сумма равна: {MainSum}", "Сумма", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (FormatException exception)
{
MessageBox.Show(exception.Message, "Введены некорректные данные!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
10
}
private double Formula(int n)
{
return (1+Math.Pow(-1, n)*(5*Math.Pow(n, 2)-5*Math.Pow(n, 4)-2*Math.Pow(n,
5)-1))/4;
}
private double Circle(int n)
{
double MainV = 0;
for (int i = 0; i < n + 1; i++)
{
if (i % 2 == 0)
MainV -= Math.Pow(i, 5); else MainV += Math.Pow(i, 5);
}
return MainV;
}
}
}
Рисунок 5.1 - Работа программы 3
Данная программа работает корректно, без каких-либо проблем.