Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
AplikacjaALX
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
AplikacjaALX
Commits
81d102bb
Commit
81d102bb
authored
May 10, 2024
by
patryk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Przeliczniki walut
parent
073e802a
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
138 additions
and
0 deletions
+138
-0
DrukujWaluty.java
src/main/java/waluty/DrukujWaluty.java
+0
-0
ProstyPrzelicznik.java
src/main/java/waluty/ProstyPrzelicznik.java
+50
-0
PrzelicznikKonsolowy.java
src/main/java/waluty/PrzelicznikKonsolowy.java
+88
-0
PrzelicznikWalutOkno.java
src/main/java/waluty/PrzelicznikWalutOkno.java
+0
-0
No files found.
src/main/java/waluty/DrukujWaluty.java
View file @
81d102bb
src/main/java/waluty/ProstyPrzelicznik.java
0 → 100644
View file @
81d102bb
package
waluty
;
import
java.math.BigDecimal
;
import
java.util.Optional
;
import
java.util.Scanner
;
/* Napisz program, który pobiera aktualne kursy (dodatkowa opcja - możliwość podania daty i pobranie archowalnego)
*
* Następnie: użytkownik podaje kod waluty oraz kwotę, a program przelicza kwotę w tej walucie na złote
* (ew. przeliczanie w drugą stronę)
*/
public
class
ProstyPrzelicznik
{
public
static
void
main
(
String
[]
args
)
{
Pobieranie
pobieranie
=
Pobieranie
.
utworz
(
"JSON"
);
Scanner
scanner
=
new
Scanner
(
System
.
in
);
System
.
out
.
println
(
"Podaj datę lub naciśnij enter, aby pobrać najnowsze kursy:"
);
String
data
=
scanner
.
nextLine
();
try
{
TabelaWalut
tabela
=
data
.
isBlank
()
?
pobieranie
.
pobierzBiezaceKursy
()
:
pobieranie
.
pobierzArchiwalneKursy
(
data
);
System
.
out
.
println
(
"Pobrano tabelę: "
+
tabela
);
System
.
out
.
println
(
"\nPodawaj kwoty do przeliczenia w postaci 1000 USD , a żeby zakończyć wpisz Q"
);
while
(
true
)
{
System
.
out
.
print
(
"> "
);
if
(
scanner
.
hasNextBigDecimal
())
{
BigDecimal
kwota
=
scanner
.
nextBigDecimal
();
String
kod
=
scanner
.
next
().
toUpperCase
();
Optional
<
Waluta
>
found
=
tabela
.
findByCode
(
kod
);
if
(
found
.
isPresent
())
{
Waluta
waluta
=
found
.
get
();
BigDecimal
wynik
=
waluta
.
przeliczNaZlote
(
kwota
);
System
.
out
.
println
(
wynik
+
" PLN"
);
}
else
{
System
.
out
.
println
(
"Nieznana waluta"
);
}
}
else
{
if
(
scanner
.
next
().
equalsIgnoreCase
(
"Q"
))
break
;
}
}
}
catch
(
BladAplikacji
e
)
{
System
.
out
.
println
(
"Nastąpił błąd: "
+
e
);
e
.
printStackTrace
(
System
.
out
);
}
System
.
out
.
println
(
"Do widzenia"
);
}
}
src/main/java/waluty/PrzelicznikKonsolowy.java
0 → 100644
View file @
81d102bb
package
waluty
;
import
java.math.BigDecimal
;
import
java.util.Locale
;
import
java.util.Optional
;
import
java.util.Scanner
;
public
class
PrzelicznikKonsolowy
{
private
Scanner
scanner
;
private
Pobieranie
pobieranie
;
public
PrzelicznikKonsolowy
()
{
scanner
=
new
Scanner
(
System
.
in
);
scanner
.
useLocale
(
Locale
.
US
);
}
public
static
void
main
(
String
[]
args
)
{
new
PrzelicznikKonsolowy
().
run
();
}
public
void
run
()
{
System
.
out
.
println
(
"Wybierz format danych: XML / JSON"
);
String
format
=
scanner
.
nextLine
().
trim
().
toUpperCase
();
switch
(
format
)
{
case
"XML"
->
pobieranie
=
new
PobieranieXML
();
case
""
,
"JSON"
->
pobieranie
=
new
PobieranieJSON
();
default
->
{
System
.
out
.
println
(
"Nieznany format, kończę program."
);
return
;
}
}
program:
while
(
true
)
{
System
.
out
.
println
(
"\nWpisz datę w formacie YYYY-MM-DD lub naciśnij ENTER, aby pobrać bieżące kursy."
);
System
.
out
.
println
(
"Możesz też wpisać Q , aby zakończyć program"
);
String
data
=
scanner
.
nextLine
();
try
{
TabelaWalut
tabela
;
switch
(
data
)
{
case
"q"
,
"Q"
->
{
break
program
;}
case
""
->
tabela
=
pobieranie
.
pobierzBiezaceKursy
();
default
->
tabela
=
pobieranie
.
pobierzArchiwalneKursy
(
data
);
}
dzialajDlaWybranejTabeli
(
tabela
);
}
catch
(
BladAplikacji
e
)
{
System
.
out
.
println
(
"Wyjątek! "
+
e
.
getMessage
());
}
}
System
.
out
.
println
(
"Koniec programu"
);
}
private
void
dzialajDlaWybranejTabeli
(
TabelaWalut
tabela
)
{
System
.
out
.
println
(
tabela
);
while
(
true
)
{
System
.
out
.
println
(
"\nPodaj kod waluty, lub Q aby zakończyć pracę z bieżącą tabelą"
);
String
code
=
scanner
.
nextLine
().
toUpperCase
();
if
(
"Q"
.
equals
(
code
))
{
break
;
}
Optional
<
Waluta
>
found
=
tabela
.
findByCode
(
code
);
if
(
found
.
isEmpty
())
{
System
.
out
.
println
(
"Nie ma waluty o kodzie "
+
code
);
continue
;
}
dzialajDlaWybranejWaluty
(
found
.
get
());
}
}
private
void
dzialajDlaWybranejWaluty
(
Waluta
waluta
)
{
System
.
out
.
println
(
"Wybrana waluta: "
+
waluta
.
getCode
()
+
" ("
+
waluta
.
getCurrency
()
+
")"
+
", kurs "
+
waluta
.
getMid
());
while
(
true
)
{
System
.
out
.
println
(
"\nPodaj kwotę do przeliczenia. 0 oznacza koniec:"
);
BigDecimal
kwota
=
scanner
.
nextBigDecimal
();
scanner
.
nextLine
();
if
(
kwota
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
break
;
}
BigDecimal
wynikWaluta
=
waluta
.
przeliczNaWalute
(
kwota
);
BigDecimal
wynikPLN
=
waluta
.
przeliczNaZlote
(
kwota
);
System
.
out
.
println
(
kwota
+
" "
+
waluta
.
getCode
()
+
" = "
+
wynikPLN
+
" PLN"
);
System
.
out
.
println
(
kwota
+
" PLN = "
+
wynikWaluta
+
" "
+
waluta
.
getCode
());
}
}
}
src/main/java/waluty/PrzelicznikWalutOkno.java
0 → 100644
View file @
81d102bb
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment