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

Лабораторная 6 Перечисление. Немодальные формы пользователя

Цель работы.

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

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

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

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

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

Перечисление.

Перечисление – это список именованных констант. В отличие от константы при выводе выводится не числовые значения константы, а ее имя.

public enum zvanie

{рядовой, сержант, майор, генерал}

// Программа

zvanie x;

x= (zvanie)1;

Console.Write (“звание = {0}”, x ) ; // Будет напечатано: звание = сержант

Операции с перечислениями:

+ – ++ – –

Пример:

zvanie x, y;

x= (zvanie)1;

y = x++;

Console.Write (“звание = {0}”, y); // будет напечатано звание = майор

Можно и так:

zvanie x, y;

x = zvanie.рядовой;

y = x++;

Console.Write (“звание = {0}”, y); // звание = сержант

Перечисление напоминает текстовый массив (это имена перечисления) с инкапсупируемыми индексами. Все операции записи (т. е. присвоения) делаются над индексами, а на выводе выводятся имена.

Это можно было бы более сложно заменить массивом:

int[ ] x= {“рядовой”, “сержант”, “майор”);

int i = 1;

Console.Write (“звание = {0}”, x[ i ]); // будет напечатано звание = сержант

i++;

Console. Write (“звание = {0}”, x[ i ]; // будет напечатано звание = майор

Но в этом случае надо хранить в отдельной переменной индекс массива.

Перечисления как видно более удобны

Функции перечислений.

Enum.GetName(typeof(zvanie)) – Возвращает список имён в строковый массив:

string[] names=Enum.GetName(typeof(zvanie));

Enum.GetValues – возвращает значения перечисления.

Enum.IsDefined(typeof(zvanie),“сержант”); – Определяет есть ли в перечислении имя, указание вторым параметром строкой.

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

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

FORM1 FORM2

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

//PROGRAM

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

namespace WindowsFormsApplication1

{

static class Program

{

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Form2 f2 = new Form2();

f2.Show();

Application.Run(new Form1());

}

}

}

//FORM1

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

{

public Form1()

{

InitializeComponent();

}

public static double z=1;

private void button2_Click(object sender, EventArgs e)

{

this.Close();

}

private void button1_Click(object sender, EventArgs e)

{

double x, y; string st;

x = Convert.ToDouble(textBox1.Text);

y = Math.Sin(x)+66+Form1.z;

st = String.Format("{0,4:0.##}",y);

textBox2.Text = st;

}

}}

//FORM2

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;

using System.Text.RegularExpressions;

namespace WindowsFormsApplication1

{

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

this.Close();

}

private void textBox1_MouseLeave(object sender, EventArgs e)

{

Form1.z = Convert.ToDouble(textBox1.Text);

}

} }

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

Сформируйте перечисление воинских званий. Создайте форму из двух текстовых элементов: окно для текста звания и окно для номера звания. Составьте программу, по которой при указании номера звания в другом текстовом элементе будет меняться текст звания.

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

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

Литература.

Павловская Т.А. С#, Программирование на языке высокого уровня. – М., СПб: Питер, 2010, с.215-219

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