База даных на С++

Зміст

Вступ

  1. Призначення та область використан
  2. Опис і обґрунтування проектних рішень щодо розробки програмного продукту……………..……………………
  3. Реалізація курсової роботи………………………
  4. Інструкція користувача……………………………
  5. Розрахунки та матеріали, що підтверджують надійність та працездатність програми……………..………………
  6. Перелік скорочень
  7. Висновок

Перелік використаної літератури.

Додатки.

 


 

Вступ

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

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

В цій  курсовій роботі використовуєтьсямова програмування С.

Мова С посідає особливе місце серед мов програмування в комп’ютерній індустрії. С є структурованою мовою програмування. Мова С бере свій початок від двох мов, BCPL i B. В 1967 році Мартін Річардс розробив BCPL, як мову для написання системного забезпечення і комп’ютерів. В 1970 році Кен Томпсон використовував мову С для розробки ранніх версій UNIX на комп’ютері DECPDP-7. Як в BCPL, так і в В змінні не розділялись на два типи – кожне значення даних займає одне слово в пам’яті комп’ютера і відповідність, наприклад, цілих і дійсних чисел цілком падала на відповідальність програміста[1].

 Мова С була розроблена ( на основі В ) Денісом Річчі  з корпорації BellLаboratories в перше  мова була реалізована в 1972 році на комп’ютері DECPDP – 11. Популярність  С одержало в якості мови  операційної системи UNIX. Сьогодні  практично всі основні операційні  системи написані на С або  С++. Після двох десятиліть С  є практично на більшості комп’ютерів.  Мова С не залежить від апаратної  частини, і програми, написані на ньому, можуть бути перенесені на інші системи. С має в собі основні принципи BCPL i B, крім того, в ньому, введена типізація змінних і деякі інші важливі моменти. В кінці 70 – х років С перетворився в те, що ми називаємо традиційний С. Застосування С для різних типів комп’ютерів, призвело до появи різних версій мови, котрі, не дивлячись на свою схожість переважно були не сумісні. Це стало справжньою проблемою для розробників програмних продуктів котрі хотіли розробити коди, які можуть працювати на декількох типах комп’ютерів. Ставало зрозуміло, що потрібна стандартна версія С. В 1989 році вийшов стандарт мови С.

Мова програмування С  відрізняється мінімалізмом. Автори мови хотіли, щоб програми на ньому  легко компілювалися за допомогою  однопрохідного компілятора, щоб кожної елементарної складовою програми після  компіляції відповідало дуже невелике число машинних команд, а використання базових елементів мови не задіяло  бібліотеку часу виконання. Однопрохідний  компілятор компілює програму, не повертаючись назад, до вже обробленого тексту. Тому використання функції і змінних  має передувати їх оголошення. Код  на С можна легко писати на низькому рівні абстракції, майже як на асемблері. Іноді С називають "універсальним  асемблером" або "асемблером високого рівня", що відображає різницю мов  асемблера для різних платформ і  єдність стандарту С, код якого  може бути скомпільований без змін практично на будь-якої моделі комп'ютера. Мова С часто називають мовою  середнього рівня або навіть низького рівня, враховуючи те, як близько він  працює до реальних пристроїв. Однак, в  суворої класифікації, вона є мовою  високого рівня [3].

В курсовій роботі розробляється програма обліку для магазина компакт дисків.

 

1 Призначення та область застосування

Компакт диск - переносний оптичні диск для збереження інформації у цифровому вигляді, діаметром 12 см (стандарт) або 6-8 см (міні-CD), використовуєтьсядля запису значний обсягів інформації аудіо, відео продукції, дані тощо. У стосунки до музики принципова відрізняється від довгограючої грамофонної платівки. Виготовляють з поліакрілату з прозорим пластиковим покриттям. Металева диск знаходиться під ним. З поверхні диска з мікроскопічних канавок звітується лазерним променя цифровий код, в якому закодовані звуки и створюється аудіо-сигнал, що практично не відрізняється від звучання оригіналу.

Компакт-диски використовуються з жовтня 1982, масовий випуск з 1983 року. Спочатку вони розроблялися для запису музики, пізніше стало можливість використовуватидля запису інших типів даних. Але і досі залишаються стандартом для комерційного аудіо запису.

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

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

Програма повинна включає в себе наступні процедури:

1. Створення нової бази даних;

2. Перегляд існуючої бази  даних;

