Смекни!
smekni.com

Разработка базы данных "Магазин товаров" (стр. 3 из 4)

• полнота - чем полнее база данных, тем вероятнее, что она содержит нужную информацию (однако, не должно быть избыточной информации);

• правильная организация - чем лучше структурирована база данных, тем легче в ней найти необходимые сведения;

• актуальность - любая база данных может быть точной и полной, если она постоянно обновляется, т.е. необходимо, чтобы база данных в каждый момент времени полностью соответствовала состоянию отображаемого ею объекта;

• удобство для использования - база данных должна быть проста и удобна в использовании и иметь развитые методы доступа к любой части информации.

Соответственно возможностям организации реляционных, иерархических и сетевых информационых структур, существуют и аналогичные виды баз данных.

2.3 Основные типы баз данных

1) Иерархические

2) Сетевые

3) Реляционные

Иерархические базы данных

Иерархические БД применялись в начале 60-х годов. Они построены в виде обычного дерева. Данные делятся на 2 категории: главные и подчинённые. Таким образом, один тип объекта является главным, а остальные, находящиеся на более низких ступенях иерархии, - подчинёнными.БД, организованные по такому принципу, удобно использовать в тех случаячх, когда информамция упорядочена соответствующим образом.

Сетевые базы данных

Сетевые БД начали применятся практически одновременно с иерархическими. В этих БД любой объект может быть как главным, так и подчинённым.

В использовании довольно сложно реализовать представление данных в таком виде, поэтому от этого типа тоже отказались.

Реляционные базы данных

Именно реляционные БД используются в повседневной жизни. (от англ. relation - отношение). Такой тип БД представляется собой несколько взаимосвязанных таблиц прямоугольной формы. В которых собственное есть поля, ключи, записи, аторибуты и прочее и прочее.


3. Действие программы

3.1 Структура программы

Программа состоит из 2 функций отвечающих за интерфейс программы и основной программы в которой выполняются все действия с базой данных.

Функции отвечающие за интерфейс программы предназначены для придания программе более приятного вида и для упрощения работы с ней. Это функция вывода сообщения об ошибке ввода и функция создания рамки в окне программы.

Функция вывода сообщения об ошибке ввода предназначена для упрощения работы с программой. Вообще сама «защита» от ошибки ввода защищает программу от совершения каких-либо ошибок, связанных с вводом. Если пользователь случайно введет неправильное значение то программа выдаст ему соответствующее сообщение и пользователь сможет исправить свою ошибку.

Функция создания рамки в окне программы предназначена для придания интерфейсу программы более «товарного» вида. Пользователю будет приятнее работать в красивом окне чем в простом черном окне.

Основная программа выполняет действия над записями: ввод - вывод данных, изменение записей, поиск записей, добавление записей к уже имеющимся.

3.2 Работа программы

Программа начинается с ввода первоначальных данных.

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

После ввода данных пользователю предлагается продолжить ввод данных или же завершить ввод.

В случае неправильного ввода программа выдает сообщение об ошибке:

Если пользователь вводит символ 'n' то программа переходит к окну ввода данных, Если же пользователь ввел символ 'q' то в окне появляется сообщение о завершении ввода.

Программа переходит к следующему окну

Далее пользователю предлагается выбрать дальнейшее действие.

При выборе вывода данных на экране появляется окно с введенными данными

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

Далее появляется окно в котором предлагается ввести определенные данные для поиска. После выполнения поиска при наличии данной записи она выводится на экран.

При выборе изменения данных на экране появится окно в котором пользователю предлагается ввести данные записи которую нужно изменить

Далее пользователю предлагается ввести новые данные.

Далее выводится сообщение об изменении записи.

При выборе выхода из программы программа завершает свое выполнение и заврывается.


Заключение

Данная работа выполнена на языке высокого уровня программирования в среде Borland С++, Первые версии языка программирования С++ (тогда он назывался "Си с классами") были разработаны в начале 80-х годов Бьярном Страуструпом, сотрудником знаменитой AT&T Bell Labs, где ранее были разработаны такие шедевры программирования, как операционная система UNIX и язык программирования Си. При написании и разработки программного обеспечения использовались различные возможности С++.

