Магазин побутової техніки

КУРСОВА РОБОТА

з дисципліни “Технологія програмування та створення програмних продуктів”

Тема “Магазин побутової техніки (б/у)”


ЗМІСТ

	_Toc261559728

	Вступ	3

		1. Теоретичні відомості	3

		1.1 Теоретичні відомості про побутову техніку	4

		1.2 Поняття бази даних	4

		2. Розробка програми (компоненту)	9

		2.1 Загальний опис програми (компоненту)	9

		2.2 Технічне завдання	9

		2.3 Діаграма «сутність-зв'язок»	12

		2.4 Діаграма потоків даних (DFD)	13

		2.5 Програма та методика тестування	13

		2.6 Інструкція користувача (інструкція підключення компонента)	14

	Висновок	16

	Перелік посилань	17

	Додаток А	18




Вступ



База даних - організована відповідно до певних правил і підтримувана в пам'яті комп'ютера сукупність даних, що характеризує актуальний стан деякої предметної області й використовувана для задоволення інформаційних потреб користувачів.

Головним завданням БД є гарантоване збереження значних обсягів інформації (т.зв. записи даних) та надання доступу до неї користувачеві або ж прикладній програмі. Таким чином БД складається з двох частин — збереженої інформації, та системи управління нею. З метою забезпечення ефективності доступу записи даних організовують як множину фактів (елемент даних).

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

	

	Теоретичні відомості про побутову техніку



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

Даний програмний продукт для якого треба розробити компонент являє собою телефонний довідник реалізований об’єктно-орієнтованою мовою С#. Довідник має інтуїтивно зрозумілий інтерфейс. Програмний продукт працює з базою даних.



		Поняття бази даних



База даних - організована відповідно до певних правил і підтримувана в пам'яті комп'ютера сукупність даних, що характеризує актуальний стан деякої предметної області й використовувана для задоволення інформаційних потреб користувачів.

Головним завданням БД є гарантоване збереження значних обсягів інформації (т.зв. записи даних) та надання доступу до неї користувачеві або ж прикладній програмі. Таким чином БД складається з двох частин — збереженої інформації, та системи управління нею. З метою забезпечення ефективності доступу записи даних організовують як множину фактів (елемент даних).

Структуровані та неструктуровані БД

Структуровані БД використовують структури даних, тобто структурований опис типу фактів за допомогою схеми даних, більш відомої як модель даних. Модель даних описує об'єкти та взаємовідносини між ними. Існує декілька моделей (чи типів) баз даних, основні: плоска, ієрархічна, мережна та реляційна. Приблизно з 2000 року більше половини БД використовують реляційну модель. 

До неструктурованих БД відносяться повнотекстові бази даних, які містять неструктуровані тексти статей чи книг у формі, що дозволяє здійснювати швидкий пошук (як наприклад вікіпедія).

Характеристика БД 

Часто зустрічається характеристика БД на основі певних параметрів або необхідних вимог, наприклад: значна кількість даних, незалежність даних, відкритий доступ до даних, підтримка транзакцій з гарантією відповідних властивостей, гарантована відсутність збоїв, одночасна робота з багатьма користувачами. З подальшим розвитком БД змінюються й ці вимоги та додаються нові, тому одностайності щодо повноти цієї характеристики немає.