3. Редагування записів, їх додавання і видалення (всі із збереженням в текстовому файлі);

4. Пошук записів і сортування записів по даному полю.

 

2 Опис і обґрунтування проектних рішень щодо розробки програмного продукту.

Для більш доступного використання файлів обліку для використання магазину компакт дисків вони були переведені в електронний вигляд, в цих цілях розробляються програми, які їх обробляють. Такими програмами є Microsoft Access, SQL, FoxPro, DB2 і багато інших. Спрощеним видом таких програм є дана програма.

Microsoft Access

Програма розроблена корпорації Microsoft. Має широкий спектр функцій, включаючи зв'язані запити, зв'язок із зовнішніми таблицями і базами даних. Завдяки вбудованій мові VBA, в самому Access можна писати програми, що працюють з базами даних.

Склад програмногопродукту

Основні компоненти MS Access:

  1. будівник таблиць;
  2. будівник екранних форм;
  3. будівник SQL-запитів (мова SQL в MS Access не відповідає стандарту ANSI);
  4. будівник звітів, що виводяться на друк.

Вони можуть викликати  скрипти на мові VBA, тому MS Access дозволяє розробляти додатки і БД практично  «з нуля» або написати оболонку для  зовнішньої БД. Microsoft Jet Database Engine (англ.), яка використовується в якості движка бази даних MS Access є файл-серверної СКБД і тому застосовна лише до додатків, що працюють з невеликими об'ємами даних і при невеликому числі користувачів, що одночасно працюють з цим даними. Безпосередньо в Access відсутній ряд механізмів, необхідних в багатокористувацьких БД, таких, наприклад, як тригери.

Приклад  файлу обліку компакт дисків магазину “CDreplication” який був зробленій вMicrosoft Access.

Рисунок 2.1- Файл обліку який був розроблений в Microsoft Access.

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

DB2

DB2 - сімейство систем управління реляційними базами даних, що випускаються корпорацією IBM. Найчастіше, посилаючись на DB2, мають на увазі реляційну систему управління базами даних DB2 Universal Database (DB2 UDB).

Діалект мови SQL, використовуваний в DB2 за рідкісними винятками суворо декларативний, система забезпечена  багатофазових оптимізатором, що будує  по цим декларативним конструкціям план виконання запиту. У діалекті SQL DB2 практично відсутні [обтічні  вираження] підказки оптимізатору, мало розвинений (а довгий час взагалі  був відсутній) мову збережених процедур, і, таким чином, все спрямовано на підтримку декларативного стилю написання запитів. Мова SQL DB2 при цьому є обчислювальна повна, тобто потенційно дозволяє в декларативній формі визначати будь-які обчислення   відповідностей між вихідними даними і результатом. Це досягається в тому числі за рахунок використання табличних виразів, рекурсії та інших розвинених механізмів маніпулювання даними.

Традиційно для написання  збережених процедур використовуються звичайні мови програмування високого рівня (Сі, Java, PL / I, Кобол і т. д.), це дозволяє програмісту легко оформляти  один і той же код або як частина  додатку, або як збережену процедуру, залежно від того, на клієнті або  на сервері його доцільніше виконувати. В даний час в DB2 також реалізовано  процедурне розширення SQL для збережених процедур у відповідності зі стандартом ANSI SQL / PSM.

В програма яка розробляється  не потребує втручання інших програм тамов програмування, а працює тільки з мовою С.

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

 

 

3 Реалізація курсової роботи

В даній програмі підключені такі  бібліотеки :

  1. « #include<conio.h> » - Бібліотека, що містить функцію очищення екрана (clrscr ()) і функцію затримки екрану (getch ()).
  2. « #include<stdlib.h> » - Бібліотека содежіт функцію exit ().
  3. « #include<stdio.h> » - Бібліотека для різних операцій стандартного вводу і виводу.
  4. « #include<iostream.h> » - Бібліотека, що містить функції введення \ виводу на екран (cin і cout).
  5. « #include<string.h> » - Бібліотека для роботи зі рядковими даними.
  6. « #include<iomanip.h> » - Бібліотека для маніпулювання текстом на екрані (підключається для забезпечення зручності роботи з програмою).
  7. « #include<fstream.h> » - Бібліотека підтримки файлів вхідних вихідних потоків.
  8. « #include<dos.h> » - Бібліотека для роботи в системі DOS.
  9. « #include<io.h> » - Бібліотека яка підключає визначення вводу і виводу для пристроїв [2]. 