В ходе выполнения курсовой работы была разработана база данных группы студентов, с помощью которой можно добавить данные о студенте, просмотреть их , совершить поиск по определенным критериям студента.

Также данные записываются в файл на жесткий диск, тем самым мы сохраняем их. Уже поиск совершается в самом файле.

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


Список литературы

1. Е Зуев, А Кротов "Новые возможности языка Си++", PC Magazine/Russian Edition, #7, 1994.

2. В.Шелест. Программирование. 2002.

3. Г. Шилдт «Самоучитель С++» - СПб.:БХВ-Петербург. 2001. — 670с.

4. Карпов Б., Баранов Т. «С++: специальный справочник» - СПб.: Питер, 2001. — 480 с.:ил.

5. Культин Н. «С/С++ в задачах и примерах» - СПб.:БХВ-Петербург, 2002. — 288 с.

6. А. Мешков, Ю. Тихомиров «Visual C++ и MFC» - СПб.:БХВ-Петербург. 2002 — 1017с.

7. Теллес, М. BORLAND C++ BUILDER: библиотека программиста .-- СПб : Питер, 1998 .-- 512с.

8. Архангельский, А.Я. Язык C++ в C++Builder : справочное и методическое пособие / А.Я. Архангельский .-- М. : Бином, 2008 .-- 942 с.

9. Роберт Седжвик, Фундаментальные алгоритмы на С++,

Санкт-Петербург, ООО "ДиаСофтЮП", 2002. Части 1-4 - 688 с., часть 5 - 496 с.

10. М. Эллис, Б. Строуструп. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 1992. 445с.

11. Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 1992, 304-345сс.

12. Бруно Бабэ. Просто и ясно о Borland C++: Пер. с англ. - Москва: БИНОМ, 1994. 400с.

13. В.В. Подбельский. Язык C++: Учебное пособие. - Москва: Финансы и статистика, 1995. 560с.

14. Ирэ Пол. Объектно-ориентированное программирование с использованием C++: Пер. с англ. - Киев: НИИПФ ДиаСофт Лтд, 1995. 480с.

15. Т. Фейсон. Объектно-ориентированное программирование на Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.


Приложение

Листинг программы

#include <clx.h>

#include <stdlib.h>

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <math.h>

void ramka(),error();

void error()

{textcolor(4);

cprintf("Nepravil'nyi vybor");

textcolor(15);}

void ramka ()

{int xx1,yy1,xx2,yy2;

int xi;

xx1=2; yy1=1; xx2=78; yy2=24;

for (xi=xx1;xi<=xx2-1;xi++)

{textcolor(14);

gotoxy(xi,yy1);

cprintf("Н");

gotoxy(xi,yy2);

cprintf("Н");}

for (xi=yy1;xi<=yy2;xi++)

{gotoxy(xx1,xi);

cprintf("є");

gotoxy(xx2,xi);

cprintf("є");}

gotoxy(xx1,yy1);

cprintf("Й");

gotoxy(xx2,yy1);

cprintf("»");

gotoxy(xx1,yy2);

cprintf("И");

gotoxy(xx2,yy2);

cprintf("ј");

textcolor(15);}

void main()

