Mjenacnjica-aplikacija u C-u

poruka: 21
|
čitano: 2.908
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
protjeran
offline
Mjenacnjica-aplikacija u C-u

Pozdrav svima!

Mjenjacnjica je aplikacija na kojoj trenutno radim.

Radi se o aplikaciji otvorenog koda, jer drugo ni nema smisla. (kod ću kasnije uploadat)

Znači, uzevši u obzir da bi ime Mjenjačnica bilo nekako, ozbiljno, neki sam dan bio u Mađarskoj i vidio natpis Mjenacnjica, pa sam pomislio: Zašto ne?

I eto, znači znate o čemu se radi, aplikacija koja pretvara valute.

Za sad može jedino HRK u: EUR, GBP, CHF, USD i obratno.

Aplikacija još nema GUI već je samo TXT, pa ako se nekome da, neka napiše, jer ja o GUIu nemam pojma.

Tražim ljude za beta testing na windowsima, jer radim na linuxu.

Postajte ako ste za beta testing ili pošaljite pm.

Ako pak vidite neš što bi trebalo popravit u kodu ili doraditi (čitaj: ocjeniti kod-aplikaciju) učiniti isto kao i na prethodnoj rečenici.

Pa eto to je to, hvala na čitanju!

 

 

KOD PROGRAMA

KOD APLIKACIJE ZA UPISIVANJE TECAJEVA

 

 

EDIT: sigurno ste primjetili da koristim goto u kodu, znam da je to loše, ali ako netko zna to bolje, nek napravi, barem ja i možda netko drugi, neš naučim

#include <cstdio> int main () { printf ("1F Y0U C4N R34D TH15 Y0U 5H0
Poruka je uređivana zadnji put sub 30.4.2011 17:43 (beno101).
Moj PC  
0 0 hvala 0
17 godina
offline
Mjenacnjica-aplikacija u C-u

Riješi unos tečajeva, ne može ti tečaj biti konstantna varijabla, to se mijenja svaki dan

 
0 0 hvala 0
15 godina
protjeran
offline
Re: Mjenacnjica-aplikacija u C-u
Floki kaže...

Riješi unos tečajeva, ne može ti tečaj biti konstantna varijabla, to se mijenja svaki dan

Da na to sam mislio, ali osim ako mi HNB ne dopusti FTP pristup da pregledavam datoteku s tečajevima, neznam kako riješit.

Imaš prijedlog?

 

#include <cstdio> int main () { printf ("1F Y0U C4N R34D TH15 Y0U 5H0
17 godina
offline
Re: Mjenacnjica-aplikacija u C-u
beno101 kaže...
Floki kaže...

Riješi unos tečajeva, ne može ti tečaj biti konstantna varijabla, to se mijenja svaki dan

Da na to sam mislio, ali osim ako mi HNB ne dopusti FTP pristup da pregledavam datoteku s tečajevima, neznam kako riješit.

Imaš prijedlog?

 

Ne zam na način da implementiram neki on-line servis, ja bi unio u progam opciju unesi tečaj s tim da bi podatke ručno unio u datoteku preko konzole, pa ih čitao iz datoteke.

15 godina
protjeran
offline
Re: Mjenacnjica-aplikacija u C-u
Floki kaže...

Ne zam na način da implementiram neki on-line servis, ja bi unio u progam opciju unesi tečaj s tim da bi podatke ručno unio u datoteku preko konzole, pa ih čitao iz datoteke.

Ok, bacam se na posao.

 

#include <cstdio> int main () { printf ("1F Y0U C4N R34D TH15 Y0U 5H0
15 godina
offline
Mjenacnjica-aplikacija u C-u

Bilo 1000 puta bolje i jednostavnije da si koristio funkcije!

Unatoč glupome nadimku kojeg ne mogu promijeniti,ne igram CoD i sl.
 
0 0 hvala 0
15 godina
protjeran
offline
Re: Mjenacnjica-aplikacija u C-u
captain_soap_McTawish kaže...

Bilo 1000 puta bolje i jednostavnije da si koristio funkcije!

Zašto bi bilo bolje?

I što ako ja ne želim da bude jednostavno?

 

#include <cstdio> int main () { printf ("1F Y0U C4N R34D TH15 Y0U 5H0
15 godina
offline
Mjenacnjica-aplikacija u C-u

Ja tebi samo predlažem. Ti mene ne moraš poslušati, no ja samo napominjem da bi se manje mučio i da bi kod bilo lakše prepavljati kada bi koristio funkcije. No tvoj je izbor.

