Материал: Розробка програмного забезпечення для реєстрації волонтерів на події

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Volunteer graham=new Volunteer(“Graham”,”Hill”,”UK”,14);emerson=new Volunteer(“Emerson”,”Fittipaldi”,”Brazil”,14);mario=new Volunteer(“Mario”,”Andretti”,”USA”,12);<Volunteer> volunteer= new List<Volunteer> (20) {graham,emerson,mario};.Add(new Volunteer (“Michael”,”Nigtson”,”Germany”,91));.Add(new Volunteer (“Mika”,”Hakkinen”,”Finland”,20));

Доступ до елементів здійснюється за допомогою індексатора, якому ми передаємо номер елемента. Перший елемент доступний по індексу 0. Специфікуючи volunteer[3], ми отримаємо четвертий елемент списку.

3.3 Запис і читання з файлу

В C# є класи, які забезпечують операції читання/запису для файлів. Звичайно найбільш поширеним типом файлу є дисковий файл. На рівні операційної системи всі файли розглядаються як двійкові файли. В С# підтримуються методи читання і запису байтів при роботі з файлами. Тому досить поширені операції читання/запису файлів при здійсненні яких використовуються потоки байтів. У C# забезпечується закріплення файлового потоку,який орієнтується на використання байтів в символьний потік. Операції з символьними файлами зручні,якщо потрібно зберігати текст. Потік-це абстрактне представлення послідовних пристроїв, які забезпечують збереження даних і доступ до них(по одному байту в кожний конкретний момент часу).В якості таких пристроїв можуть виступати розміщений на диску файл, принтер, область пам’яті будь-який інший об’єкт який допускає послідовне зчитування і запис інформації.

В просторі імен System.IO зберігаються класи, призначені для зчитування і записі даних в файли. Класи:

File - містить статичні методи для маніпуляції файлами(створення, копіювання, видалення);

Directory- містить статичні методи для маніпуляції директоріями.

Path- статичний клас, «шлях»;

FileInfo- не містить статичні методи, які відповідають фізичному файлу, в багато чому дублюють функціональність File;

Класи Stream дозволяють здійснювати послідовний доступ до файлів, і в них не передбачена можливість роботи з вказівниками.

StreamWriter-дозволяє здійснювати запис у файл символів і стрічок і самостійно виконувати всі необхідні дії.

StreamReader- здійснює читання символьних даних із потоку і їх дії.[3]

4. Реалізація програми мовою С# з використанням ООП

.1 Інтерфейс програми

При запуску програми ми бачимо наступну форму:


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


4.2 Демонстрація можливостей програми. Тестовий приклад

Дана програма здійснює реєстрацію волонтера на подію.

Після запуску програми добавляємо вікно «Перегляд списку волонтерів». На даній формі ми бачимо таблицю, яка містить чотири поля: «І’мя», «Вік», «Стать», «Номер волонтера», а також чотири кнопки: «Додати волонтера», «Редагувати волонтера», «Записати список волонтерів у файл», «Зчитати список волонтерів із файлу». При натисненні кнопки «Додати волонтера» ми за допомогою допоміжної форми «Введення даних про волонтерів» додаємо волонтерів. При необхідності ми можемо редагувати дані про волонтера за допомогою кнопки «Редагувати волонтера», перед тим виділивши рядок,який потрібно редагувати. Збереження даних у файл здійснюється за допомогою кнопки «Записати список волонтерів у файл», а також для зчитування даних з файлу потрібно натиснути кнопку «Зчитати із файлу список волонтерів». При добавленні форми «Перегляд списку подій» бачимо таблицю, яка містить наступні поля: «Назва», «Місце проведення фестивалю», «Дата», «Код». Для даної форми функції додавання, редагування події а також збереження даних здійснюється аналогічно до попередньої форми.

При добавленні форми «Відображення реєстрації волонтерів на події» ми бачимо таблицю з двома полями: «Волонтер», «Подія», а також копку «Зареєструвати волонтерів на події». При натисненні кнопки появляється допоміжна форма «Реєстрація волонтера на подію», яка містить два поля «Номер волонтера», «Код події», а також кнопку «ОК». При натисненні кнопки у попередню форму відображаються дані «Ім’я волонтера» і «Назва події».

Тестовий приклад.

Для прикладу зареєструємо волонтерів: Василь Петренко, Олена Вовк, Ігор Антипський, Степан Оленчук на події «Фестиваль радості», «День смутку», фестиваль «Захід», «Фестиваль забутого кіно» відповідно.


Вводимо дані про волонтера і добавляємо в таблицю при натисненні кнопки «ОК».

Коли всі дані введено ми можемо редагувати деякі дані виділивши перед цим певний рядок і натиснувши кнопку редагувати.


Це саме робимо для введення даних про події.

Реєстрація волонтера на подію.


Відображення зареєстрованих волонтерів на події.

Висновки

В ході виконання роботи мовою С# в середовищі Visual Studio2008 реалізовано програму обліку даних про волонтерів та подій, на які вони зареєстровані. Також продемонстровано на прикладі можливості об’єктно-орієнтованого програмування.

Результати:

·        Створено форми для введення даних про волонтерів та події.

·        Здійснено запис та зчитування даних у файл (з файлу).

·        Здійснено реєстрацію волонтера на подію і її відображення на формі.

Варто відзначити, що:

·        Технологія Windows Forms дає можливість створювати зручний інтерфейс користувача.


Список використаних джерел

1. С#: Пер. С англ./Дейтел Х.,Дейтел П., Листфилд Дж., Нието Т., Йегер Ш., Златкина М. - СПб.: БХВ-Петербург, 2006. - 1056 с.:ил.

