daily pastebin goal
41%
SHARE
TWEET

Untitled

a guest Jan 20th, 2019 57 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <iomanip>
  5. #include <stdio.h>
  6. #include <cstdlib>
  7. #define MAX 100
  8. using namespace std;
  9. struct zapis
  10. {
  11.     int sifra;
  12.     string opis;
  13.     float edinecnacena;
  14.     int vleznakolicina;
  15.     int izleznakolicina;
  16.     float danocnastapka;
  17.     float iznos;
  18.     int datum;
  19. };
  20. bool proveridata(int data)
  21. {  
  22.     int year=data/10000;
  23.     int month=(data/100)%100;
  24.     int day=data%100;
  25.    
  26.      if(day < 1 || day > 31)
  27.         return false;
  28.         else
  29.      if(month < 1 || month > 12)
  30.         return false;
  31.        
  32.  
  33.     if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31)
  34.         return false;
  35.     else if ((month == 2) && (year % 4 == 0) && day > 29)
  36.         return false;
  37.  
  38.     else if ((month == 2) && (year % 4 != 0) && day > 28)
  39.         return false;
  40.     return true;
  41. }
  42. void vlez(struct zapis artikal[], int i)
  43. {
  44.     do
  45.     {
  46.         cout<<"Vnesi sifra na artikal :";
  47.         cin>>artikal[i].sifra;
  48.         if(artikal[i].sifra<1 || artikal[i].sifra>99999)
  49.         cout<<"Vnesovte nevalidna sifra"<<endl;
  50.     }while(artikal[i].sifra<1 || artikal[i].sifra>99999);
  51.    
  52.     do
  53.     {
  54.         cout<<"Vnesete opis na artikal (Vnesete . za kraj) ";
  55.         getline(cin,artikal[i].opis,'.');
  56.         if(artikal[i].opis.size()>30)
  57.         cout<<"Vnesovte opis podolg od 30 karakteri"<<endl;;
  58.     }while(artikal[i].opis.size()>30);
  59.    
  60.     cout<<"Vnesi edinecna cena ";
  61.     cin>>artikal[i].edinecnacena;
  62.    
  63.     do
  64.     {
  65.         cout<<"Vnesi vlezna kolicina na artikal :";
  66.         cin>>artikal[i].vleznakolicina;
  67.         if(artikal[i].vleznakolicina<0 || artikal[i].vleznakolicina>99999)
  68.         cout<<"Vnesovte nevalidna kolicina"<<endl;
  69.     }while(artikal[i].vleznakolicina<0 || artikal[i].vleznakolicina>99999);
  70.    
  71.     artikal[i].izleznakolicina=0;
  72.     artikal[i].danocnastapka=0;
  73.     do
  74.     {
  75.     cout<<"Vnesi datum vo format GGMMDD :";
  76.     cin>>artikal[i].datum;
  77.     if(!proveridata(artikal[i].datum))
  78.     cout<<"Nevaliden datum ";
  79.     }while(!proveridata(artikal[i].datum));
  80.    
  81. }
  82. void izlez(struct zapis artikal[], int i)
  83. {
  84.     do
  85.     {
  86.         cout<<"Vnesi sifra na artikal :";
  87.         cin>>artikal[i].sifra;
  88.         if(artikal[i].sifra<1 || artikal[i].sifra>99999)
  89.         cout<<"Vnesovte nevalidna sifra"<<endl;
  90.     }while(artikal[i].sifra<1 || artikal[i].sifra>99999);
  91.    
  92.     do
  93.     {
  94.         cout<<"Vnesete opis na artikal (Vnesete . za kraj) ";
  95.         getline(cin,artikal[i].opis,'.');
  96.         if(artikal[i].opis.size()>30)
  97.         cout<<"Vnesovte opis podolg od 30 karakteri"<<endl;;
  98.     }while(artikal[i].opis.size()>30);
  99.    
  100.     cout<<"Vnesi edinecna cena ";
  101.     cin>>artikal[i].edinecnacena;
  102.    
  103.     artikal[i].vleznakolicina=0;
  104.    
  105.     do
  106.     {
  107.         cout<<"Vnesi izlezna kolicina na artikal :";
  108.         cin>>artikal[i].izleznakolicina;
  109.         if(artikal[i].izleznakolicina<1 || artikal[i].izleznakolicina>99999)
  110.         cout<<"Vnesovte nevalidna kolicina"<<endl;
  111.     }while(artikal[i].izleznakolicina<1 || artikal[i].izleznakolicina>99999);
  112.    
  113.     cout<<"Vnesi danocna stapka :";
  114.     cin>>artikal[i].danocnastapka;
  115.     do
  116.     {
  117.     cout<<"Vnesi datum vo format GGMMDD :";
  118.     cin>>artikal[i].datum;
  119.     if(!proveridata(artikal[i].datum))
  120.     cout<<"Nevaliden datum ";
  121.     }while(!proveridata(artikal[i].datum));
  122. }
  123.  
  124. int main ()
  125. {
  126.     struct zapis artikal[MAX];
  127.     int n,stavka;
  128.     cout<<"Vnesete broj na artikli "<<endl;
  129.     cin>>n;
  130.     for (int i=0;i<n;i++)
  131.     {
  132.         cout<<"Vnesete 1 za vlez ili 2 za izlez :";
  133.         cin>>stavka;
  134.         if(stavka==1)
  135.         {
  136.         vlez(artikal,i);
  137.         artikal[i].iznos=artikal[i].vleznakolicina*artikal[i].edinecnacena;}
  138.         else
  139.         if(stavka==2)
  140.         {
  141.         izlez(artikal,i);
  142.         artikal[i].iznos=(artikal[i].edinecnacena-(artikal[i].edinecnacena*artikal[i].danocnastapka)/100)*artikal[i].izleznakolicina;}
  143.     }
  144.     ofstream out;
  145.     out.open("vnos.dat");
  146.     for(int i=0;i<n;i++)
  147.     {
  148.         out<<setw(5)<<artikal[i].sifra<<" ";
  149.         out<<setw(30)<<artikal[i].opis<<" ";
  150.         out<<fixed<<setw(12)<<setprecision(2)<<artikal[i].edinecnacena<<" ";
  151.         out<<setw(6)<<artikal[i].vleznakolicina<<" ";
  152.         out<<setw(6)<<artikal[i].izleznakolicina<<" ";
  153.         out<<fixed<<setw(10)<<setprecision(2)<<artikal[i].danocnastapka<<" ";
  154.         out<<fixed<<setw(15)<<setprecision(2)<<artikal[i].iznos<<" ";
  155.         if(artikal[i].datum<1000)
  156.         out<<setw(6)<<"000"<<artikal[i].datum<<" ";
  157.         else
  158.         if(artikal[i].datum<10000)
  159.         out<<setw(6)<<"00"<<artikal[i].datum<<" ";
  160.         else if(artikal[i].datum<100000)
  161.         out<<setw(6)<<"0"<<artikal[i].datum<<" ";
  162.         else out<<setw(6)<<artikal[i].datum<<" ";
  163.         out<<endl;     
  164.     }
  165.     out.close();
  166.     return 0;
  167. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top