Unatoč glupome nadimku kojeg ne mogu promijeniti,ne igram CoD i sl.
 
0 0 hvala 0
15 godina
protjeran
offline
Mjenacnjica-aplikacija u C-u

Eto!

Na odličan prijedlog Flokija, napravio sam još jednu aplikaciju koja upisuje tečajeve u određene datoteke.

Znači, prije otvaranje pokrenete tecajevi i tamo odaberete koji tečaj želite upisati, zatim se naprave 4 mape, eur.dat, usd.dat, gbp.dat i chf.dat u njima se nalaze, ovisno o tome u koje ste upisali, tečajevi.

Pa eto!

Molim da isprobate, tj. bio bih stvarno zahvalan!

Ovdje je kod od programa.

Ovdje je kod od aplikacije za upisivanje tečajeva.

 

 

#include <cstdio> int main () { printf ("1F Y0U C4N R34D TH15 Y0U 5H0
Moj PC  
0 0 hvala 0
16 godina
offline
Mjenacnjica-aplikacija u C-u

Refactoraj ovo, pojednostavni, koristi funkcije i ... Dont repeat yourself

DUMP udruga mladih programera
Poruka je uređivana zadnji put sub 30.4.2011 18:12 (Fearless).
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Mjenacnjica-aplikacija u C-u

Svakako izbjegavaj goto naredbu. To nisu dobri principi programiranja. Umjesto toga, posao bi trebalo grupirati kroz funkcije. Nekako ovako:

 

#include <stdio.h>
#include <stdlib.h>

int sucelje() {
    int pom;
    system("clear");
    printf("*****************************************\n");
    printf("*               Mjenacnjica             *\n");
    printf("* * * * * * * * * * * * * * * * * * * * *\n");
    printf("*ODABERITE PRETVORBU:                   *\n");
    printf("* 1) HRK u EUR             5) EUR u HRK *\n");
    printf("* 2) HRK u USD             6) USD u HRK *\n");
    printf("* 3) HRK u GBP             7) GBP u HRK *\n");
    printf("* 4) HRK u CHF             8) CHF u HRK *\n");
    printf("*****************************************\n");
    printf("* VAS ODABIR:                           *");
    scanf("%d", &pom);
    return pom;
}
void Pretvori(int odabir, char* valuta1, char* valuta2) {
    // tečajevi
    const float eur = 7.332286;
    const float usd = 4.932584;
    const float gbp = 8.220973;
    const float chf = 5.689235;
    float kolicina;
    int izbor;

    system("clear");
    printf("Odabrali ste pretvorbu\n");
    printf("%s -> %s.\n", valuta1, valuta2);
    printf("KOLICINA %s: ", valuta1);
    scanf("%f", &kolicina);

    if (odabir == 1) printf("%.2f %s iznosi %.2f %s", kolicina, valuta1, kolicina / eur, valuta2);
    if (odabir == 2) printf("%.2f %s iznosi %.2f %s", kolicina, valuta1, kolicina / usd, valuta2);
    if (odabir == 3) printf("%.2f %s iznosi %.2f %s", kolicina, valuta1, kolicina / gbp, valuta2);
    if (odabir == 4) printf("%.2f %s iznosi %.2f %s", kolicina, valuta1, kolicina / chf, valuta2);
    if (odabir == 5) printf("%.2f %s iznosi %.2f %s", kolicina, valuta1, eur * kolicina, valuta2);
    if (odabir == 6) printf("%.2f %s iznosi %.2f %s", kolicina, valuta1, usd * kolicina, valuta2);
    if (odabir == 7) printf("%.2f %s iznosi %.2f %s", kolicina, valuta1, gbp * kolicina, valuta2);
    if (odabir == 8) printf("%.2f %s iznosi %.2f %s", kolicina, valuta1, chf * kolicina, valuta2);
}
int main() {
    int odabir = 1, menu = 0;

    do {
       odabir = sucelje();

       if(odabir == 1)    Pretvori(odabir, "KN", "EUR");
       if(odabir == 2)    Pretvori(odabir, "KN", "USD");
       if(odabir == 3)    Pretvori(odabir, "KN", "GBP");
       if(odabir == 4)    Pretvori(odabir, "KN", "CHF");
       if(odabir == 5)    Pretvori(odabir, "EUR", "KN");
       if(odabir == 6)    Pretvori(odabir, "USD", "KN");
       if(odabir == 7)    Pretvori(odabir, "GBP", "KN");
       if(odabir == 8)    Pretvori(odabir, "CHF", "KN");
       printf("\n**********************\n");
       printf("ODABERITE SLJEDECI KORAK:\n");
       printf("1) povratak na meni\n");
       printf("2) izlaz iz aplikacije\n");
       printf("**********************\n");
       printf("VAS ODABIR: ");
       scanf("%d", &menu);
       if (menu == 1)
          continue;
       else
          return 0;
    }while (odabir > 0 && odabir <= 8);
    return 0;
}

 