Відомі два підходи до організації інформаційних масивів: файлова організація та організація у вигляді бази даних. Файлова організація передбачає спеціалізацію та збереження інформації, орієнтованої, як правило, на одну прикладну задачу, та забезпечується прикладним програмістом. Така організація дозволяє досягнути високої швидкості обробки інформації, але характеризується рядом недоліків. Характерна риса файлового підходу - вузька спеціалізація як обробних програм, так і файлів даних, що служить причиною великої надлишковості, тому що ті самі елементи даних зберігаються в різних системах. Оскільки керування здійснюється різними особами (групами осіб), відсутня можливість виявити порушення суперечливості збереженої інформації. Розроблені файли для спеціалізованих прикладних програм не можна використовувати для задоволення запитів користувачів, які перекривають дві і більше області. Крім того, файлова організація даних внаслідок відмінностей структури записів і форматів передання даних не забезпечує виконання багатьох інформаційних запитів навіть у тих випадках, коли всі необхідні елементи даних містяться в наявних файлах. Тому виникає необхідність відокремити дані від їхнього опису, визначити таку організацію збереження даних з обліком існуючих зв'язків між ними, яка б дозволила використовувати ці дані одночасно для багатьох застосувань. Вказані причини обумовили появу баз даних. Структури даних широко використовуються в різних інформаційних системах. У найширшому сенсі інформаційна система є програмним комплексом, функції якого полягають в підтримці надійного зберігання інформації в пам'яті комп'ютера, виконанні специфічних для даного застосування перетворень інформації або обчислень, наданні користувачам зручного і легко освоюваного інтерфейсу. Зазвичай об'єми інформації, з якими доводиться мати справу таким системам, достатньо великі, а сама інформація має достатньо складну структуру. Класичними прикладами інформаційних систем є банківські системи, системи резервування авіаційних або залізничних квитків, місць в готелях і т.д. Такі інформаційні системи, які в єдиному комплексі здійснюють зберігання, вибір і модифікацію постійно існуючої інформації називають базами даних (БД). Комплекс, що складається з технічних засобів і спеціальних програмних компонентів і забезпечує створення, використання і обслуговування БД, називається системою управління базами даних (СУБД). База даних може бути визначена як структурна сукупність даних, що підтримуються в активному стані та відображає властивості об’єктів зовнішнього (реального) світу. В базі даних містяться не тільки дані, але й описи даних, і тому інформація про форму зберігання вже не схована в сполученні "файл-програма", вона явним чином декларується в базі. База даних орієнтована на інтегровані запити, а не на одну програму, як у випадку файлового підходу, і використовується для інформаційних потреб багатьох користувачів. В зв'язку з цим бази даних дозволяють в значній мірі скоротити надлишковість інформації. Перехід від структури БД до потрібної структури в програмі користувача відбувається автоматично за допомогою систем управління базами даних (СУБД).

У ході розвитку СКБД виділилися три основних типи баз даних:

ієрархічні – перші промислові БД, що з’явились. Ієрархічна модель бази даних складається з об’єктів з покажчиками від батьківських об’єктів до нащадків, з’єднуючи разом зв’язану інформацію.

Ієрархічні бази даних можуть бути представлені як дерево, що складається з об’єктів різних рівнів. Верхній рівень займає один об’єкт, другий – об’єкти другого рівня й т.д.

Між об’єктами існують зв’язки, кожен об’єкт може містити в собі кілька об’єктів більше низького рівня. Такі об’єкти перебувають у відношенні предка (об’єкт більше близький до кореня) до нащадка (об’єкт більше низького рівня), при цьому можливо, коли об’єкт-предок не має нащадків або має їх декілька, тоді як в об’єкта-нащадка обов’язково тільки один предок. Об’єкти, що мають загального предка, називаються близнюками.

мережеві. Мережевий підхід до організації даних є розширенням ієрархічного. В ієрархічних структурах запис-нащадок повинна мати в точності одного предка; у мережевій структурі даних нащадок може мати будь-яке число предків. 

Мережева БД складається з набору записів і набору зв’язків між цими записами, а якщо говорити більш точно, з набору екземплярів кожного типу із заданого в схемі БД набору типів запису й набору екземплярів кожного типу із заданого набору типів зв’язку. –

реляційні – бази даних, засновані на реляційній моделі. Коротко особливості реляційної бази даних можна сформулювати в такий спосіб:

Дані зберігаються в таблицях, що складаються зі стовпців ("атрибутів") і рядків ("записів", "кортежів" );

На перетинанні кожного стовпця й рядка стоїть в точності одне значення;

У кожного стовпця є своє ім’я, що служить його назвою, і всі значення в одному стовпці мають один тип.

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

Рядки в реляційній базі даних неупорядковані. Упорядкування робиться у момент формування відповіді на запит.

Загальноприйнятим стандартом мови роботи з реляційними базами даних є мова SQL.



	
Розробка програми (компоненту)

	

	Загальний опис програми (компоненту)



В даній курсовій роботі представлений програмний продукт, який працює з базою даних. І має такі функції як додавання та видалення елементів з БД, пошук по різним критеріям (таким як тип побутової техніки, фірма виробник, модель, ціновий проміжок, проміжок виготовлення). 



		Технічне завдання



	Введення

	1.1 Найменування програми 

	Найменування програми: " Магазин побутової техніки (б/у)"

	1.2 Підстави для розробки

	Підстава для розробки є підготовка програмного продукту для виконання завдання курсової роботи по курсу «Технологія програмування і створення програмних продуктів»

