All pastes #344783 Raw Edit

Someone

public cpp v1 · immutable
·published 2007-02-08 00:37 UTC
rendered paste body
 #include<iostream.h> #include<stdio.h> #include<fstream.h> #include<conio.h> #include<string.h>  struct tovar   {double obyem;        //obyem partii    double st_ed;        //stoimost edinicy tovara    int kol_pr_ed;       //kol-vo prodannyx edinic    char vid_tov[20];    //nazvanie vida tovara    char data[10];       //data postavki   }rec,a[50],*p;  ofstream outstream;  ifstream instream;  void Input(tovar &rec);  void Create_DB();  void Read_DB(int &n,tovar *p);  void View_DB();  void Edit_DB();  void Add_DB();  void Del_DB();  void Process_DB();  int n;  char ans;  char filename[10];  int main()   {int pm;    p=&a[0];    clrscr();    textbackground(3);    textcolor(12);    gotoxy(35,20);    printf("SKLAD TOVAROV");    gotoxy(25,25);    cout<<"Vvedite 'y' dlja prodolzhenija ";    cin>>ans;    clrscr();    textbackground(10);    textcolor(11);    gotoxy(30,20);    cout<<"Vvedite imja fajla ";    cin>>filename;    do     {clrscr();      textbackground(8);      textcolor(5);      gotoxy(30,20);      printf("***********MENU************");      gotoxy(30,21);      printf("*                         *");      gotoxy(30,22);      cout<<"* 1-Zapis v fajl          *";      gotoxy(30,23);      cout<<"* 2-Prosmotr fajla        *";      gotoxy(30,24);      cout<<"* 3-Korrekcija fajla      *";      gotoxy(30,25);      cout<<"* 4-Dobavlenie v fajl     *";      gotoxy(30,26);      cout<<"* 5-Udalenie iz fajla     *";      gotoxy(30,27);      cout<<"* 6-Poisk nuzhnogo tovara *";      gotoxy(30,28);      cout<<"* 7-Vyxod                 *";      gotoxy(30,29);      printf("*                         *");      gotoxy(30,30);      printf("***************************");      gotoxy(30,33);      cout<<"Vvedite nuzhnyj punkt menu ";      cin>>pm;      clrscr();      switch(pm)       {case 1:Create_DB();break;	case 2:View_DB();break;	case 3:Edit_DB();break;	case 4:Add_DB();break;	case 5:Del_DB();break;	case 6:Process_DB();break;	case 7:return(1);       }      cout<<endl;      cout<<"Budete esche rabotat? y/n ";      cin>>ans;     }    while ((ans)=='y');    return 0;   }  void Input(tovar &rec)  //procedura vvoda informacii ob odnom tovare   {clrscr();    cout<<"Vvedite nazvanie tovara,obyem partii,stoimost edinicy tovara,kol-vo prodannyx edinic tovara i datu postuplenija"<<endl;    printf("--------------------------------------------------------------------------------");    printf("|  Tovar   | Obyem partii | Stoimost ed. | Kol-vo prodannyx ed. | Data postupl.|");    printf("--------------------------------------------------------------------------------");    cout<<endl;    gotoxy(1,6);    cout<<'|';    gotoxy(3,6);    cin>>rec.vid_tov;    gotoxy(12,6);    cout<<'|';    gotoxy(17,6);    cin>>rec.obyem;    gotoxy(27,6);    cout<<'|';    gotoxy(32,6);    cin>>rec.st_ed;    gotoxy(42,6);    cout<<'|';    gotoxy(50,6);    cin>>rec.kol_pr_ed;    gotoxy(65,6);    cout<<'|';    gotoxy(70,6);    cin>>rec.data;    gotoxy(83,6);    cout<<'|';    printf("--------------------------------------------------------------------------------");    cout<<endl;   }  void Create_DB()  //procedura zapisi v fajl informacii ob odnom tovare   {outstream.open(filename);    do     {Input(rec);      outstream<<rec.vid_tov<<endl<<rec.obyem<<endl<<rec.st_ed<<endl<<rec.kol_pr_ed<<endl<<rec.data<<endl;      cout<<"Esche budete vvodit? y/n ";      cin>>ans;     }    while ((ans)=='y');    outstream.close();   }  void Read_DB(int &n,tovar *p)  //procedura chtenija dannyx iz fajla v OP   {int i=0;    instream.open(filename);    do     {instream>>a[i].vid_tov>>a[i].obyem>>a[i].st_ed>>a[i].kol_pr_ed>>a[i].data;      i++;     }    while (!instream.eof());    n=i;    instream.close();   }  void View_DB()  //procedura prosmotra BD   {int i;    Read_DB(n,p);    printf("--------------------------------------------------------------------------------");    printf("|  Tovar   | Obyem partii | Stoimost ed. | Kol-vo prodannyx ed. | Data postupl.|");    printf("--------------------------------------------------------------------------------");    for (i=0;i<n-1;i++)     {printf("|%10s|%14f|%14f|%22d|%14s",a[i].vid_tov,a[i].obyem,a[i].st_ed,a[i].kol_pr_ed,a[i].data);      cout<<'|';      printf("--------------------------------------------------------------------------------");     }    cout<<endl;   }  void Edit_DB()  //procedura redaktirovanija zapisej v fajle   {int i,nz;    Read_DB(n,p);    do     {cout<<endl;cout<<"Vvedite nomer korrektiruemoj zapisi ";      cin>>nz;      cout<<"Vvedite nazvanie tovara,obyem partii,stoimost edinicy tovara,kol-vo prodannyx edinic tovara i datu postuplenija"<<endl;      printf("--------------------------------------------------------------------------------");      printf("|  Tovar   | Obyem partii | Stoimost ed. | Kol-vo prodannyx ed. | Data postupl.|");      printf("--------------------------------------------------------------------------------");      cout<<endl;      gotoxy(1,6);      cout<<'|';      gotoxy(3,6);      cin>>a[nz].vid_tov;      gotoxy(12,6);      cout<<'|';      gotoxy(17,6);      cin>>a[nz].obyem;      gotoxy(27,6);      cout<<'|';      gotoxy(32,6);      cin>>a[nz].st_ed;      gotoxy(42,6);      cout<<'|';      gotoxy(50,6);      cin>>a[nz].kol_pr_ed;      gotoxy(65,6);      cout<<'|';      gotoxy(70,6);      cin>>a[nz].data;      gotoxy(83,6);      cout<<'|';      printf("--------------------------------------------------------------------------------");      cout<<endl<<endl;      cout<<"Esche budete korrektirovat? y/n ";      cin>>ans;     }    while ((ans)=='y');    outstream.open(filename);    for (i=0;i<n-1;i++)     {outstream<<a[i].vid_tov<<endl<<a[i].obyem<<endl<<a[i].st_ed<<endl<<a[i].kol_pr_ed<<endl<<a[i].data<<endl;     }    cout<<endl;    outstream.close();   }  void Add_DB()  //procedura dobavlenija v fajl novyx zapisej   {int i;    outstream.open(filename,ios::app);    do     {Input(rec);      outstream<<rec.vid_tov<<endl<<rec.obyem<<endl<<rec.st_ed<<endl<<rec.kol_pr_ed<<endl<<rec.data<<endl;      cout<<"Budete esche dobavljat? y/n ";      cin>>ans;     }    while ((ans)=='y');    cout<<endl;    outstream.close();   }  void Del_DB()  //procedura udalenija iz fajla lishnix zapisej   {int i,nz;    Read_DB(n,p);    do     {cout<<"Vvedite nomer udaljaemoj zapisi ";      cin>>nz;      cout<<endl;      strcpy(a[nz].vid_tov,"***");      cout<<"Budete esche udaljat? y/n ";      cin>>ans;     }    while ((ans)=='y');    outstream.open(filename,ios::trunc);    for (i=0;i<n;i++)     {if (strcmp(a[i].vid_tov,"***"))       {outstream<<a[i].vid_tov<<endl<<a[i].obyem<<endl<<a[i].st_ed<<endl<<a[i].kol_pr_ed<<endl<<a[i].data<<endl;       }     }    cout<<endl;    outstream.close();   }  void Process_DB()  //procedura poiska v fajle nuzhnoj zapisi i prosmotra informacii po nej   {int i;    char nazva[20];    Read_DB(n,p);    cout<<"Vvedite nazvanie vida tovara ";    cin>>nazva;    cout<<endl;    for (i=0;i<n;i++)     {if (a[i].vid_tov==(nazva))      {cout<<a[i].vid_tov<<endl<<a[i].obyem<<endl<<a[i].st_ed<<endl<<a[i].kol_pr_ed<<endl<<a[i].data<<endl;       break;      }    cout<<endl;     }   }