ЗМІСТ
ВСТУП 4
РОЗДІЛ 1. ТЕОРЕТИЧНІ ВІДОМОСТІ 5
1.1. Середовище програмування Visual Studio C# 5
1.2. Мова програмування C# 7
1.3. Теоретичні відомості до проекту «Бронювання квитків на концерт» 10
1.3.1. Застосування компонента TextBox 10
1.3.2. Застосування елемента ListBox 11
1.3.3. Об’єкт ComboBox 12
1.3.4. Елемент DataGridView 13
РОЗДІЛ 2. ПРАКТИЧНА РЕАЛІЗАЦІЯ 14
2.1. Завдання проекту “ Бронювання квитків на концерт ” 14
2.2. Блок-схема 15
2.3. Вихідний код програми 16
2.4. Опис коду програми 19
ВИСНОВОК 23
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 24
ДОДАТКИ
ВСТУП
Станом на сьогодні, розвиток інформаційних технологій суттєво пришвидшується. Закономірним є те, що розроблено безліч стандартів, протоколів, форматів для зберігання та передачі інформації між комп’ютерами. В даний час існує велика кількість програм для полегшення нашого життя. Логічно, що особливу роль серед них займають програми для замовлення різноманітних послуг.
Завдяки використанню сучасних засобів візуальної розробки програмного забезпечення, можливим стало швидке створення власних програм, які дозволяють бронювати квитки на концерт, а також автоматично записувати дані замовлення у таблиці.
Процес розробки включає в себе усі етапи створення відповідної програми.
Розробка програми включає в себе такі етапи:
визначення призначення програми;
розробка дизайну програми;
розробка коду.
У даній роботі розглядається створення програми “Бронювання квитків на концерт ” за допомогою інтегрованого середовища програмування Microsoft Visual Studio 2017 та мови програмування C#.
РОЗДІЛ 1. ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1. Середовище програмування Visual Studio C#
Microsoft Visual Studio – лінійка продуктів компанії Майкрософт, які включають інтегроване середовище розробки програмного забезпечення і ряд інших інструментальних засобів.
Середовище розробки Visual Studio представляє собою повний набір інструментів для створення як настільних додатків, так і корпоративних веб-додатків для спільної роботи груп. Використовуючи ефективні інструменти розробки Visual Studio, засновані на використанні компонентів та інші технології, можна не тільки створювати ефективно працюючі настільні додатки, але й спрощувати спільне проектування, розробку і розгортання корпоративних рішень.
Visual Studio включає один або декілька компонентів з наступних:
Visual Basic.NET
Visual C++
Visual C#
Visual F#
Як і більшість сучасних програм, середовище розробки Visual Studio містить меню та набір інструментальних панелей:
У лівій частині середовища розробки присутній елемент управління із позначкою вікна ToolBox.
У правій частині екрана знаходиться вікно Solution Explorer. В ньому можна побачити, з яких проектів складається рішення і які файли входять до складу цих проектів.
Нижче знаходиться вікно властивостей (Properties). Це вікно містить список атрибутів об’єкта, виділеного в даний момент.
У Visual Studio C# можна працювати з такими видами проектів:
Windows Forms Application – застосування на формах, класична програма для виконання під ОС Windows.
WPF Application – застосування на формах на основі нової технології від компанії Майкрософт Windows Presentation Foundation.
Console Application – консольна програма.
Class Library – бібліотека класів .NET.
WPF Browser Application – WPF-застосування, що виконується в вікні веб-браузера.
Empty Project – порожній проект.
Після створення проекту отримаємо такий код:
Using System;
Using System.Collections.Genetic;
Using System.Linq;
Using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}
Для впорядкування і оформлення коду у мові програмування C# використовуються класи. Весь виконуваний код програми повинен міститися в класі.
1.2. Мова програмування C#
C# є дуже близьким родичем мови програмування Java. Мова Java була створена компанією Sun Microsystems, коли глобальний розвиток інтернету поставив задачу роззосереджених обчислень. Взявши за основу популярну мову C++, Java виключила з неї потенційно небезпечні речі (типу вказівників без контролю виходу за межі). Для роззосереджених обчислень була створена концепція віртуальної машини та машинно-незалежного байт-коду, свого роду посередника між вихідним текстом програм і апаратними інструкціями комп'ютера чи іншого інтелектуального пристрою.
Java набула чималої популярності, і була ліцензована також і компанією Microsoft. Але з плином часу Sun почала винуватити Microsoft, що та при створенні свого клону Java робить її сумісною виключно з платформою Windows, чим суперечить самій концепції машинно-незалежного середовища виконання і порушує ліцензійну угоду. Microsoft відмовилася піти назустріч вимогам Sun, і тому з'ясування стосунків набуло статусу судового процесу. Суд визнав позицію Sun справедливою, і зобов'язав Microsoft відмовитися від позаліцензійного використання Java.
У цій ситуації в Microsoft вирішили, користуючись своєю вагою на ринку, створити свій власний аналог Java, мови, в якій корпорація стане повновладним господарем. Ця новостворена мова отримала назву C#. Вона успадкувала від Java концепції віртуальної машини (середовище .NET), байт-коду (MSIL) і більшої безпеки вихідного коду програм, плюс врахувала досвід використання програм на Java.
Нововведенням C# стала можливість легшої взаємодії, порівняно з мовами-попередниками, з кодом програм, написаних на інших мовах, що є важливим при створенні великих проектів. Якщо програми на різних мовах виконуються на платформі .NET, .NET бере на себе клопіт щодо сумісності програм (тобто типів даних, за кінцевим рахунком).
Станом на сьогодні C# визначено флагманською мовою корпорації Microsoft, бо вона найповніше використовує нові можливості .NET. Решта мов програмування, хоч і підтримуються, але визнані такими, що мають спадкові прогалини щодо використання .NET.
C# розроблялась як мова програмування прикладного рівня для CLR і тому вона залежить, перш за все, від можливостей самої CLR. Це стосується, перш за все, системи типів C#. Присутність або відсутність тих або інших виразних особливостей мови диктується тим, чи може конкретна мовна особливість бути трансльована у відповідні конструкції CLR. Так, з розвитком CLR від версії 1.1 до 2.0 значно збагатився і сам C#; подібної взаємодії слід чекати і надалі. (Проте ця закономірність буде порушена з виходом C# 3.0, що є розширеннями мови, що не спираються на розширення платформи .NET.) CLR надає C#, як і всім іншим .NET-орієнтованим мовам, багато можливостей, яких позбавлені «класичні» мови програмування. Наприклад, збірка сміття не реалізована в самому C#, а проводиться CLR для програм, написаних на C# точно так, як і це робиться для програм на VB.NET, J# тощо.
Специфікація C# визначає мінімальний набір бібліотек типів і класів, на який має розраховувати компілятор. На практиці, C# найчастіше використовується з якоюсь реалізацією Common Language Infrastructure (CLI), яка стандартизована як ECMA-335 Common Language Infrastructure (CLI).
C# стандартизований в ECMA та ISO.
У серпні 2000 Microsoft Corporation, Hewlett-Packard та Intel Corporation виступили спонсорами стандартизації специфікації мови C#, а також Common Language Infrastructure (CLI) в організації зі стандартизації ECMA International. У грудні 2001 ECMA випустила ECMA-334 Специфікація мови C#. C# стала стандартом ISO у 2003 (ISO/IEC 23270:2006 — Information technology—Programming languages—C#). До того ECMA ще встигла адоптувати еквівалентну специфікацію як другу редакцію C# у грудні 2002.
У червні 2005 ECMA схвалила редакцію 3 специфікації C#, і відредагувала ECMA-334. Доповнення включали часткові класи, анонімні методи, тип null, і генерики (аналоги шаблонів C++).
У липні 2005 ECMA подала стандарти і відповідні технічні умови на ISO/IEC JTC 1 через пришвидшену процедуру (Fast-Track). Цей процес звичайно займає 6-9 місяців.
Приклад “Hello World!”:
using System;
class ExampleClass
{
static void Main()
{
Console.WriteLine("Hello, world!");
Console.ReadKey();
}
}
1.3. Теоретичні відомості до проекту «Бронювання квитків на концерт»
1.3.1. Застосування компонента TextBox
Використовується для введення користувачем одно рядкових текстів. Може використовуватися для відображення тексту. Цей компонент є візуальний.
У компонентах TextBox вводиться і виводиться текст, який міститься у властивості Text. Цю властивість можна встановлювати в процесі проектування або задавати програмно. Вирівнювання тексту неможливо. Перенесення рядків теж неможливе. Текст, що не поміщається по довжині у вікно, просто зрушується і користувач може переміщатися по ньому за допомогою курсору.
Маємо змогу на скріншоті програми побачити,як за допомогою TextBox вводиться текст.
/
Рисунок 1.3.1 Комонент TextBox
1.3.2. Застосування елемента ListBox
Елемент ListBox представляє собою простий список. Ключовою властивістю цього елемента являється властивість Items, яке зберігає набір всіх елементів списку.
Елементи в список можуть добавлятись як під час розробки, так і програмним методом. В Visual Studio в вікні Properties для елемента ListBox ми можемо знайти властивість Items. Після натискання на нього нам відобразиться вікно для додавання елементів в список.
В пусте поле ми вводимо по одному елементу списку – по одному на кожен рядок. Після цього всі додані елементи з’являться в списку і ми зможемо ними керувати.
Для програмного додавання елементів в ListBox потрібно використовувати метод Add, наприклад: listBox1.Items.Add(“Новий елемент”);. При використанні цього методу кожен елемент додається в кінець списку.
Можна додати відразу декілька елементів, наприклад, масив. Для цього використовується метод AddRange.
1.3.3. Об’єкт ComboBox
Відображає поле, яке редагується разом з списком ListBox і дозволяє користувачу вибрати значення з списку або ввести новий текст. За замовчуванням об’єкт ComboBox відображає поле, яке редагується з прихованим списком, що розкривається. Властивість DropDownStyle оприділяє стиль відображення поля зі списком.
Для того, щоб додати об’єкти в список під час виконання, потрібно назначити масив посилань на об’єкти за допомогою методу AddRange. Після цього в списку для кожного об’єкта буде відображене значення рядка за замовчуваннями. Окремі об’єкти можна додати за допомогою методу Add.
Крім функцій відображення та вибору, ComboBox також реалізує можливості, які дозволяють ефективно добавляти елементи в ComboBox і виконувати пошук тексту в елементах списку. Методи FindString та FindStringExact дозволяють знайти в списку елемент, який містить певний рядок пошуку.
Можемо побачити компонент ComboBox ,який має функцію відображати дані списком. Це дуже зручно для користувача,який має змогу побачити список і вибрати з нього.
/
Рисунок 1.3.3.1 Компонент ComboBox
1.3.4. Елемент DataGridView
Елемент керування DataGridView підтримує стандартну модель прив’язки даних Windows Forms, яка допускає прив’язку до різноманітних джерел даних. Даний елемент керування представляє собою таблицю для відображення даних, яка налаштовується. DataGridView допускає налаштування комірок, рядків, стовпців та границь, зміну кольору за допомогою використання певних властивостей.
Можна використовувати елемент керування DataGridView для відображення даних разом з джерелом базових даних, або без нього. Не вказуючи джерело даних, можна створити стовпці та рядки, які містять дані, та додати їх безпосередньо в елемент DataGridView за допомогою властивостей Rows та Columns.
У програмі стовпці прив’язані до даних,які користувач вводить в момент бронювання квитка.Ці дані можливо роздрукувати.
/
Рисунок 1.3.4.1 Елемент керування DataGridView
РОЗДІЛ 2. ПРАКТИЧНА РЕАЛІЗАЦІЯ
2.1. Завдання проекту “Бронювання квитків на концерт”
Розробити проект “Бронювання квитків на концерт” у середовищі візуального програмування Visual Studio C#. . У кінцевому результаті проект має виглядати так:
/
Рисунок 2.1.1 Вигляд програми Бронювання квитків
2.2. Блок-схема
/
Рисунок 2.2.1 Блок-схема програми
2.3. Вихідний код програми
Код файлу Form1.cs:
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;
using DGVPrinterHelper;
namespace TicketSale
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
label5.Hide();
textBox5.Hide();
radioButton1.Checked = true;
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
label5.Hide();
textBox5.Hide();
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked == true) {
label5.Visible = true;
textBox5.Visible = true;
}
}
private void button2_Click(object sender, EventArgs e)
{
string whereof = comboBox2.Text;
string where = comboBox3.Text;
string count = textBox3.Text;
string dateSortie = textBox4.Text;
string dateArrival = textBox5.Text;
string clas = comboBox1.Text;
dataGridView1.Rows.Add(whereof, where, count, dateSortie, dateArrival, clas);
}
private void button3_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
}
private void button4_Click(object sender, EventArgs e)
{
int ind = dataGridView1.SelectedCells[0].RowIndex;
dataGridView1.Rows.RemoveAt(ind);
}
private void button5_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
DGVPrinter printer = new DGVPrinter();
printer.Title = "Чек AeroSvit";
printer.SubTitle = "Білети на концерт ";
printer.SubTitleFormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoClip;
printer.PageNumbers = true;
printer.PageNumberInHeader = false;
printer.PorportionalColumns = true;
printer.HeaderCellAlignment = StringAlignment.Near;
printer.Footer = "AeroSvit";
printer.FooterSpacing = 15;
printer.PrintDataGridView(dataGridView1);
}
}
}
Код файлу Program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TicketSale
{
static class Program
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
2.4. Опис коду програми
Дана програма, “Бронювання квитків на концерт”, містить зображення, текст, різного виду дані та використовує форми, нам необхідно підключити такі бібліотеки::
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;
Для створення сталого випадаючого списку використовується об’єкт ComboBox. Елемент ComboBox утворює випадающий список і поєднує функціональність компонентів ListBox і TextBox. Для зберігання елементів списку в ComboBox також призначена властивість Items. Код його створення та заповнення даними:
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Items.AddRange(new object[] {
"Океан Ельзи",
"Бумбокс",
"Скрябін",
"Тартак",
this.comboBox1.Location = new System.Drawing.Point(114, 13);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(148, 21);
this.comboBox1.TabIndex = 1;
Натиснемо на властивість Items і нам відкриється вікно для додавання елементів ComboBox:
/
Рисунок 2.4.3 Властивість Items
/
Рисунок 2.4.2 Випадаючий список об’єкту ComboBox
Код, який використовується для повного очищення таблиці замовлень квитків:
private void button3_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
}
В даній програмі також реалізовано можливість видалення конкретного запису з таблиці:
private void button4_Click(object sender, EventArgs e)
{
int ind = dataGridView1.SelectedCells[0].RowIndex;
dataGridView1.Rows.RemoveAt(ind);
}
На основі введених даних автоматично формується таблиця на основі компонента dataGridView
private void button2_Click(object sender, EventArgs e)
{
string whereof = comboBox2.Text;
string where = comboBox3.Text;
string count = textBox3.Text;
string dateSortie = textBox4.Text;
string dateArrival = textBox5.Text;
string clas = comboBox1.Text;
dataGridView1.Rows.Add(whereof, where, count, dateSortie, dateArrival, clas);
}
/
Рисунок 2.4.2 Заповнена даними таблиця
Код для друку чеку за натисканням кнопки (дані беруться з компоненту DataGridView) :
private void button1_Click(object sender, EventArgs e)
{
DGVPrinter printer = new DGVPrinter();
printer.Title = "Чек AeroSvit";
printer.SubTitle = "Продаж авіабілетів";
printer.SubTitleFormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoClip;
printer.PageNumbers = true;
printer.PageNumberInHeader = false;
printer.PorportionalColumns = true;
printer.HeaderCellAlignment = StringAlignment.Near;
printer.Footer = "AeroSvit";
printer.FooterSpacing = 15;
printer.PrintDataGridView(dataGridView1);
}
}
}
/
Рисунок 2.4.1 Меню вибору принтера для друку чеку
Свою програму я зробив з унікальним дизайном, який відрізняється від інших програм.
Із властивістю Cursor ,я поміняв значок курсору, на формі курсор із стрілочки білої міняється в чорну.
/
Риунок 2.4.2 Властивості курсора
За домогою властивості Icon ,змінив іконку програми.
/
Рисунок 2.4.3 Іконка програми
ВИСНОВОК
В даній курсовій роботі було розроблено програму «Бронювання квитків на концерт». Для розробки програми було використано інтегроване середовище програмування Visual Studio 2017 і мову програмування С#. Головною перевагою даного середовища програмування є швидкість розробки програмного забезпечення, завдяки наявності візуальних компонентів проектування програм, таких, як форми і набору візуальних і невізуальних компонентів, що володіють багатим функціоналом.
В ході проектування програми було прийнято рішення про реалізацію друку квитка безпосередньо з програми. Був розроблений приблизний алгоритм роботи кожної з частин.
Заключним етапом стала реалізація програми в середовищі розробки програмного забезпечення Visual Studio 2017. Програма має необхідну функціональність – вибір класу, пункту відправлення та пункту призначення, кількості пасажирів, введення цих даних в компонент dataGridView та друк чеків.
Для візуального представлення програми були використані компоненти Button, Label, TextBox, ListBox, dataGridView.
ВИКОРИСТАНА ЛІТЕРАТУРА
Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C#, 2-е изд. / Пер. с англ. – М.: Издательства Бином, СПб.: Невский диалект, 1998. – 560 с.
Вирт Н. Алгоритмы и структуры данных. – М.: Мир, 1989.
Немнюгин С.А. Уроки C#– СПб.: Питер, 2000.
Тейксейра, Стив, Пачеко, Ксавье. C#. "Руководство разработчика".–СПб:Вильямс, 1999.–912с.
Осипов Д. . Профессиональное программирование – Москва,2006 – 1056с.
ІНТЕРНЕТ – ДЖЕРЕЛА
Стиллмен Э., Head First. Изучаем C#. / Грин Д. 3-е изд.- Санкт Петербург, 2016. – 816 с. – ISBN: 978-5-496-00867-9.
Зиборов В.В. - Visual С# 2012 на примерах. / БХВ-Петербург, 2013. – 475 с. – ISBN: 978-5-9775-0888-9.
Михаил Фленов. Библия C#. / БХВ-Петербург, 2011. – 560 с. – ISBN: 978-5-9775-0655-7.
Эндрю Троелсен. Язык программирования C# 2010 и платформа .NET 4. / Вильямс, 2011. – 1392 с. – ISBN: 978-5-8459-1682-2.
C Sharp. [Елекронний ресурс]: Режим доступу: https://uk.wikipedia.org/wiki/C_Sharp (дата звернення 09.05.2017).
Додатки
ДОДАТОК А
Вигляд програми Бронювання квитків на концерт
/
ДОДАТОК Б
Блок-схема
/
ДОДАТОК В
Вихідний код програми
Код файлу Form1.cs:
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;
using DGVPrinterHelper;
namespace TicketSale
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
label5.Hide();
textBox5.Hide();
radioButton1.Checked = true;
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
label5.Hide();
textBox5.Hide();
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked == true) {
label5.Visible = true;
textBox5.Visible = true;
}
}
private void button2_Click(object sender, EventArgs e)
{
string whereof = comboBox2.Text;
string where = comboBox3.Text;
string count = textBox3.Text;
string dateSortie = textBox4.Text;
string dateArrival = textBox5.Text;
string clas = comboBox1.Text;
dataGridView1.Rows.Add(whereof, where, count, dateSortie, dateArrival, clas);
}
private void button3_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
}
private void button4_Click(object sender, EventArgs e)
{
int ind = dataGridView1.SelectedCells[0].RowIndex;
dataGridView1.Rows.RemoveAt(ind);
}
private void button5_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
DGVPrinter printer = new DGVPrinter();
printer.Title = "Чек AeroSvit";
printer.SubTitle = "Білети на концерт ";
printer.SubTitleFormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoClip;
printer.PageNumbers = true;
printer.PageNumberInHeader = false;
printer.PorportionalColumns = true;
printer.HeaderCellAlignment = StringAlignment.Near;
printer.Footer = "AeroSvit";
printer.FooterSpacing = 15;
printer.PrintDataGridView(dataGridView1);
}
}
}
Код файлу Program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TicketSale
{
static class Program
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
ДОДАТОК Г
Властивість Items
/
ДОДАТОК Ґ
Випадаючий список об’єкту ComboBox
/
ДОДАТОК Д
Заповнена даними таблиця
/
ДОДАТОК К
Меню вибору принтера для друку чеку
/
ДОДАТОК М
Властивості курсора
/
ДОДАТОК Л
Іконка програми
/