1.3 Призначення розробки 

	Програма призначена для створення, управління вмістом бази даних, що містить наступні дані:

	а)Інформацію побутової техніки;

	б)Можливість проведення пошуку абонентів за типом побутової техніки, фірмою виробником, моделлю, за ціновим проміжком, проміжком виготовлення;

	в) Програма надає інтерфейс для управління вмістом бази.

	2. Вимоги до програми або програмного виробу

2.1	Вимоги до функціональних характеристик

Програма повинна забезпечувати можливість виконання перерахованих нижче функцій:

	а)Можливість додавання нової побутової техніки;

	б)Можливість пошуку по базі даних побутової техніки інформації про побутову техніку; 

	в)Можливість збереження даних про побутову техніку;

	г)Можливість зміни даних побутової техніки.

	2.2 Вимоги до надійності

	Відмови програми унаслідок некоректних дій користувача при взаємодії з програмою недопустимі. 

	3. Умови експлуатації

	3.1 Кліматичні умови експлуатації

	Кліматичні умови експлуатації, при яких повинні забезпечуватися задані характеристики, повинні задовольняти вимогам, що пред'являються до технічних засобів в частині умов їх експлуатації 

	3.2 Вимоги до кваліфікації і чисельності персоналу

	Кваліфікація персоналу повинна забезпечувати ефективне функціонування технічних і програмних засобів системи у всіх режимах роботи системи.

Мінімальна кількість персоналу, потрібного для роботи програми, повинна складати не менше 1 штатної одиниці – оператор .

4. Вимоги до інформаційної і програмної сумісності

	4.1 Вимоги до інформаційних структур і методів рішення

	Програма повинна забезпечувати багатокористувацький доступ до бази даних.

	4.2 Вимоги до початкових кодів і мов програмування

	До початкових кодів додаткові вимоги не пред'являються.

	Вимоги до мов програмування повинні бути сформовані на етапі проектування. 

	4.3 Вимоги до програмних засобів, використовуваних програмою

Вимоги до програмних засобів, використовуваних програмою, повинні бути сформовані на етапі проектування.

5. Вимоги до програмної документації

	5.1 Попередній склад програмної документації 

	Склад програмної документації повинен включати: 

	а)технічне завдання;

	б)програму і методики випробувань;

	в)керівництво оператора;

	6. Техніко-економічні показники 

	6.1 Економічні переваги розробки

Орієнтовна економічна ефективність не розраховуються. Аналогія не проводиться зважаючи на унікальність вимог, що пред'являються, до розробки.

7. Стадії і етапи розробки 

	7.1 Стадії розробки

	Розробка повинна бути проведена в дві стадії: 

	а)розробка технічного завдання; 

	б)робоче проектування; 

	7.2 Етапи розробки 

	На стадії розробки технічного завдання повинен бути виконаний етап розробки, узгодження і затвердження справжнього технічного завдання. 

	На стадії робочого проектування повинні бути виконані перераховані нижче етапи робіт:

	а)розробка програми; 

	б)розробка програмної документації; 

	в)випробування програми.

7.3 Зміст робіт по етапах

	На етапі розробки технічного завдання повинні бути виконані перераховані нижче роботи: 

	а)постановка завдання; 

	б)визначення і уточнення вимог до технічних засобів; 

	в)визначення вимог до програми;

	г)	визначення стадій, етапів і термінів розробки програми і документації на неї

	д)узгодження і затвердження технічного завдання. 

	На етапі розробки програми повинна бути виконана робота по програмуванню (кодуванню) і налагодження програми. 

	На етапі розробки програмної документації повинна бути виконана розробка програмних документів відповідно до вимог до складу документації На етапі випробувань програми повинні бути виконані перераховані нижче види робіт: 

	а)розробка, узгодження і твердження і методики випробувань; 

	б)проведення випробувань; 

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

	

		Діаграма «сутність-зв'язок»



Модель "сутність-зв'язок" (ER-модель) (англ. Entity-relationship model або entity-relationship diagram) - модель даних, яка дозволяє описувати концептуальні схеми за допомогою узагальнених конструкцій блоків. ER-модель - це мета-модель даних, тобто засіб опису моделей даних.

ER-модель зручна при проектуванні інформаційних систем, баз даних, архітектур комп'ютерних застосунків та інших систем (моделей). За допомогою такої моделі виділяють найсуттєвіші елементи (вузли, блоки) моделі і встановлюють зв'язки між ними.

Існує ряд моделей для представлення знань. Одним з найзручніших інструментів уніфікованого представлення даних, незалежного від реалізовуючого його програмного забезпечення, є модель "сутність-зв'язок" (entity - relationship model, ER - model).