Потім об’являємо структуру  записів товару :

structtovar

charartic[L];

charnaimtovar[L];

charcolvovyp[L];

charcena[L];

charcolvo[L];

int d;};

Та визначаємо за типом номера, назвою,артикулом , ціною, кількістю товару.

 Указуємо які підпрограми будуть використані :

classtovari

{ private:

tovar a[N];

int n;

public:

voidinput_file();

voidoutputfile();

voidalfsort();

voidsohranenie();

voidsort_chisl_2();

voidsort_chisl_1();

voidsort_chisl_3();

voidsort_chisl_4();

voidadd();

voidudalenie();

voidredaktirovanie();

voidinput();

voidpoisk();

Створюємо меню,та виводимо його на екран за допомогою функції cout.

voidmain()

{

tovari a;

intpm;

while(1)

{

cout<<"1.Vvod faila"<<endl;

cout<<"2.Vivod izfaila "<<endl;

cout<<"3.Alfofitnai sortirovka"<<endl;

cout<<"4.Zapis dannih v file"<<endl;

cout<<"5.Sortirovka ponomerumagazina"<<endl;

cout<<"6.Sortirovka poarticulutovara"<<endl;

cout<<"7.Sortirovka poCeneedinicitovara"<<endl;

cout<<"8.Sortirovka poKollichestvutovara"<<endl;

cout<<"9.Poisk popolu"<<endl;

cout<<"10.Dobavlenie zapisi v bazudannih"<<endl;

cout<<"11.Udalenie zapisiizbazidannih"<<endl;

cout<<"12.Redaktirovanie"<<endl;

cout<<"13.Sozdanie novoi BD"<<endl;

cout<<"14.Konets raboti"<<endl;

cout<<endl<<endl;

cout<<"Vashvibor 1-14"<<endl;

cin>>pm;

cout<<endl<<endl;

switch(pm)

{

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

case 1:a.input_file();break;

case 2:a.outputfile();getch();break;

case 3:a.alfsort();break;

case 4:a.sohranenie();break;

case 5:a.sort_chisl_1();break;

case 6:a.sort_chisl_2();break;

case 7:a.sort_chisl_3();break;

case 8:a.sort_chisl_4();break;

case 9:a.poisk();break;

case 10:a.add();break;

case 11:a.udalenie();break;

case 12:a.redaktirovanie();break;

case 13:a.input();break;

case 14:cout<<"Konetsraboti";

getch();

return;

default:cout<<"Net tacogopuncta";

getch();break;

}

Якщо ввели неіснуючого  пункту виводиться на екран повідомлення "Net tacogopuncta".

Підпрограма «voidtovari:: input_file()».Яка виконує пошук файл по указаному шляху який вказали. а якщо такого файлу немає виводиться на екран повідомлення "Filenotopen".И потім знову вказуємо шлях к файлу[3].

voidtovari::input_file()

{

ifstreamfin;

charfile[L]; 

cout<<"Ukaziteput k filu : ";

cin>>file;

fin.open(file);

if(fin==NULL)

{

cout<<"Filenotopen";

getch();

exit(1);

}

n=0;  fin>>a[n].artic>>a[n].naimtovar>>a[n].colvovyp>>a[n].cena>>a[n].colvo;

while(fin.good()) {

n++;  fin>>a[n].artic>>a[n].naimtovar>>a[n].colvovyp>>a[n].cena>>a[n].colvo; }

fin.close();

}

Якщо такий файл існує, то підпрограма «voidtovari::outputfile»  його відкриває та виводить на екран.

voidtovari::outputfile()

{ int i;

cout<<setw(10)<<"Kod_tov"<<setw(14)<<"Naime_tov"<<setw(18)<<"V_upacovke"<<setw(14)<<"Cena_tov"<<setw(16)<<"Kollvo_tov"<<endl;

for(i=0;i<n;i++) cout<<setw(10)<<a[i].artic<<setw(18)<<a[i].naimtovar<<setw(8)<<a[i].colvovyp<<setw(16)<<a[i].cena<<setw(16)<<a[i].colvo<<endl;

}

Підпрограма «voidtovari::alfsort» яка сортує по найменування товару.

voidtovari::alfsort()

{

intfl,i,l;

tovar t;

  l=n-1;

do

  {

  fl=0;

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

if(strcmp(a[i].naimtovar,a[i+1].naimtovar)>0)

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

  fl=1;   

  }

l--;

  }

Підпрограма «voidtovari::sort_chisl_1» ,сортування по номеру товару.

voidtovari::sort_chisl_1()

{

intfl,i,l;

tovar t;

  l=n-1;

do

  {

   fl=0;

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

if(strcmp(a[i].artic,a[i+1].artic)>0) {

t=a[i];

      a[i]=a[i+1];

      a[i+1]=t;

      fl=1;}

   l--;

  }

while(fl==1);

return;

Підпрограма «voidtovari::sort_chisl_3» в який виконується сортування по ціні товару.

voidtovari::sort_chisl_3()

{

intfl,i,l;

tovar t;

  l=n-1;

do

  {

   fl=0;

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

if(strcmp(a[i].cena,a[i+1].cena)>0)

{

t=a[i];

      a[i]=a[i+1];

      a[i+1]=t;

      fl=1;

    }

   l--;

  }

while(fl==1);

return;

}

Підпрограма «voidtovari::sort_chisl_4», сортування за кількістю.

voidtovari::sort_chisl_4()

{

intfl,i,l;

tovar t;

  l=n-1;

do

  {

   fl=0;

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

if(strcmp(a[i].colvo,a[i+1].colvo)>0)

{

t=a[i];

      a[i]=a[i+1];

      a[i+1]=t;

      fl=1;

    }

   l--;

  }

while(fl==1);

return;

Підпрограма «voidtovari::sohranenie» яка зберігає новий або відредагований файл.

voidtovari::sohranenie()

{

charfile[L];

ofstreamout;

intotvet;

cout<<"Sohranitizmeneniya?"<<endl<<"Yes(press 1),No(press 0)";

cin>>otvet;

if(otvet==1)

{

cout<<"vveditedirektoriyukudavjbjhotelisohranit";

cin>>file;

out.open(file);

if(out==NULL)

{

cout<<"Filenesozdan"<<endl<<"programmtobefinished";

getch();

exit(1);

}

}

int i;

for(i=0;i<n;i++)out<<setw(10)<<a[i].artic<<setw(10)<<a[i].naimtovar<<setw(10)<<a[i].colvovyp<<setw(13)<<a[i].cena<<setw(13)<<a[i].colvo<<endl;

cout<<endl;

}

Пошук по вибраному полю виконує підпрограма «voidtovari::poisk».

voidtovari::poisk()

{

int i,d=0,f=0,j=0;

int q,w,e,r,t;

charartic[L], naimtovar[L],colvovyp[L],cena[L],colvo[L];

cout<<"Proizvestipoiskpo:"<<endl;

cout<<"Nomeru? Da-1,Net-0: ";

cin>>q;

if(q==1) {cout<<"VvediteKodtovara :"; cin>>artic;f++;}

cout<<"iskatponaimenovaniutovara? Da-1,Net-0: ";

cin>>w;

if(w==1) {cout<<"Vveditenaimenovanietovara: ";cin>>naimtovar;f++;}

cout<<"iskatpoarticulutovara?Da-1,Net-0: ";

cin>>e;

if(e==1) {cout<<"Vvvedite v upacovke: "; cin>>colvovyp;f++;}

cout<<"iskatpoceneedinicitovara? Da-1,Net-0: ";

cin>>r;

if(r==1) {cout<<"Vveditecenutovara: ";cin>>cena;f++;}

cout<<"iskatpocollichestvutovara? Da-1,Net-0: ";

cin>>t;

if(t==1) {cout<<"Vveditecollichestvotavara: ";cin>>colvo;f++;}

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

{

if(q==1) {if(strcmp(artic, a[i].artic)==0) d=d+1;}

if(w==1) {if(strcmp(naimtovar,a[i].naimtovar)==0) d=d+1;}

if(e==1) {if(strcmp(colvovyp, a[i].colvovyp)==0) d=d+1;}

if(r==1) {if(strcmp(cena,a[i].cena)==0) d=d+1;}

if(t==1) {if(strcmp(colvo,a[i].colvo)==0) d=d+1;}

cout<<endl;

if(d==f) {cout<<setw(10)<<a[i].artic<<setw(11)<<a[i].naimtovar<<setw(14)<<a[i].colvovyp<<setw(10)<<a[i].cena<<setw(15)<<a[i].colvo<<endl; d=0;j=j+1;}

   d=0; }

if(j==0) cout<<"Poisknedalrezultata!"<<endl<<endl;

cout<<endl<<endl;}

Дана програма має меню яке зображена на рисунку 3.1, тафайл обліку в форматі «.txt» на рисунку 3.2.

Рисунок 3.1 - меню програми

Рисунок 3.2 – Файл обліку ком пакт дисків

 

4 Інструкція користувача

Відкриваємо програму за допомогою  файлу «BAZA.exe». З’являється меню програми .

Рисунок 4.1 – меню програми

Меню має такі пункти:

  1. «Vvodfaila» -  вводиться шлях та ім’я файлу;
  2. «Vivodizfaila»  - виводиться файл на екран;
  3. «Alfofitnaisortirovka» - сортування по імені товару;
  4. «Zapisdannihvfile»- зберігання нового файлу або зміненого;
  5. «SortirovkapoKodytovara» - сортування по коду товару;
  6. «Sortirovkapocolchestvuvupacovke»  - сортування за кількістю в упаковці;
  7. «SortirovkapoCenetovara» - сортування за ціною товару;
  8. «SortirovkapoKollichestvutovara» - сортування за кількістю товару на складі;
  9. «Poiskpopolu» - пошук по обраному полю;
  10. «Dobavleniezapisi v fail» - додавання запису у файл;
  11. «Udaleniezapisiizfailu» - видалення запису з файлу;
  12. «Redaktirovanie» -  редагування файлу;
  13. «Sozdanienovogofaila»  - створення нового файлу;
  14. «Konetsraboti» - вихід із програми.

Відкриваємо файл обліку. Натискаємо 1 потім «Enter», і вказуємо шлях та ім’я файлу.

Рисунок 4.2 – Введення шляху  файлу

Натискаємо «Enter» потім 2, і знову «Enter» . Виводиться файл на екран.

Рисунок 4.3 – Виведення  файлу на екран

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

Наприклад ми видалимо запис  а потім знову його добавимо.

Набираємо  цифру 11 (видалення) натискаємо «Enter» та вибираємо номер запис який потрібно видалити.

Рисунок 4.4 – Видаляємо  запис з файлу 

Натискаємо «Enter» и вводимо цифру 2 щоб вивести файл на екран.

Рисунок 4.5 – Перевіряємо  чи запис видалено 

 Бачимо що запису  немає, потім вводимо цифру 10 щоб добавити запис. Вводимо дані запису які потрібні.

Рисунок 4.6 – Вводимо новий  запис в файл

Тиснемо «Enter». Набираємо цифру 2 и знову тиснемо «Enter». Бачимо що запис з’явився.

Рисунок 4.7 – Перевіряємо  файл

Таким же самим способом виконуються всі інші операцій над файлом. Як бачите програма легка і зрозуміла.

 

5 Розрахунки та матеріали, що підтверджують надійність та працездатність програми

Для розрахунку надійності та працездатності програми вибрали відповідно до моделі Муса. У цій моделі надійність програмного забезпечення на етапі експлуатації оцінюється за результатом тестування.

Нехай тривалості етапів тестування складають годин:

t1= 15;

t2= 20;

t3= 26.

Кількість відмов на першому  етапі n1=2, на другомуn2= 4 , а на третьому n3=3.

Середня швидкість виконання програмного забезпечення А= 108/год,

Кількість операторів у ПЗ В=1000.

Визначити надійність R(t)програмно  забезпечення для періоду експлуатації t= 100 годин.

Середня швидкість виконання  одного оператора складає:

 

Первісна кількість помилок  в програмному забезпеченні N буде знайдена за моделлю Шумена методом підбору N=6. Отже, це і є кількість помилок в програмному забезпеченні.

Коефіцієнт прояви помилок  К буде прийнято рівним 2,75*10-7.

Визначення параметрів 0:

 

Нехай значення коефіцієнта  С=3( 3години роботи програми на тестування в реальних умовах). Тоді середнє напрацювання до відмови після тестування на етапі експлуатації згідно формули:

 

Значення надійності програмного  забезпечення для періоду експлуатації t= 100 годин за формулою:

 

 

Перелік скорочень

ОС – операційна систем.

MS Access – програма Microsoft Access.

БД – база даних.

СКБД – система керування базами даних.

 

Висновок

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

 

Перелік використаної літератури

  1. Программирование на языке СИ: Учебное пособие. -Тамбов,1995.- 169 с.
  2. Програмування на мові Сі – електроний ресурс./Степура А. А. -

Режим доступу: http://ua-referat.com/Програмування_на_мові_Сі

  1. Мова програмування C./Браян. В. Керніган і Деніс М. Річі- 2-ге видання, перероб. і доп.,2009. – 304с.
  2. Язык   C  / Шолмов Л.И. 1998г. – 229с.
  3. Сі (мова програмування) – електроный ресурс

Режим доступу:http://znaimo.com.ua/Сі_(мова_програмування)

 

 

 

 

 

 

 

 

 

 

 

Додаток

 

Додаток А

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

#include<conio.h>

#include<stdlib.h>

#include<stdio.h>

#include<iostream.h>

#include<string.h>

#include<iomanip.h>

#include<fstream.h>

#include <dos.h>

#include <io.h>

const int L=30;

struct tovar

{

char artic[L];

char naimtovar[L];

char colvovyp[L];

char cena[L];

char colvo[L];

int d;

};

const int N=100;

class tovari

{

private:

tovar a[N];

int n;

public:

void input_file();

void outputfile();

void alfsort();

void sohranenie();

void sort_chisl_2();

void sort_chisl_1();

void sort_chisl_3();

void sort_chisl_4();

void add();

void udalenie();

void redaktirovanie();

void input();

void poisk();

};

void main()

{

tovari a;

int pm;

while(1)

{

cout<<"1.Vvod faila"<<endl;

cout<<"2.Vivod iz faila "<<endl;

cout<<"3.Alfofitnai sortirovka"<<endl;

cout<<"4.Zapis dannih v file"<<endl;

cout<<"5.Sortirovka po Kody tovara"<<endl;

cout<<"6.Sortirovka po colichestvu v upacovke"<<endl;

cout<<"7.Sortirovka po Cene  tovara"<<endl;

cout<<"8.Sortirovka po Kollichestvu tovara"<<endl;

cout<<"9.Poisk po polu"<<endl;

cout<<"10.Dobavlenie zapisi v fail"<<endl;

cout<<"11.Udalenie zapisi iz faila"<<endl;

cout<<"12.Redaktirovanie"<<endl;

cout<<"13.Sozdanie novogo faila "<<endl;

cout<<"14.Konets raboti"<<endl;

cout<<endl<<endl;

cout<<"Vash vibor 1-14"<<endl;

cin>>pm;

cout<<endl<<endl;

switch(pm)

{

case 1:a.input_file();break;

case 2:a.outputfile();getch();break;

case 3:a.alfsort();break;

case 4:a.sohranenie();break;

case 5:a.sort_chisl_1();break;

case 6:a.sort_chisl_2();break;

case 7:a.sort_chisl_3();break;

case 8:a.sort_chisl_4();break;

case 9:a.poisk();break;

case 10:a.add();break;

case 11:a.udalenie();break;

case 12:a.redaktirovanie();break;

case 13:a.input();break;

case 14:cout<<"Konets raboti";

getch();

return;

default:cout<<"Net tacogo puncta";

getch();break;

}}}

void tovari::alfsort()

{

  int fl,i,l;

  tovar t;

  l=n-1;

  do

  {

fl=0;

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

  if(strcmp(a[i].naimtovar,a[i+1].naimtovar)>0)

  {     

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

fl=1;

  }  

l--;

  }

  while(fl==1);

  return;

}

void tovari::input_file()

{

ifstream fin;

char file[L];

cout<<"Ukazite put k filu : ";

cin>>file;

fin.open(file);

if(fin==NULL)

{

cout<<"File not open";

getch();

exit(1);

}

n=0; fin>>a[n].artic>>a[n].naimtovar>>a[n].colvovyp>>a[n].cena>>a[n].colvo;

while(fin.good())

{

n++;

fin>>a[n].artic>>a[n].naimtovar>>a[n].colvovyp>>a[n].cena>>a[n].colvo;

}

fin.close();

void tovari::outputfile()

{

int i;   cout<<setw(10)<<"Kod_tov"<<setw(14)<<"Naime_tov"<<setw(18)<<"V_upacovke"<<setw(14)<<"Cena_tov"<<setw(16)<<"Kollvo_tov"<<endl;

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

cout<<setw(10)<<a[i].artic<<setw(18)<<a[i].naimtovar<<setw(8)<<a[i].colvovyp<<setw(16)<<a[i].cena<<setw(16)<<a[i].colvo<<endl;

}

void tovari::sort_chisl_1()

{

   int fl,i,l;

   tovar t;

  l=n-1;

База даных на С++