Nabrzaka sklepano pa provjeri.

Poruka je uređivana zadnji put sub 30.4.2011 18:28 (TracerCPP).
Moj PC  
0 0 hvala 0
15 godina
offline
Mjenacnjica-aplikacija u C-u

#include <stdio.h>

float tecaj[5][5]={{1,0.14,0.20,0.12,0.18},{7.35,1,1.49,0.89,1.29},{4.95,0.67,1,0.60,0.87},{8.25,1.12,1.67,1,1.45},{5.71,0.78,1.15,0.69,1}};

int izabir_valute(char unos[]){
    int x,a;
    printf("Izaberite %s valutu!\n",unos);
    printf("1 -HRK\n");
    printf("2 -EUR\n");
    printf("3 -USD\n");
    printf("4 -GPG\n");
    printf("5 -CHF\n");
    scanf("%d",&x);
    a=x-1;
return a;
}
void mijen(int ulazna, int izlazna,char ulaz[],char izlaz[]){
    float unos,ispis;
    printf("Odabrali ste pretvorbu %s u %s.\n",ulaz,izlaz);
    printf("Unesite iznos u %s.\n",ulaz);
    scanf("%f",&unos);
    ispis=unos*tecaj[ulazna][izlazna];
    printf("%f %s u %s iznosi %f",unos,ulaz,izlaz,ispis);
}
int main()
{
    int ulaz,izlaz;
    char a='n';
    char slov[5][4]={"HRK","EUR","USD","GPG","CHF"};
    ulaz=izabir_valute("ulaznu");
    izlaz=izabir_valute("izlaznu");
    mijen(ulaz,izlaz,slov[ulaz],slov[izlaz]);
    return 0;
}

 

  Napisao sam ti kako bi to bolje i kvalitetnije izvbeo u funkcijama. Sada imaš puno jednostavniju prevorbu i veći izbor valuta. Možeš iz bilo koje u bilo koju hoćeš.

I napisano je bez ijednog if grananja

 

EDIT: Dok sam pisao kod i iamo otvorenu Novu poruku kolega @TracerCPP me prestigao

Unatoč glupome nadimku kojeg ne mogu promijeniti,ne igram CoD i sl.
Poruka je uređivana zadnji put sub 30.4.2011 18:39 (captain_soap_McTawish).
 
0 0 hvala 0
14 godina
neaktivan
offline
Mjenacnjica-aplikacija u C-u

@beno101 imam ograničenje privatnih poruka pa ne mogu sad odgovoriti.

Moj PC  
0 0 hvala 0
15 godina
protjeran
offline
Re: Mjenacnjica-aplikacija u C-u
TracerCPP kaže...

@beno101 imam ograničenje privatnih poruka pa ne mogu sad odgovoriti.