2. Джеффри Рихтер - CLR via C#. Программирование на платформе Microsoft.NET Framework 2.0 на языке С#. Мастер-класс./Пер. с англ. - М.: Издательство «Русская Редакция»; СПб.: Питер, 2007. - 656 стр. : ил.

. Кристиан Нейгел, Билл Ивьен, Джей Глинн, Карли Уотсон, Морган Скиннер - С# 2008 и платформа.Net 3.5 для профессионалов.

. Герберт Шилдт - C# Учебный Курс. - Питер, Москва, 2003.

. Симон Робинсон, Олли Корнес, Джей Глинн, Бартон Харвей, Крейг Макквин, Джерод Моемека, Кристиан Нагель, Морган Скиннер, Карли Ватсон - С# для профессионалов Том I.

. Симон Робинсон, Олли Корнес, Джей Глинн, Бартон Харвей, Крейг Макквин, Джерод Моемека, Кристиан Нагель, Морган Скиннер, Карли Ватсон - С# для профессионалов Том II.

. А.В. Фролов, Г.В. Фролов - Язык С#. Самоучитель. - М.: Диалог-Мифи, 2003.-560с.

. http://ru.wikipedia.org/wiki/Виртуальный_метод

.http://uk.wikipedia.org/wiki/Успадкування_(програмування))

.http://www.rsdn.ru/article/dotnet/datagridview20.xьl

Додаток

Текст програми

Клас Volunteer.

public class Volunteer

{int id;string name;int age;string male;int Id

{{ return id; }{ id = value; }

}string Name

{{ return name; }{ name = value; }

}int Age

{{ return age; }{ age = value; }

}string Male

{{ return male; }{ male = value; }

}Volunteer(string name, int old, string male, int id)

{.Name = name;.Age = old;.Male = male;.Id = id;

}

}

Клас Happening.

public class Happening

{int code;string date;string venue;string name;int Code

{{ return code; }{ code = value; }

}string Name

{{ return name; }{ name = value; }

}string Date

{{ return date; }{ date = value; }

}string Venue

{{ return venue; }{ venue = value; }

}Happening()

{.Code = 0;.Date = "";.Venue = "";.Name = "";

}Happening(string eventVenue, string eventName, int eventCode, string eventDate)

{.Code = eventCode;.Name = eventName;.Venue = eventVenue;.Date = eventDate;

}

}

Клас MainViewForm

private void tsAddVolunteer_Click(object sender, EventArgs e){}//додавання форми для перегляду списку волонтерів.void tsAddHappening_Click(object sender, EventArgs e){}//додавання форми для перегляду списку подій.void aboutToolStripMenuItem_Click(object sender, EventArgs e){}//викликає форму «Про програму».void toolStripButton1_Click(object sender, EventArgs e){}//додавання форми відображення реєстрації волонтера на подію.

Клас VolunteerList

public VolunteersList() {}// Конструктор в якому створюються рядки і додаються до таблиці волонтерів.void TabVolunteerAddRow(string nameParam, string maleParam, int ageParam, int idParam){}// створюємо стовпці таблиці.void ColumnPropSet(DataGridView DGV){}// встановлюємо властивості стовпців.void WriteTabV() {}//запис таблиці у файл.void ReadTabV(){}//зчитування даних із таблиці.void bAddVolunteer_Click(object sender, EventArgs e){}//додавання волонтера.void changeVolunteer_Click(object sender, EventArgs e){}//редагування волонтера.void TabVolunteerChangeRow(DataGridViewRow currentRow, string nameParametr, string maleParametr, int ageParametr, int idParametr){}//зміна значення стовпців при редагуванні даних.

Клас HappeningList

public HappeningsList(){}//конструктор в якому створюються рядки таблиці подій і додаються до таблиці.void TabHappeningAddRow(string venueParam, string nameParam, string dataParam, int codeParam){}// створюємо стовпці таблиці.void ColumnPropSet1(DataGridView DGH){}// встановлюємо властивості стовпців.void WriteTabH(){}//запис таблиці у файл.void ReadTabH(){}//зчитування даних із таблиці.void bAddHappening_Click(object sender, EventArgs e){}// додавання події.void changeEvent_Click(object sender, EventArgs e){}// редагування подіїvoid TabHappeningChangeRow(DataGridViewRow currentRow, string venueParam, string nameParam, string dataParam,int codeParam)// зміна значення стовпців при редагуванні даних про подію.

Клас Registration

public Registration()//конструктор без параметрів.

{();

}void button1_Click(object sender, EventArgs e)//зчитування введених //даних з форми.

{Id = int.Parse(rId.Text);Code = int.Parse(rCode.Text);= Id;= Code;

}

Клас Assignment

public Assignment(){}//конструктор, в якому створюється таблиця і додаються рядки.void TabAssignmentAddRow(String NewVolunteer, string NewHappening){}//додавання стовпців таблиці.void ColumnPropSet2(DataGridView DGH){}//встановлення значень стовпців.void button1_Click(object sender, EventArgs e){}//реєстрація волонтера на подію.

Клас FormRegistrationVolunteers

public FormRegistrationVolunteers()

{();

}//конструктор без параметрів.void button1_Click(object sender, EventArgs e) //зчитування даних //введених на формі.

{ number = new VolunteersList();NameParametr = tName.Text;MaleParametr = tMale.Text;AgeParametr = int.Parse(tAge.Text);= new Volunteer(NameParametr, AgeParametr, MaleParametr, number.countV);

}

Клас FormRegistrationHappeningFormRegistrationHappening()//конструктор без параметрів.

{();

}void button1_Click(object sender, EventArgs e)//зчитування даних з //форми.

{= new HappeningsList();nameParametr = tName.Text;venueParametr = tVenue.Text;dataParametr = tDate.Text;= new Happening(venueParametr, nameParametr, number.countH, dataParametr);

}