ТооП / Тооп(4)
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«КАЗАНСКИЙ (ПРИВОЛЖСКИЙ) ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
НАБЕРЕЖНОЧЕЛНИНСКИЙ ИНСТИТУТ (ФИЛИАЛ)
КАФЕДРА ИНФОРМАЦИОННЫХ СИСТЕМ
ЛАБОРАТОРНАЯ РАБОТА №4
«Использование классов для работы с массивами данных»
По дисциплине
«Объектно-ориентированное программирование»
Выполнил:
Студент группы 2161121
Золотых С.В.
Проверил:
Илюхин А.Н.
Набережные Челны
2017
-
Цель работы
Получение навыков в разработке программ с использованием классов для создания, хранения и работы с массивами данных.
-
Постановка задачи
Создать объекты класса <имя класса> (класс и его поля задаются в соответствии с выбранным вариантом в лабораторной работе 1), причем объекты класса должны хранить массивы данных о предметной области, связанные со свойствами предмета задания по варианту. Причем количество элементов массива должно задаваться пользователем в интерактивном режиме.
№ варианта |
Имя класса |
Поле 1 |
Поле 2 |
Поле 3 |
3 |
Процессор |
Фирма производитель |
Количество ядер |
Тактовая частота |
-
Текст программы
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 ТООП_4_
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class Processor_2//класс для частоты
{
public int n;
public double[] b;
public Processor_2(int n)
{
this.n = n;
b = new double[this.n];
}
public double this[int n]
{
get { return b[this.n-1]; }
set { b[this.n-1] = value; }
}
}
class Processor_3//класс для Фирмы
{
public string[] a;
public int n;
public Processor_3(int n)
{
this.n = n;
a= new string[this.n];
}
public string this[int n]
{
get { return a[this.n-1]; }
set { a[this.n - 1] = value; }
}
}
class Processor_4//класс для ядер
{
public int[] a;
public int n;
public Processor_4(int n)
{
this.n = n;
a = new int[this.n];
}
public int this[int n]
{
get { return a[this.n-1]; }
set { a[this.n-1] = value; }
}
}
private void button1_Click(object sender, EventArgs e)
{
int n = Convert.ToInt32(textBox4.Text);
Processor_3 A = new Processor_3(n);
for (int i = 0; i < A.n-1; i++) {
A[i] = textBox1.Text.Split(',')[i];
dataGridView1.Rows.Add(A[i]);
}
textBox1.Clear();//очищаем текстбокс
}
private void button2_Click(object sender, EventArgs e)
{
int n = Convert.ToInt32(textBox4.Text);
Processor_4 F = new Processor_4(n);
for (int i = 0; i < F.n-1; i++)
{
F[i] = Convert.ToInt32(textBox2.Text.Split(',')[i]);
dataGridView1.Rows[i].Cells[1].Value = F[i];
}
textBox2 .Clear();//очищаем текстбокс
}
private void button3_Click(object sender, EventArgs e)
{
int n = Convert.ToInt32(textBox4.Text);
Processor_2 B = new Processor_2(n);
for (int i = 0; i < B.n-1; i++)
{
B[i] = Convert.ToDouble(textBox3.Text.Split(';')[i]);
dataGridView1.Rows[i].Cells[2].Value = B[i]+" GHz";
}
textBox3.Clear();//очищаем текстбокс
textBox4.Clear();
}
private void button4_Click_1(object sender, EventArgs e)
{
Application.Exit();
}
private void button5_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
}
}
}
-
Результат работы программы
-
Блок-схема
-
Вывод
В связи с условием поставленной задачи было создано три класса с массивами данных, которые содержат разные типы данных, для большей наглядности: Processor_2, Processor_3, Processor_4. Классы были созданы с использованием индексаторов. Массивы вводились вручную и заполнялись в отдельный столбец таблицы DataGridView. Количество элементов массива так же задавалось вручную с клавиатуры. В результате выводится полный массив, использующий три поля данных: Firm, k и t.
Лабораторная работа помогла на практике закрепить знания о классах как массивах данных.