Hellko

Untitled

Nov 26th, 2012
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.38 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct pt {
  5.     int code;
  6.     char date[11];
  7.     char code_buyer[20];
  8.     char artikul[20];
  9.     int cnt;
  10. };
  11.  
  12. void input(pt*&,FILE*,int&);
  13. void display(pt*,int,int);
  14.  
  15. int main() {
  16.     FILE *h; int count=0,z1=0;
  17.     int z;
  18.     h=fopen("bd.txt","r");
  19.     pt *zakazi;
  20.     if(h) while(!feof(h)) input(zakazi,h,count);
  21.     else {
  22.         printf("BD not Found...\n Created new BD...\n");
  23.         h=fopen("bd.txt","w");
  24.     }
  25.     fclose(h);
  26.     printf("ZAKAZI.\nVi mozhete prosmotret zakazi ili dobavit svoi");
  27.     while(true) {
  28.         printf("\n1: Prosmotret zakazi\n2: Dobavit zakaz\n0: Exit\n\n\tVashi deystviya: ");
  29.         scanf("%d",&z);
  30.         switch(z) {
  31.         case 0: return 0;
  32.         case 2: input(zakazi,NULL,count); break;
  33.         case 1: {
  34.             if(!count) {
  35.                 printf("Zakazov net");
  36.                 break;
  37.             }
  38.             printf("Viberite Kod Zakaza dlya prosmotra. \n(0: Vivesti vsu tablicy\n-1: ne vivodit ni4ego)\nZakaz N: ");
  39.             scanf("%d",&z1);
  40.             display(zakazi,count,z1);
  41.         } break;
  42.         default: break;
  43.         }
  44.     }
  45. }
  46.  
  47. void input(pt*& zakazi, FILE *h, int &count) {
  48.     bool found=false;
  49.     if(count) zakazi=(pt*)realloc(zakazi,(count+1)*sizeof(pt));
  50.     else zakazi=(pt*)calloc(1,sizeof(pt));
  51.     if(h) {
  52.         fscanf(h,"%d %s %s %s %d\n",&zakazi[count].code,&zakazi[count].date,&zakazi[count].code_buyer,&zakazi[count].artikul,&zakazi[count].cnt);
  53.     } else {
  54.         printf("\nDobavlenie novogo elementa:\n");
  55.         printf("Vvedite kod zakaza: ");
  56.         scanf("%d",&zakazi[count].code);
  57.  
  58.         for(int i=0;i<count;i++)
  59.             if(zakazi[count].code==zakazi[i].code) {found=true; break;}
  60.         if((found)||(zakazi[count].code<1)) {
  61.             if(found) printf("Takoi zakaz yzhe est!!!\n"); else printf("Nelzya vvodit takoi kod!!!\n");
  62.             zakazi=(pt*)realloc(zakazi,count*sizeof(pt));
  63.             return;
  64.         }
  65.         printf("Vvedite daty zakaza(dd.mm.yyyy)):");
  66.         scanf("%s",&zakazi[count].date);
  67.         printf("Vvedite kod pokypatelya: ");
  68.         scanf("%s",&zakazi[count].code_buyer);
  69.         printf("Vvedite artikul: ");
  70.         scanf("%s",&zakazi[count].artikul);
  71.         printf("Vvedite koli4estvo: ");
  72.         scanf("%d",&zakazi[count].cnt);
  73.         h=fopen("bd.txt","a");
  74.         fprintf(h,"%d %s %s %s %d\n",zakazi[count].code,zakazi[count].date,zakazi[count].code_buyer,zakazi[count].artikul,zakazi[count].cnt);
  75.         fclose(h);
  76.         printf("Zakaz dobavlen!\n");
  77.     }
  78.     count++;
  79. }
  80.  
  81. void display(pt* zakazi,int count,int num) {
  82.     bool found;
  83.     if(num==-1) return;
  84.     if(num==0)
  85.         for(int i=0;i<count;i++)
  86.             printf("=== Zakaz: %5d ===\nData: %30s\nKod Pokupatelya: %19s\nArtikul: %27s\nKoli4estvo: %24d\n====================\n",zakazi[i].code,zakazi[i].date,zakazi[i].code_buyer,zakazi[i].artikul,zakazi[i].cnt);
  87.     else {
  88.         found=false;
  89.         for(int i=0;i<count;i++)
  90.             if(zakazi[i].code==num) {
  91.                 printf("=== Zakaz: %5d ===\nData: %30s\nKod Pokupatelya: %19s\nArtikul: %27s\nKoli4estvo: %24d\n====================\n",zakazi[i].code,zakazi[i].date,zakazi[i].code_buyer,zakazi[i].artikul,zakazi[i].cnt);
  92.                 found=true;
  93.                 break;
  94.             }
  95.         if(!found) printf("Zakaz %3d ne naiden!\n",num);
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment