From 501f7c4636e654484875a75844c07ae572d65e06 Mon Sep 17 00:00:00 2001 From: spicjrxz <jimi.r.n.spice@student.jyu.fi> Date: Sat, 29 Mar 2025 21:46:41 +0200 Subject: [PATCH] =?UTF-8?q?Yksikk=C3=B6=20ja=20monikkoluokat=20lis=C3=A4tt?= =?UTF-8?q?y=20ohjelmaan.=20Yksik=C3=B6iss=C3=A4=20muodostajat=20ja=20gets?= =?UTF-8?q?et-metodit.=20Lasku-oliossa=20p=C3=A4iv=C3=A4m=C3=A4=C3=A4r?= =?UTF-8?q?=C3=A4tarkistin.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/harjoitustyofx/KirjakatalogiMain.java | 1 - Fanttikvariaatti/src/rekisteri/Kirja.java | 152 +++++++++++++++ Fanttikvariaatti/src/rekisteri/Kirjat.java | 5 + Fanttikvariaatti/src/rekisteri/Lasku.java | 173 ++++++++++++++++++ Fanttikvariaatti/src/rekisteri/Laskut.java | 5 + .../src/rekisteri/RekisteriMain.java | 5 + 6 files changed, 340 insertions(+), 1 deletion(-) create mode 100644 Fanttikvariaatti/src/rekisteri/Kirja.java create mode 100644 Fanttikvariaatti/src/rekisteri/Kirjat.java create mode 100644 Fanttikvariaatti/src/rekisteri/Lasku.java create mode 100644 Fanttikvariaatti/src/rekisteri/Laskut.java create mode 100644 Fanttikvariaatti/src/rekisteri/RekisteriMain.java diff --git a/Fanttikvariaatti/src/harjoitustyofx/KirjakatalogiMain.java b/Fanttikvariaatti/src/harjoitustyofx/KirjakatalogiMain.java index d76c8c0..f957d59 100644 --- a/Fanttikvariaatti/src/harjoitustyofx/KirjakatalogiMain.java +++ b/Fanttikvariaatti/src/harjoitustyofx/KirjakatalogiMain.java @@ -7,7 +7,6 @@ import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.fxml.FXMLLoader; - /** * @author jimis * @version 16.2.2025 diff --git a/Fanttikvariaatti/src/rekisteri/Kirja.java b/Fanttikvariaatti/src/rekisteri/Kirja.java new file mode 100644 index 0000000..84b5ff2 --- /dev/null +++ b/Fanttikvariaatti/src/rekisteri/Kirja.java @@ -0,0 +1,152 @@ +package rekisteri; + +/*** + * Kirja luokka. + * @author jimis + * @version 29.3.2025 + * + */ +public class Kirja { + + private String teos = ""; + private String kirjailija = ""; + private double hinta; + private int sivumaara; + + /** + * Tyhjä muodostaja + */ + public Kirja() + { + } + + /** + * Kirja-olion muodostaja. + * @param teos teoksien nimi + * @param kirjailija kirjailijan nimi + * @param hinta kirjan hinta + * @param sivumaara sivumäärä + */ + public Kirja(String teos, String kirjailija, double hinta, int sivumaara) + { + this.teos = teos; + this.kirjailija = kirjailija; + this.sivumaara = sivumaara; + this.hinta = hinta; + } + + /** + * Haetaan Teoksen nimi + * @return Teoksen nimi + */ + public String getTeos() + { + return teos; + } + + /** + * Haetaan kirjailijan nimi + * @return kirjailijan nimi + */ + public String getKirjailija() + { + return kirjailija; + } + + /** + * Haetaan hinta + * @return hinta + */ + public double getHinta() + { + return hinta; + } + + /** + * Haetaan sivumaara + * @return sivumaara + */ + public int getSivumaara() + { + return sivumaara; + } + + + /** + * Muokataan kirja-olion nimeä + * @param uusiNimi uusi Nimi + */ + public void setTeos(String uusiNimi) + { + teos = uusiNimi; + + } + + /** + * Muokataan kirja-olion hintaa + * @param uusiHinta uusi hinta + */ + public void setHinta(String uusiHinta) + { + StringBuilder hintateksti =new StringBuilder(uusiHinta); + for(int i = 0; i<uusiHinta.length(); i++) + { + if(uusiHinta.charAt(i) == ',') + { + hintateksti.setCharAt(i, '.'); + } + } + double uusiHintaInt = Double.parseDouble(hintateksti.toString()); + if(uusiHintaInt > 0) + { + hinta = uusiHintaInt; + } + } + + /** + * Muokataan kirja-olion kirjailijaa + * @param uusiKirjailija uusi kirjialija. + */ + public void setKirjailija(String uusiKirjailija) + { + kirjailija = uusiKirjailija; + } + + /** + * Muokataan kirja-olion sivumäärää + * @param uusiSivumaara uusi sivumäärä. + */ + public void setSivumaara(String uusiSivumaara) + { + try + { + sivumaara = Integer.parseInt(uusiSivumaara); + } + catch(Exception e) + { + System.out.println("Sivumäärän oltava kokonaisluku"); + } + } + + /** + * Pääohjelma + * @param args ei käytössä + */ + public static void main(String args[]) + { + Kirja Kurjat = new Kirja(); + Kurjat.setHinta("13,50"); + Kurjat.setSivumaara(null); + Kurjat.setTeos("Kurjat"); + Kurjat.setKirjailija("Victor Hugo"); + Kurjat.setSivumaara("1050"); + System.out.println("Kirjan nimi on " + Kurjat.getTeos()); + System.out.println("Kirjailija on " + Kurjat.getKirjailija()); + System.out.println("Kirjassa on " + Kurjat.getSivumaara() + " Sivua"); + System.out.println("Kirjan hinta on " + Kurjat.getHinta()+ "€."); + Kurjat.setHinta("9.25"); + System.out.println("Kirjan alennettu hinta on " + Kurjat.getHinta()+ "€."); + + } + +} diff --git a/Fanttikvariaatti/src/rekisteri/Kirjat.java b/Fanttikvariaatti/src/rekisteri/Kirjat.java new file mode 100644 index 0000000..d01dd7f --- /dev/null +++ b/Fanttikvariaatti/src/rekisteri/Kirjat.java @@ -0,0 +1,5 @@ +package rekisteri; + +public class Kirjat { + +} diff --git a/Fanttikvariaatti/src/rekisteri/Lasku.java b/Fanttikvariaatti/src/rekisteri/Lasku.java new file mode 100644 index 0000000..a887a8f --- /dev/null +++ b/Fanttikvariaatti/src/rekisteri/Lasku.java @@ -0,0 +1,173 @@ +package rekisteri; + +/*** + * Lasku luokka. + * @author jimis + * @version 29.3.2025 + * + */ +public class Lasku { + + private String sahkoposti = ""; + private String nimi = ""; + private boolean maksettu; + private double hinta; + private final int[] erapaiva = new int[] {1,1,2025}; + private final int[][] kuukausienMitat = {{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}}; + /** + * Tyhjä muodostaja + */ + public Lasku() + { + } + + /** + * Lasku-olion muodostaja. + * @param nimi laskutettavan nimi + * @param sahkoposti laskutettavan sähkopostiosoite. + * @param hinta ostosten hinta + * @param maksettu onko lasku maksettu + * @param paiva eräpäivän päivä-osa + * @param kk eräpäivän kuukausiosa + * @param v eräpäivän vuosiosa. + */ + public Lasku(String nimi, String sahkoposti, double hinta, boolean maksettu, int paiva, int kk, int v) + { + this.nimi = nimi; + this.sahkoposti = sahkoposti; + this.hinta = hinta; + this.maksettu = maksettu; + if(tarkistaPvm(paiva,kk,v) == true) + { + this.erapaiva[0] = paiva; + this.erapaiva[1] = kk; + this.erapaiva[2] = v; + } + else + { + System.out.println("Syötä kelvollinen päivämäärä."); + } + return; + } + + /** + * Tarkistaa päivämäärän oikeellisuuden + * @param paiva päivä + * @param kuukausi kuukausi + * @param vuosi vuosi + * @return totuusarvon päivämäärän olemassaolosta + */ + public boolean tarkistaPvm(int paiva, int kuukausi, int vuosi) + { + int karkausvuosi = 0; + if((paiva <= 0)||(kuukausi <= 0)||(vuosi <= 2025 )) return false; + if(kuukausi > 13) return false; + if(kuukausi % 4 == 0) karkausvuosi = 1; + if(paiva > kuukausienMitat[karkausvuosi][kuukausi-1]) return false; + return true; + } + /** + * Haetaan Teoksen nimi + * @return Teoksen nimi + */ + public boolean Getmaksettu() + { + return maksettu; + } + + /** + * Haetaan eräpäivää + * @return eräpäivä muodossa XX.XX.20XX + */ + public String GetErapaiva() + { + return erapaiva.toString(); + } + + /** + * Haetaan hinta + * @return hinta + */ + public double getHinta() + { + return hinta; + } + + /** + * Haetaan maksajan nimi + * @return nimi + */ + public String getNimi() + { + return nimi; + } + + /** + * Palautetaan laskuun liitetty sähköposti. + * @return Sähköposti + */ + public String getSahkoposti() + { + return sahkoposti; + } + /** + * Muokataan lasku-olion nimeä + * @param uusiNimi uusi Nimi + */ + public void setNimi(String uusiNimi) + { + nimi = uusiNimi; + } + + /** + * Muokataan lasku-olion hintaa + * @param uusiHinta uusi hinta + */ + public void setHinta(String uusiHinta) + { + StringBuilder hintateksti =new StringBuilder(uusiHinta); + for(int i = 0; i<uusiHinta.length(); i++) + { + if(uusiHinta.charAt(i) == ',') + { + hintateksti.setCharAt(i, '.'); + } + } + double uusiHintaDbl = Double.parseDouble(hintateksti.toString()); + if(uusiHintaDbl > 0) + { + hinta = uusiHintaDbl; + } + } + + /** + * Muokataan kirja-olion kirjailijaa + * @param uusiSahkoposti uusi kirjialija. + */ + public void setSahkoposti(String uusiSahkoposti) + { + if(uusiSahkoposti.contains("@")) sahkoposti = uusiSahkoposti; + } + + /** + * Merkitään lasku maksetuksi + */ + public void asetaMaksetuksi() + { + this.maksettu = true; + } + + /** + * Pääohjelma + * @param args ei käytössä + */ + public static void main(String[] args) + { + Lasku lasku = new Lasku(); + lasku.setNimi("Pahani Julmu"); + System.out.println(lasku.getNimi()); + lasku.setHinta("13.25"); + } + + +} diff --git a/Fanttikvariaatti/src/rekisteri/Laskut.java b/Fanttikvariaatti/src/rekisteri/Laskut.java new file mode 100644 index 0000000..a5c56cc --- /dev/null +++ b/Fanttikvariaatti/src/rekisteri/Laskut.java @@ -0,0 +1,5 @@ +package rekisteri; + +public class Laskut { + +} diff --git a/Fanttikvariaatti/src/rekisteri/RekisteriMain.java b/Fanttikvariaatti/src/rekisteri/RekisteriMain.java new file mode 100644 index 0000000..89900b8 --- /dev/null +++ b/Fanttikvariaatti/src/rekisteri/RekisteriMain.java @@ -0,0 +1,5 @@ +package rekisteri; + +public class RekisteriMain { + +} -- GitLab