Kužim, zbog 0 dana... {#}

#include &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; int main () { printf (&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;1F Y0U C4N R34D TH15 Y0U 5H0
15 godina
protjeran
offline
Mjenacnjica-aplikacija u C-u

Eh!
Tek sam sad skužio Tracerov kod, buljim, buljim, i nikako da skužim.

Nego, što bi se još moglo dodati (osim GUIa) ?

 

#include &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; int main () { printf (&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;1F Y0U C4N R34D TH15 Y0U 5H0
Moj PC  
0 0 hvala 0
15 godina
offline
Mjenacnjica-aplikacija u C-u

Za početak omogući pretvaranje iz bilo koje valute koju imaš na raspolaganju u bilo koju hoćeš. Pogledaj moj kod gore da vidiš kako je to izvedeno. U tvoem kodu ima izvedeno samo iz HRK u neku, ili iz neke u HRK.

Unatoč glupome nadimku kojeg ne mogu promijeniti,ne igram CoD i sl.
 
0 0 hvala 0
17 godina
offline
Mjenacnjica-aplikacija u C-u

Onda se to može riješiti preko jedne strukture i jedne funkcije,

ovdje je bitna funkcija konverter, a stvar je tehnike kako riješiti sučelje i unos tečaja

u primjeru konverter pretvara eure u funte:

 

 

#include<stdio.h>

struct Valuta
{
    char* naziv;
    float tecaj;
}kuna, euro, usDolar, funta, svicarskiFranak;

float konverter(float vrijednost, Valuta convertFrom, Valuta convertTo)
{
    float rezultat = (vrijednost * convertFrom.tecaj) / convertTo.tecaj;
    return rezultat;
}




int main()
{
    float vrijednost, rezultat;
    kuna.naziv = "HRK";
    euro.naziv = "EUR";
    usDolar.naziv = "USD";
    funta.naziv = "GBP";
    svicarskiFranak.naziv = "CHF";

    kuna.tecaj = 1;
    euro.tecaj = 7.332286;
    usDolar.tecaj = 4.932584;
    funta.tecaj = 8.220973;
    svicarskiFranak.tecaj = 5.689235;

    printf("Unesi vrijednost: ");
    scanf("%f", &vrijednost);

    rezultat = konverter(vrijednost, euro, funta);
    printf("%.2f %s = %.2f %s\n", vrijednost, euro.naziv, rezultat, funta.naziv);

}

Poruka je uređivana zadnji put ned 1.5.2011 20:58 (Floki).
 
0 0 hvala 0
16 godina
neaktivan
offline
Re: Mjenacnjica-aplikacija u C-u
beno101 kaže...
Floki kaže...

Riješi unos tečajeva, ne može ti tečaj biti konstantna varijabla, to se mijenja svaki dan

Da na to sam mislio, ali osim ako mi HNB ne dopusti FTP pristup da pregledavam datoteku s tečajevima, neznam kako riješit.

Imaš prijedlog?

 

  http://www.hnb.hr/tecajn/f050511.dat

 

formatirana datoteka za tečajnu listu, filename je datum kao sto vidis.

 

http://www.hnb.hr/tecajn/htecajn.htm - opis formata

 

To sam ja koristio za svoj C# konverter. Potegne pri startupu datoteku ako je nema za danasnji dan, utrpa u bazu i konvertiraj. a imas i stare tecajne liste ako zatreba.

17 godina
offline
Re: Mjenacnjica-aplikacija u C-u
Dr. Zoidberg kaže...
beno101 kaže...
Floki kaže...

Riješi unos tečajeva, ne može ti tečaj biti konstantna varijabla, to se mijenja svaki dan

Da na to sam mislio, ali osim ako mi HNB ne dopusti FTP pristup da pregledavam datoteku s tečajevima, neznam kako riješit.

Imaš prijedlog?

 

 http://www.hnb.hr/tecajn/f050511.dat

 

formatirana datoteka za tečajnu listu, filename je datum kao sto vidis.

 

http://www.hnb.hr/tecajn/htecajn.htm - opis formata

 

To sam ja koristio za svoj C# konverter. Potegne pri startupu datoteku ako je nema za danasnji dan, utrpa u bazu i konvertiraj. a imas i stare tecajne liste ako zatreba.

ajde mi daj natuknice da to napravim u C#, kako da na internetu pristupim toj datoteci i stavim je u C# aplikaciju?

Poruka je uređivana zadnji put čet 5.5.2011 12:39 (Floki).
14 godina
neaktivan
offline
Mjenacnjica-aplikacija u C-u

Jedna od opcija može biti i ovo:

 

using System.Net;

 

System.Net.WebClient client = new WebClient();
client.DownloadFile("http://www.hnb.hr/tecajn/f050511.dat", "tecaj.dat");

 

 

i sada kada je datoteka na disku pročitaš ju kao i svaku drugu (StreamReader-om).

Moj PC  
0 0 hvala 2
17 godina
offline
Re: Mjenacnjica-aplikacija u C-u
TracerCPP kaže...

Jedna od opcija može biti i ovo:

 

using System.Net;

 

System.Net.WebClient client = new WebClient();
client.DownloadFile("http://www.hnb.hr/tecajn/f050511.dat", "tecaj.dat");

 

 

i sada kada je datoteka na disku pročitaš ju kao i svaku drugu (StreamReader-om).

aha, kužim, u klasi WebClient instanciram objekt i imam metod DownloadFile(), na taj način napravim update datoteke tecaj.dat, i stvar riješena

Thanks{#}

Poruka je uređivana zadnji put čet 5.5.2011 14:02 (Floki).
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice