Ještě bych potřeboval pomoct. Když zadám 2 a více faktur tak mi to při výpisu faktur vypíše jako hodnoty 0. Při jedné to funguje. Nemohu najít chybu. Druhá otázka je jak vytvořit výčtový typ TYP, kde budou 2 možnosti "vydana" a "prijata". Uživatel si bude možnost vybirat při vytvářeni nové faktury. Zde zasilam kód (vím, že je tam plno zbytečností, budu se je snažit později odstranit. Děkuji za pomoc.
#include "stdafx.h"
#include "ctype.h"
#include "stdio.h"
#include <iostream>
#include <string>
using namespace std ;
#pragma warning(disable : 4996)
int a;
int i = 0;
int pocetfaktur = 0;
struct faktura
{
int cislo;
double castkabezdph;
int sazbadph;
unsigned int den;
unsigned int mesic;
unsigned int rok;
int typ;
} ;
faktura fakt[10];
void VYD()
{
printf("Zadej cislo faktury: \n");
scanf("%i",&fakt[i].cislo);
printf("Zadej castku faktury bez DPH: \n");
scanf("%d",&fakt[i].castkabezdph);
printf("Zadej sazbu DPH v % (0,15 nebo 21): \n");
scanf("%i",&fakt[i].sazbadph);
printf("Zadej den vystaveni faktury: \n");
scanf("%i",&fakt[i].den);
printf("Zadej mesic vystaveni faktury: \n");
scanf("%i",&fakt[i].mesic);
printf("Zadej rok vystaveni faktury: \n");
scanf("%i",&fakt[i].rok);
printf("Faktura s cislem %i byla uspesne ulozena!\n",fakt[i].cislo);
pocetfaktur++;
return;
}
void vytvorfakturu() //vytvoreni faktury
{
int vol;
printf("Zadejte typ faktury, chtery chcete vytvorit: \n");
printf("1 - Vydana faktura \n");
printf("2 - Prijata faktura: \n");
scanf("%i",&vol);
if ( vol == 1 )
{
VYD();
}
if ( vol == 2 )
{
printf("cislo faktury je: %i \n",fakt[1].cislo);
}
if ((vol > 2) || (vol < 1)) {
printf("Zadal jste spatnou volbu! \n");
printf("\n");
vytvorfakturu();
}
};
void vypisfakturu() //vypsani faktury
{ printf("------Vypis faktur-------\n");
printf("\n");
for ( int i = 0 ; i<= pocetfaktur; i++) {
printf("\n");
printf("Cislo faktury: %i\n",fakt[i].cislo);
printf("Castka bez DPH: %d\n",fakt[i].castkabezdph);
printf("Sazba DPH: %i %\n",fakt[i].sazbadph);
printf("Datum vystaveni faktury: %i. %i. %i\n",fakt[i].den,fakt[i].mesic,fakt[i].rok);
printf("\n");
};
return;
};
int _tmain(int argc, _TCHAR* argv[])
{
int volba = 0;
printf(" ---- Vaclav Lezak ukol c.3 ---- \n ");
do
{
// menu
printf(" \n ");
printf("-------------------------------\n");
printf(" 1 - Vytvorit fakturu \n ");
printf(" 2 - Uhrada faktury \n ");
printf(" 3 - Vypis faktur \n ");
printf(" 4 - Vypis faktur ve zvolenem obdobi splatnosti \n ");
printf(" 0 - Ukoncit program \n ");
printf("-------------------------------\n");
// nacte se volba vybrana uzivatelem a podle toho se vybere case
printf(" Zadej volbu: \n ");
scanf("%d", &volba);
switch(volba)
{
case 1: vytvorfakturu();
break;
case 2:
break;
case 3: vypisfakturu();
break;
case 4:
break;
case 0: return 0;
break;
default: printf(" Zadal jsi neplatnou vulbu!Zadej znova! \n ");
}
}while(true);
return 0;
}