{const int n=9999;

int m,i,j;

char l,k,x,y;

char vybor[25],vtip[25],vproizv[25],vmodel[25];

struct detal {int nomer; char naim[25]; char proizv[25]; char model[25];};

detal baza[n];

textmode(C80);

textbackground(1);

clrscr();

ramka();

gotoxy(25,5);

cprintf ("Vvedite dannye&bsol;n");

i=0;

metka2:

j=i;

gotoxy(25,7);

cprintf ("Tip produkta :");

cscanf ("%s",&baza[i].naim);

gotoxy(25,8);

cprintf ("Proizvoditel' :");

cscanf ("%s",&baza[i].proizv);

gotoxy(25,9);

cprintf ("Model' produkta :");

cscanf ("%s",&baza[i].model);

i++;

metka4:clrscr();

ramka();

gotoxy(8,9);

cprintf("Nazhmite 'n' dlya dobavleniya zapisi ili 'q' dlya zaversheniya vvoda&bsol;n");

gotoxy(33,10);

cscanf("%s",&x);

if (x=='n' || x=='q')

{if (x=='n')

{clrscr();

goto metka2;}

else {gotoxy(27,11);

cprintf ("zapisi dobavleny&bsol;n");}}

else

{gotoxy (27,11);

error();

getch(); getch();

goto metka4;}

getch(); getch();

metka1:clrscr();

ramka();

gotoxy(25,5);

cprintf("Vyberite deistvie");

gotoxy(25,7);

cprintf("1-Vyvesti spisok na ekran");

gotoxy(25,8);

cprintf("2-Dobavit' dannye v spisok");

gotoxy(25,9);

cprintf("3-Vypolnit' poisk");

gotoxy(25,10);

cprintf("4-Izmenit' zapis'");

gotoxy(25,11);

cprintf("0-vyhod");

gotoxy(25,13);

cprintf("Vash vybor : ");

cscanf("%s",&k);

if (k=='0' || k=='1' || k=='2' || k=='3' || k=='4')

{if (k=='1')

{clrscr();

ramka();

for (m=0;m<i;m++)

{gotoxy(20,m+2);

cprintf (baza[m].naim);

cprintf(" ");

cprintf (baza[m].proizv);

cprintf(" ");

cprintf (baza[m].model);

printf("&bsol;n");}

getch(); getch();

goto metka1;}

if (k=='2')

{clrscr();

gotoxy(25,5);

cprintf ("Vvedite dannye&bsol;n");

metka3:j=i;

ramka();

gotoxy(25,7);

cprintf ("Tip produkta :");

cscanf ("%s",&baza[i].naim);

gotoxy(25,8);

cprintf ("Proizvoditel' :");

cscanf ("%s",&baza[i].proizv);

gotoxy(25,9);

cprintf ("Model' produkta :");

cscanf ("%s",&baza[i].model);

i++;

metka6:clrscr();

ramka();

gotoxy(9,8);

cprintf("Nazhmite 'n' dlya dobavleniya zapisi ili 'q' dlya zaversheniya vvoda&bsol;n");

gotoxy(30,9);

cscanf("%s",&y);

if (y=='n' || y=='q')

{if (y=='n') {clrscr();

goto metka3;}

else {gotoxy(27,11);

cprintf ("Zapisi dobavleny");

getch(); getch();

goto metka1;}}

else

{gotoxy (27,11);

error();

getch(); getch();

goto metka6;}}

if (k=='3')

{metka5:clrscr();

ramka();

gotoxy(25,5);

cprintf("Kryterii poiska");

gotoxy(25,7);

cprintf("1-Tip");

gotoxy(25,8);

cprintf("2-Proizvoditel'");

gotoxy(25,9);

cprintf("3-model' produkta");

gotoxy(25,11);

cprintf("Vash vybor : ");

cscanf("%s",&l);

if (l=='1' || l=='2' || l=='3')

{if (l=='1')

{clrscr();

ramka();

gotoxy(25,5);

cprintf("Vvedite tip produkta");

gotoxy(30,7);

cscanf("%s",&vybor);

for (m=0;m<i;m++)

{if (!strcmp(baza[m].naim,vybor))

{gotoxy(20,m+9);

cprintf (baza[m].naim);

cprintf(" ");

cprintf (baza[m].proizv);

cprintf(" ");

cprintf (baza[m].model);

cprintf("&bsol;n");}}}

if (l=='2')

{clrscr();

ramka();

gotoxy(25,5);

cprintf("Vvedite proizvoditelya produkta");

gotoxy(30,7);

cscanf("%s",&vybor);

for (m=0;m<i;m++)

{if (!strcmp(baza[m].proizv,vybor))