Модель "сутність-зв'язок" ґрунтується на якійсь важливій семантичній інформації про реальний світ і призначена для логічного представлення даних. Вона визначає значення даних в контексті їх взаємозв'язку з іншими даними. Важливим для нас є той факт, що з моделі "сутність-зв'язок" можуть бути породжені всі існуючі моделі даних (ієрархічна, мережева, реляційна, об'єктна), тому вона є найбільш загальною. Будь-який фрагмент наочної області може бути представлений як безліч сутностей, між якими існує деяка безліч зв'язків.

ER-модель - це одна з найбільш простих візуальних моделей. Вона дозволяє осягнути структуру об'єкта «крупними мазками», в загальних рисах. Такий загальний опис структури називається ER-діаграмою або онтологією вибраної предметної області (area of interest).



		Діаграма потоків даних (DFD)



Діаграма потоків даних (англ. Data Flow Diagram) — графічне представлення «потоків» даних в інформаційній системі. Діаграма потоків даних також може використовуватись для представлення обробки даних (структурна розробка). Вважається звичайним, для розробника, з початку креслити ДПД рівня контексту, завдяки чому буде показано взаємодію системи із зовнішніми модулями. Ця ДПД рівня контексту, потім розширюється, для того, щоб показати розроблювану систему детальніше. Діаграми потоків даних містять чотири типи графічних елементів: процеси, що представляють собою трансформацію даних в рамках системи, що описується, репозиторії (сховище даних), зовнішні по відношенню до системи сутності та потоки даних між елементами трьох попередніх типів.

Реалізація



		Програма та методика тестування




У програму вводилися коректні дані. При цьому програма вела себе коректно



		Інструкція користувача (інструкція підключення компонента)



В даному програмному продукті (магазин побутової техніки) існує лише один вид користувача - оператор, котрий має всі права. Саме тому інструкція розроблена для операторів даного програмного продукта. 

Інструкція

Магазин побутової техніки (б/у)- програма для зберігання бази даних побутової техніки. В базу даних заноситься тип побутової техніки, фірма виробник, модель, заводський номер, дата виготовлення, ремонт, ціна, коментарі. Програмний продукт має вигляд невеликого вікна з полем для введення необхідних даних, таблицею зі списком побутової техніки, та функціональними кнопками. (Рис. 1). 





Рис.1 Головне вікно програми


Для додавання даних про нову побутову техніку в базу даних спочатку треба заповнити поля таблиці а потім натиснути на кнопку .

Для просмотра всіх абонентів котрі знаходяться в базі, необхідно у текстовому полі для введення призвища натиснути клавішу “Enter”. 

Для пошуку в поле, що знаходиться понизу вікна, вводяться необхідні дані та обирається критерій пошуку.

Щоб редагувати запис в базі даних,необхідно знайти побутову техніку, клацнувши по ньому у списку побутової техніки в таблиці, та ввівши необхідну інформацію клацнути на клавішу «Enter». Аналогічно робимо для видалення запису, тільки уже нажимаємо - .




Висновок



У курсовій роботі було реалізовано базу даних(програмний продукт) «Магазин побутової техніки (б/у)». А також забезпечено загрузку всіх елементів інтерфейсу з файлу.

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

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


Перелік посилань



	1. Деван Шеперд - Освой самостоятельно XML, 2-е издание : Пер. с англ. – М.: Издательский «Вильямс», 2002. – 432с.

2. Рэй Э. Изучаем XML. Пер. с англ. – СПб: Символ – Плюс, 2001. – 408с., ил.

3. XML. Справочник. Пер. с англ. – СПб: Символ – Плюс, 2002. – 576с., ил.

4. П. Ноутон, Г. Шилдт. Java: наиболее полное руководство. — СПБб.: Петербург, 2000.


Додаток А



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.IO;



namespace WindowsFormsApplication1

{

 public partial class FormMain : Form

 {

 public FormMain()

 {

 InitializeComponent();

 }



 private void складBindingNavigatorSaveItem_Click(object sender, EventArgs e)

 {

 this.Validate();

 this.складBindingSource.EndEdit();

 this.tableAdapterManager.UpdateAll(this.складDataSet);



 }


 private void FormMain_Load(object sender, EventArgs e)

 {

 // TODO: This line of code loads data into the 'складDataSet.Склад' table. You can move, or remove it, as needed.

 this.складTableAdapter.Fill(this.складDataSet.Склад);



 }



