// klasa, struktura i duzo wskaznikow
// zxc.cpp : Defines the entry point for the console application.
//
#include <string>
#include "stdafx.h"
#include <conio.h>
class struct_Konto {
public:
float PvsM;
char Cos[10];
float Przychody;
float Odchody;
//float Ile;
};
struct_Konto konto[20];
void ZwrocTekst( char* ptr, int X);
float zarobek (int j);
///////////////////////////////////////////////
float zarobek (int j)
{
float zarobekX = 0;
for (int a=0; a<j;a++)
{
zarobekX += konto[a].Przychody;
}
return zarobekX;
}
//////////////////////////////////////////////////////////
float ObliczZarobek ( struct_Konto* ptr, int j)
{
float zarobekX = 0;
for (int a=0; a<j;a++)
{
zarobekX += ptr->Przychody;
ptr++;
}
return zarobekX;
}
////////////////////////////////////////////////////////
void ZwrocTekst( char* ptr, int X)
{
if (1 == X)
{
strcpy(ptr, "Czerwony");
}
if (2 == X)
{
strcpy(ptr, "Zielony");
}
if (3 == X)
{
*ptr++ = 'X';
*ptr++ = 'Y';
*ptr = 0;
}
}
/////////////////////////////////////////////////////////////
char* ZwrocTekst2( char* ptr, int X)
{
char* ptr1;
ptr1 = ptr;
if (1 == X)
{
strcpy(ptr, "Czerwony");
}
if (2 == X)
{
strcpy(ptr, "Zielony");
}
if (3 == X)
{
*ptr++ = 'X';
*ptr++ = 'Y';
*ptr = 0;
}
return ptr1;
}
///////////////////////////////
int _tmain(int argc, _TCHAR* argv[])
{
float procent = 0;
float strata =0;
float zarobekX =0;
char wybor;
int sprawdz;
int i=0;
int z=0;
int j=0;
char tekst[20];
//struct_Konto konto[20];
FILE *wczytaj;
wczytaj = fopen ("faktury.txt","r+");
if (NULL == wczytaj)
{
perror ("blad");
exit (1);
}
ZwrocTekst( (char*)&tekst, 1);
printf ("xxx %s\n", tekst );
ZwrocTekst( (char*)&tekst, 2);
printf ("xxx %s\n", tekst );
printf ("xxx %s\n", ZwrocTekst2( (char*)&tekst, 3) );
while (!feof (wczytaj)) {
fscanf (wczytaj,"%s %f", &konto[i].Cos, &konto[i].PvsM);
sprawdz = strcmp (konto[i].Cos,"+");
if ((sprawdz) == 0)
{
konto[j].Przychody = konto[i].PvsM;
printf ("Wczytalem przychod %s %.2f\n",konto[i].Cos,konto[j].Przychody);
zarobekX += konto[j].Przychody;
j++;
}
else {
konto[z].Odchody = konto[i].PvsM;
printf ("Wczytalem odchod %s %.2f\n",konto[i].Cos,konto[z].Odchody);
strata += konto[z].Odchody;
z++;
}
i++;
}
/////////////////////////////////////////////////////////////////////////////////////////////////
printf ("zarobek = %f\n", zarobek(j) );
printf ("zarobek = %f\n", ObliczZarobek( (struct_Konto*)&konto, j) );
//////////////////////////
do {
printf ("\n1 - pokaz liste przychodow\n2 - pokaz liste odchodow\n3 - ile zarobiles badz straciles\n4 - Policz 20%% z zysku\n5 - koniec\n");
scanf ("%d",&wybor);
switch (wybor)
{
case 1:
{
printf ("Lista przychodow:\n");
for (int a=0; a<j;a++)
{
printf (" %.2f \n", konto[a].Przychody);
}
break;
}
case 2:
{
printf ("Lista odchodow:\n");
for (int a=0; a<z;a++)
{
printf (" %.2f \n", konto[a].Odchody);
}
break;
}
case 3:
{
printf ("Zarobiles %.2f \n", zarobekX);
printf ("Straciles %.2f \n",strata);
if (zarobekX>strata)
{
printf ("Lacznie zarobiles %.2f\n",((zarobekX)-(strata)));
}
else
{
printf ("Lacznie straciles %.2f\n",((strata)-(zarobekX)));
}
break;
}
case 4:
{
if (zarobekX>strata)
{
procent = (zarobekX)-(strata);
procent = 0.20 * procent;
}
else
{
procent = 0;
}
printf ("Oto twoje 20%% - %.2f\n",procent);
break;
}
case 5:
{
exit (1);
break;
}
default:
printf ("nie ma takije opcji\n");
}
}while (wybor!=5);
_getch();
return 0;
}
Comments
0 B
|👍
/👎