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; } }