Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

M_OPI_LR2011_ch2m1

.pdf
Скачиваний:
3
Добавлен:
07.02.2016
Размер:
6.14 Mб
Скачать

33

Змініть властивості доданих компонентів:

button1:

text — «додати в список»

button2:

text — «додати в дерево»

textBox1:

text — «»

Звернемося до коду програми (не наведена ділянка коду, сгенерована дизайнером під час візуальної побудови форми).

using

System;

using

System.IDrawing;

using

System.(Collections;

using

System.(ComponentModel;

using

System.!/.Windows.Forms;

using

System..IData;

namespace Viewapp

{

//<suiranary>

//Summary description for Forml.

//</summary>

public class Forml: System.Windows.Forms.Form

{

private System.Windows.Forms.ListView listViewl; private System.Windows.Forms.TreeView treeViewl; private System.Windows.Forms.TextBox textBoxl; private System.windows.Forms.Button buttonl; private System.windows.Forms.Button button2; //<summary>

// Required designer variable.

//</summary>

private system.ComponentModel.Container components = null; public Forml()

{

//

//Required for Windows Form Designer support

InitializeComponent () ;

//TODO: Add any constructor code after initiaiizecomponent

call

//

//<summary>

//clean up any resources being used. //</summary>

protected override void Dispose ( bool disposing )

{

if ( disposing )

{

if (components != null)

{

components.Dispose();

}

}

34

base. Dispose ( disposing );

}

#region Windows Form Designer generated code #endregion

//<summary>

//The main entry point for the application,

//</summary>

[Stathread]

static void main ()

{

Application.Run (new Forml());

Необхідно наділити код функціональністю. У першу чергу слід додати оброблювач натискання кнопки Додати в список. Для цього клацніть два рази курсором миші по кнопці на формі. Перед вами від­ криється вікно коду, у якому буде додана функція button1_Click, До­ дайте у функцію button1_Click код, представлений нижче.

private void buttonl_Click(object sender. System.EventArgs e)

{

//індекс виділеного елемента int idx;

//одержуємо список усіх виділених об'єктів

Listview.SelectedlndexCollection collection =

listViewl.Selectedlndices;

//якщо виділених об'єктів немає if (collection.Count == 0)

idx = 0; // беремо нульовий індекс

//якщо виділені об'єкти є

else

//беремо індекс нульового об'єкта списку idx = collection[0];

//додаємо новий елемент у список

listViewl.Items.Insert(idx, textBoxl.Text);

}

Відкомпілюйте й запустіть програму. Виконайте описану нижче послідовність дій: наберіть у поле введення «П'ять». Натисніть кнопку Додати в список. Наберіть у поле введення «Три». Натисніть кнопку Додати в список. Наберіть у поле введення «Один». Натисніть кнопку Додати в список. Елементи розташуються в списку так, як показано на рис. 2.6. Кожний новий елемент буде доданий у початок списку. При цьому всі попередні змістяться вниз.

37

 

 

Індивідуальні завдання:

 

 

1. Реалізувати програму, що

обчислює

значення виразу

, де N та K -

числа, що

задає користувач.

Врахувати оформлення програми, демонструвати ступінь виконання операції.

2.Реалізувати рух елементу Label по формі програми. Форма руху - за графіком синуса. Зміну положення мітки можна

виконувати за допомогою команди: la b e ll.L o c a tio n = new P o in t (x, y) ; Для зміни положення через певний проміжок часу доцільно використовувати об’єкт Timer. Врахувати оформлення програми.

3.Возведення числа у регульовану ступінь, за допомогою NumericUpDown, при цьому за допомогою ProgressBar де­ монструвати ступінь виконання операції, та за допомогою TrackBar керувати часовою затримкою між возведеннями, результат вивести на екран. Врахувати оформлення програми.

4.Реалізувати програму для обчислення факторіалу довіль­ ної величини, за схемою індивідуального завдання №3 до лабораторної роботи № 2. Врахувати оформлення програми.

5.Реалізувати програму для обчислення факторіалу довіль­ ної величини, за схемою загального завдання №1 до ла­ бораторної роботи № 2. Врахувати оформлення програми.

6.Реалізувати обчислення функції sin(x), де 0<x<2*pi з кро­ ком pi/6. Результат вивести у ListView. Врахувати оформ­ лення програми.

7.Реалізувати обчислення функції cos(x), де 0<x<pi з кроком pi/9. Результат вивести у ListView. Врахувати оформлення програми.

8.Реалізувати програму, що обчислює значення виразу

оформлення програми, демонструвати ступінь виконання операції.

9.Реалізувати програму яка введене число інтерпретує у те­ кстову форму (словами), виконувати обробку помилок, число не повинно бути більше 1000. Врахувати оформ­ лення програми.

38

10.Реалізувати програму для створення таблиці множення, з керуванням максимального множника, з виводом у еле­ мент ListView. Візуалізувати прогрес роботи програми елементом ProgressBar. Врахувати оформлення програми.

2.3.3Оформити звіт з роботи.

2.3.4Відповісти на контрольні питання.

2.4Зміст звіту

2.4.1Тема та мета роботи.

2.4.2Завдання до роботи.

2.4.3Короткі теоретичні відомості.

2.4.4Копії екрану та тексти розроблених програм, що відобра­ жають результати виконання лабораторної роботи.

2.4.5Висновки, що містять відповіді на контрольні запитання (5 шт. за вибором студента), а також відображують результати вико­ нання роботи та їх критичний аналіз.

2.5Контрольні запитання

2.5.1Які властивості елементу Label?

2.5.2Які властивості елементу LinkLabel?

2.5.3Порівняйте елементи Label та LinkLabel.

2.5.4Поясніть призначення елементу TrackBar.

2.5.5Які властивості елементу TrackBar?

2.5.6В яких випадках доцільним є використання елементу Pro-

gressBar?

2.5.7Які властивості елементу ProgressBar?

2.5.8Навіщо призначений елемент NumericUpDown?

2.5.9Які властивості елементу NumericUpDown?

2.5.10Які властивості елементу ListView?

2.5.11Які властивості елементу TreeView?

2.5.12Наведіть спільні та відмінні риси елементів ListView та

TreeView.

2.5.13Як здійснюється додавання елементу у ListView?

2.5.14Як здійснюється додавання вузлів у TreeView?

2.5.15Як здійснюється пошук елементів у ListView?

39

3 Л А Б О Р А Т О Р Н А Р О Б О Т А № 3 Р О Б О Т А З Р Я Д К А М И

3.1 Мета роботи

Навчитися працювати з рядками у Visual Studio.

3.2 Основні теоретичні відомості

С# забезпечує вбудовану підтримку роботи зі строками. Більше того, С# оброблює строки як об'єкти, що інкапсюлюють всі методи маніпулювання, сортування та пошуку.

3.2.1 Особливості типу System.String

С# оброблює строки як вбудовані типи, які є гнучкими, потуж­ ними й зручними. Кожен об'єкт рядка - це незмінна послідовність си­ мволів Unicode. Інакше кажучи, ті методи, які змінюють рядки, на­ справді повертають змінену копію, а первісні рядки залишаються неушкодженими.

Оголошення рядку у С# виконується за допомогою ключового слова string. В такий спосіб фактично виконується оголошення об'єкту типу System.String, що є одним з вбудованих типів, що підтримуються

.NET Framework бібліотекою класів. С# рядок - це об'єкт типу System.String.

Оголошення класу System.String наступне:

public sealed class String: IComparable, ICloneable, IConvertible, IEnumerable

Таке оголошення говорить про те, що клас запечатаний та не­ можливо успадкувати свій клас від класу String. Клас також реалізує чотири системні інтерфейси - IComparable, ICloneable, IConvertible і IEnuмеrаblе, які визначають функціональні можливості System.String за рахунок його додаткового використання з іншими класами в.NET Framework.

Інтерфейс IComparable визначає тип, що реалізує його як тип, значення якого можуть упорядковуватися. Рядки, наприклад, можуть бути розташовані за абеткою; будь-який рядок можна порівняти з ін­ шими рядками, щоб визначити, який з них повинен стояти першим в

40

упорядкованому списку. IComparable класи реалізують метод Сомраге^.

IEnumerable інтерфейс дозволяє використовувати інструкцію foreach, щоб перебирати елементи рядка як набір символів.

ICloneable об'єкти можуть створювати нові екземпляри об'єктів з тими ж самими значеннями, як і первісний варіант. У цьому випадку можливо клонувати рядок таким чином, щоб створити нову з тим же самим набором символів, як і в оригіналі. ICloneable класи реалізують метод Clone().

IConvertible класи реалізують методи для полегшення перетво­ рення об'єктів класу до інших вбудованих типів, наприклад ToInt32 (), ToDouble (), ToDecimal() і т.д.

3.2.2 Створення рядків

Найбільш загальний спосіб створення рядків полягає в тому, щоб установити рядок символів, відомий як строковий літерал, зада­ ний користувачем, у змінну типу string:

string newstring = "Новий рядок";

Зазначений рядок може містити службові символи типу «\п» або «\t», які починаються з похилої риски (\) і використовуються для вка­ зівки перекладу рядка або вставки символу табуляції. Оскільки похила риска вліво самостійно використовується в деяких синтаксисах рядків, типу URL або шляхів каталогу, то в такому рядку похилій рисі вліво повинен передувати інший символ похилої риси вліво.

Рядки можуть також бути створені за допомогою дослівного за­ пису рядка. Такі рядки повинні починатися із символу (@), який по­ відомляє конструктор String, що рядок повинен використовуватися дослівно, навіть якщо він включає службові символи. У дослівнім ви­ значенні рядка похилі риси вліво й символи, які ідуть за ними, просто розглядаються як додаткові символи рядка. Таким чином, наступні два визначення еквівалентні:

String stringOne = "\\\\Mysystem\\Mydirectory\\MyFile.txt"; String stringTwo=@"\\Myfileem\MyDi rectory\MyFile.txt";

У першому рядку використовується звичайний літерал рядка, так що символи похилої риси вліво (\) повинні дублюватися. Це озна­ чає, що для відображення (\) потрібно записати (\\). У другому рядку використовується дослівний літеральний рядок, так що додаткова по­ хила риса вліво не потрібна.

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