 private void toolStripTextBox1_Enter(object sender, EventArgs e)

 {

 if (toolStripTextBox1.Text == "Поиск...")

 {

 toolStripTextBox1.Text = null;

 }



 }



 private void toolStripTextBox1_TextChanged(object sender, EventArgs e)

 {

 try

 {

 if (toolStripComboBox1.Text.Length > 0 && toolStripTextBox1.Text.Length > 0)

 {

 if (toolStripComboBox1.Text != "Ценовой промежуток" && toolStripComboBox1.Text != "Временной промежуток")

 {

 toolStripTextBox1.Enabled = true;

 toolStripLabelExc.Visible = false;

 складBindingSource.Filter = "[" + toolStripComboBox1.Text + "]" + "like '" + toolStripTextBox1.Text + "*'";

 }

 else if (toolStripComboBox1.Text == "Ценовой промежуток")

 {

 toolStripTextBox1.Enabled = true;

 toolStripLabelExc.Visible = false;

 складBindingSource.Filter = "[" + "Цена" + "]" + toolStripComboBox2.Text + toolStripTextBox1.Text;

 }

 else if (toolStripComboBox1.Text == "Временной промежуток")

 {

 toolStripTextBox1.Enabled = false;

 toolStripLabelExc.Visible = false;

 }

 }

 else

 {

 складBindingSource.RemoveFilter();

 }

 }

 catch (Exception exc)

 {

 toolStripLabelExc.Visible = true;

 toolStripLabelExc.ForeColor = Color.Red;

 toolStripLabelExc.Text = exc.Message;

 }

 }



 private void toolStripComboBox2_TextChanged(object sender, EventArgs e)

 {

 if (toolStripTextBox1.Text.Length > 0)

 {

 складBindingSource.Filter = "[" + "Цена" + "]" + toolStripComboBox2.Text + toolStripTextBox1.Text;

 }

 }



 private void toolStripComboBox1_TextChanged(object sender, EventArgs e)

 {

 toolStripTextBox1.Text = null;



 if (toolStripComboBox1.Text == "Ценовой промежуток")

 {

 dateTimePicker1.Visible = false;

 dateTimePicker2.Visible = false;

 toolStripComboBox2.Visible = true;

 label1.Visible = false;

 label2.Visible = false;

 }



 else if (toolStripComboBox1.Text == "Временной промежуток")

 {

 toolStripComboBox2.Visible = false;

 dateTimePicker1.Visible = true;

 dateTimePicker2.Visible = true;

 label1.Visible = true;

 label2.Visible = true;

 }


 else

 {

 toolStripComboBox2.Visible = false;

 dateTimePicker1.Visible = false;

 dateTimePicker2.Visible = false;

 label1.Visible = false;

 label2.Visible = false;

 }

 }



 private void dateTimePicker1_ValueChanged(object sender, EventArgs e)

 {

 складBindingSource.Filter = "[" + "Дата производства" + "]" + " >= '" + dateTimePicker1.Value + "' AND " + "[" + "Дата производства" + "]" + "<= '" + dateTimePicker2.Value + "'";

 }



 private void dateTimePicker2_ValueChanged(object sender, EventArgs e)

 {

 складBindingSource.Filter = "[" + "Дата производства" + "]" + " >= '" + dateTimePicker1.Value + "' AND " + "[" + "Дата производства" + "]" + "<= '" + dateTimePicker2.Value + "'";

 }



 private void toolStripButton1_Click(object sender, EventArgs e)

 {

 SaveFileDialog sfd = new SaveFileDialog();

 sfd.Filter = "Текстовые документы|*.txt";

 String filename = null;


 if (sfd.ShowDialog() == DialogResult.OK)

 {

 filename = sfd.FileName;

 }



 try

 {



 StreamWriter sw = new StreamWriter(filename);



 foreach (DataRow dr in складDataSet.Tables["Склад"].Rows)

 {

 StringBuilder sb = new StringBuilder();



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

 {

 sb.Append(dr[i]);

 sb.Append(" ");

 }



 sb.Append("\r\n");



 sw.Write(sb);

 }



 sw.Close();

 }

 catch (Exception exc)

 {

 MessageBox.Show(exc.Message);

 }

 }



 private void складDataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e)

 {

 toolStripLabelExc.Visible = true;

 toolStripLabelExc.ForeColor = Color.Red;

 toolStripLabelExc.Text = e.Exception.Message;

 }



 private void складDataGridView_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)

 {

 toolStripLabelExc.Visible = false;

 }

 }

}