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

Лабораторная работа 11 Переопределение операций. Закладка TabStrip

Цель работы.

Изучить формирование программ с использованием переопределения операций. Научиться создавать формы с использованием визуального элемента TabStrip.

План занятия.

Изучить теоретические сведения формирования программы на С#.

По приведенному листингу программы разработать на Visual Studio программу и отладить ее. Составить программу по индивидуальному заданию.

Краткие теоретические сведения.

Переопределение операций.

Используется для нестандартного действия в операциях.

Например: мы хотим для переменных x и y определить сумму не как x+y, а в виде 5x+4y или что-то в этом роде.

Можно переопределять только те операции, которые зарезервированы стандартно.

Переопределение унарных операций.

+ – ! ++ – – true false

Переопределение выполняется в виде процедуры стандартного типа:

public static double operator ++ (double x)

{ double temp = x+2; return temp;

}

Пример программы:

double x; x=1; x++; // x будет ровно 3

Переопределение бинарных операций.

+ - * / % && || ^ << >> == != > < > = < =

(нет операции = )

Пример :

public static double operator + ( double x, double y)

{double temp=5*x+4*y;

return temp

}

Программа:

double x=1,y=2;

double z=x+y; //z будет ровно 5x+4y=13

Порядок выполнения работы.

Закладки tabStrip нет в стандартной поставке и ее нужно установить: Сервис/Выбрать элементы панели элементов; закладка COM-компаненты; флажок Microsoft Form 2.0 TabStrip.

Создайте форму:

//ЗАКЛАДКИ ОДИНАКОВЫЕ

Воспроизведите код программы.

//FORM

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 WindowsFormsApplication1

{

public partial class Form1 : Form

{

long[,] OKL = new long[12, 50];

byte[,] PRP = new byte[12, 50];

public Form1()

{

InitializeComponent();

}

private void button1_Click_1(object sender, EventArgs e)

{

this.Close();

}

private void UST(int i, int j)

{

textBox1.Text = OKL[i, j].ToString();

textBox2.Text = PRP[i, j].ToString();

float pr = OKL[i, j] * PRP[i, j] / 100;

textBox4.Text = pr.ToString();

pr += OKL[i, j];

textBox3.Text = pr.ToString();

}

private void Form1_Activated(object sender, EventArgs e)

{

comboBox1.Items.Add("Иванов И.И.");

comboBox1.Items.Add("Петров П.П.");

comboBox1.Items.Add("Сидоров С.С.");

comboBox1.Items.Add("Яковлев Я.Я.");

comboBox1.SelectedIndex = 0;

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

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

{

OKL[i, j] = 1000000; PRP[i, j] = 30;

}

axTabStrip1.Tabs.Clear();

axTabStrip1.Tabs.Add("янв"); axTabStrip1.Tabs.Add("фев"); axTabStrip1.Tabs.Add("март");

axTabStrip1.Tabs.Add("апр"); axTabStrip1.Tabs.Add("май"); axTabStrip1.Tabs.Add("июнь");

axTabStrip1.Tabs.Add("июль"); axTabStrip1.Tabs.Add("авг"); axTabStrip1.Tabs.Add("сен");

axTabStrip1.Tabs.Add("окт"); axTabStrip1.Tabs.Add("ноя"); axTabStrip1.Tabs.Add("дек");

axTabStrip1.Value = 0;

UST(0, 0);

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

UST(comboBox1.SelectedIndex, axTabStrip1.Value);

}

private void axTabStrip1_Change(object sender, EventArgs e)

{

UST(comboBox1.SelectedIndex, axTabStrip1.Value);

}

private void textBox1_MouseLeave(object sender, EventArgs e)

{

int i = comboBox1.SelectedIndex;

int j = axTabStrip1.Value;

OKL[i, j] = Convert.ToInt64(textBox1.Text);

UST(i, j);

}

private void textBox2_MouseLeave(object sender, EventArgs e)

{

int i = comboBox1.SelectedIndex;

int j = axTabStrip1.Value;

PRP[i, j] = Convert.ToByte(textBox2.Text);

UST(i, j);

}

private void textBox1_KeyUp(object sender, KeyEventArgs e)

{

if(e.KeyCode==Keys.Enter)

{

int i = comboBox1.SelectedIndex;

int j = axTabStrip1.Value;

OKL[i, j] = Convert.ToInt64(textBox1.Text);

UST(i, j);

}

}

private void textBox2_KeyUp(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Enter)

{

int i = comboBox1.SelectedIndex;

int j = axTabStrip1.Value;

PRP[i, j] = Convert.ToByte(textBox2.Text);

UST(i, j);

}

}

}}

Индивидуальное задание.

Создайте программу переопределения операции плюс: 3a+4b и операции умножение: (1+a)*(5+b). Составьте выражение с использованием этих операций, проверьте результат.

Содержание отчета.

Представить отлаженную программу по индивидуальному заданию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]