Pagina 1 van 2 12 LaatsteLaatste
Weergegeven resultaten: 1 t/m 10 van 15
  1. #1
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts

    [JAVA] Klein programmatje .

    Hoi !

    De laatste week heb ik veel gehoord dat RedBull ongezond is . & Omdat ik het nogal vaak drink , heb ik besloten om een klein programmatje te maken , met enkele functies dat bijhoudt hoeveel Redbull ik nu zoal drink () !

    Mr ik zit met wat vraagjes . Ik weet niet hoe ik dit het beste/gemakkelijkst kan doen.

    Ik wil gewoon met jbutton enzo werken , en dat je dan op een knop duwt , bij je totaal aantal blikjes ééntje wordt bijgeteld, en dan word automatisch berekend hoeveel cafeïne & taurine je die dag binnengespeeld hebt . elke dag gaan de tellers dus terug opnieuw (via calender? of betere klasse?) , mr ik wil de gegevens van vorige dagen dan ook wel bijhouden, om een mooi gemiddelde te maken fzo.

    Iemand wat tips hoe ik het best begin ? Ben nog een beetje aan het nadenken hoe ik de basis precies in elkaar ga steken, welke klasses enzo.

    Thx!

    EDIT: ga trouwens met hoeveelheden werken denk ik . Dus als je op deknop drukt dat je iets gedronken hebt fzo , moet je ingeven hoeveel ml fzo .
    Laatst gewijzigd door Fck_; 14 January 2010 om 17:06
    https://twitter.com/Fck___

  2. #2
    PC-Freak   Sille's schermafbeelding
    Geregistreerd
    11 May 2005
    Locatie
    mechelen
    Berichten
    1.588
    Bedankjes
    372
    Bedankt
    280 keer in 190 posts
    Waarom ga je op de knop drukken met het aantal ml in te geven ?

    Persoonlijk zou ik dat inzetten als je 1 x een blikje redbull drinkt dat hij automatisch zelf weet dat hij 3300 ml moet nemen ? Om zo verder je berekeningen kunnen uit te voeren

  3. #3
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts
    Jha , dat gaat ook , mr het probleem is dat er 3 verschillende grote's zijn van Redbull blikjes , 250ml , 500ml , en nog eeentje er tussen in =P . En als je maar een half blikje drinkt fzo , dan is het bijvoorbeeld maar 125ml .

    Dan is het wat nauwkeuriger ..
    https://twitter.com/Fck___

  4. #4
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts
    Een beetje verduidelijken wat ik al in gedachte had .

    Klasses:

    Persoon:
    Instantievariabelen: naam, voornaam, geboortedatum.

    geboortedatum
    Instantievariabelen: jaar, maand, dag.
    Deze klasse zou ik gewoon gebruiken om de geboortedatum van de Persoons klasse in te stellen aan de hand van jaar, maand dag dus.

    date
    Hier de java klasse Calender gebruiken , of gewoon date, om de leeftijd van de persoon te bereken, aan de hand van de datum van 'vandaag' , en de persoon zijn geboortedatum. Of dit kan ik eventueel mss beter in de lasse geboortedatum zelf zetten?

    Hoe ik het verder ga doen , daar ben ik nog niet helemaal uit wat het makkelijkst is. Voor elk soort blikje een klasse maken met de gevens van het blikje fzo..

    en dan het totale , dus alles bij elkaar geteld enzo, ben ik ook nog niet helemaal zeker van !
    https://twitter.com/Fck___

  5. #5
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts
    Ik ben er maar gewoon aan begonnen =P .
    Heb de klasse Persoon, en de klasse Birthdate gemaakt .

    Code:
    public class Person {
    	
    	private String name = "Unknown";
    	private String firstname;
    	private int age;
    	
    public Person(String name, String firstname, int year, int month, int day){
    	this.setName(name);
    	this.setFirstName(firstname);
    	this.setAge(year, month, day);
    	
    }
    
    public String getName(){
    	return this.name;
    }
    public String getFirstName(){
    	return this.firstname;
    }
    public int getAge(){
    	return this.age;
    }
    
    public void setName(String name){
    	if (name != null && !name.equals("")){
    		this.name = name;
    	} 
    }
    public void setFirstName(String firstname){
    	if (firstname != null){
    		this.firstname = firstname;
    	}
    }
    public void setAge(int year, int month, int day){
    	Birthdate blaat = new Birthdate(year,month,day);
    		this.age = blaat.getAge();
    		
    }
    }
    Code:
    import java.util.GregorianCalendar;
    import java.util.Calendar;
    
    public class Birthdate {
    	
    	private int year;
    	private int month;
    	private int day;
    	private int age;
    	
    public Birthdate(int year, int month, int day){
    	this.setYear(year);
    	this.setMonth(month);
    	this.setDay(day);
    	this.setAge();
    }
    	
    public int getYear(){
    	return this.year;
    }
    public int getMonth(){
    	return this.month;
    }
    public int getDay(){
    	return this.day;
    }
    public int getAge(){
    	return this.age;
    }
    
    public void setYear(int year){
    	if (year >= 1900 && year <= 2100){
    		this.year = year;
    	}
    }
    public void setMonth(int month){
    	if (month >= 1 && month <= 12){
    		this.month = month;
    	}
    }
    public void setDay(int day){
    	if (day >= 1 && day <= this.daysInAMonth(this.getMonth())){
    		this.day = day;
    	}
    }
    public void setAge(){
    	this.age = calculateAge();
    }
    
    private boolean isLeapYear(int year) {
        return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 );    
    }
    
    private int daysInAMonth(int month){
    	int days = 0;
    	if (month == 2){
    		days = 28 + (isLeapYear(this.getYear())?1:0);
    	} else {
    		if (month <= 7){
    			days = 30 + month%2;
    		}
    		else {
    			days = 31 - month%2;
    		}
    	}
    	return days;
    }
    
    private int calculateAge(){
    	
    	Calendar current = new GregorianCalendar();
    	Calendar birthdate = new GregorianCalendar(this.getYear(),this.getMonth(),this.getDay());
    	
    	int age = current.get(Calendar.YEAR) - birthdate.get(Calendar.YEAR);
    		if (current.before(new GregorianCalendar(current.get(Calendar.YEAR), month, day))){
    			age --;
    		}
    	return age;
    }
    
    }
    Bon , dit is gewoon simpel voor de gebruiker. In de krant stond dat je best van RedBull moet afblijven als je onder de 16 bent, daarom de leeftijd erbij ! Dat geeft de gebruiker een waarschuwing :P .
    Laatst gewijzigd door Fck_; 14 January 2010 om 20:52
    https://twitter.com/Fck___

  6. #6
    Erelid   carl's schermafbeelding
    Geregistreerd
    20 June 2006
    Locatie
    Halle/Gent
    Berichten
    2.409
    Bedankjes
    1.846
    Bedankt
    1.827 keer in 1.102 posts
    Ksnap echt de fuzz niet met de persoon en al ? Je wil toch alleen je eigen verbruik bijhouden ?

    Het enige dat je nodig hebt is een tekstvak met een button ernaast die wwegschrijft in de database, en onderaan een tabel met je verbruik of een paar gegevens ofzo. Kan je misschien eens naar de model view controller voor kijken (al dat dit wss leerstof voor volgend jaar is voor jou).

    Als je niet met database werkt moet je programma permanent draaien he het is niet dat je op een of andere magische manier static zaken bij kan houden en wijzigen in de .class file ...

  7. De volgende gebruiker bedankt carl voor deze nuttige post:

    Fck_ (14 January 2010)

  8. #7
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts
    Jha voor mij , mr ook voor een paar kameraden en al ! En het is gewoon best leuk als oefening , daarmee .

    Jha , dat met die database enzo weet ik al ^^ . Ik deed veel opzoek werk .
    Thx!

    Vraagje trouwens, als ik via de klasse birthdate een geboortedatum aanmaak, dan checkt die als mijn maand goed is enzo, (maand 14 kan dus bijvoorbeeld niet.) , maar als ik in de klasse persoon dan de age wil berekenen , aan de hand van de constructor van Birthdate enzo , dan let die daar dus niet op :( . Moet ik daar mijn if enzo opnieuw doen , of doe ik het gewoon helemaal verkeerd ?
    https://twitter.com/Fck___

  9. #8
    Erelid   carl's schermafbeelding
    Geregistreerd
    20 June 2006
    Locatie
    Halle/Gent
    Berichten
    2.409
    Bedankjes
    1.846
    Bedankt
    1.827 keer in 1.102 posts
    Het probleem is dat je wel controleert maar je doet niets als de controle faalt !
    vb:
    public void setMonth(int month){
    if (month >= 1 && month <= 12){
    this.month = month;
    }
    }


    als de maand nu 13 is blijft de maand op null staan.
    probeer anders:

    else
    throw new NumberFormatException("ongeldige xx")

    Dan moet je wil in de klasse persoon waar je dus die birthdate aanmaakt die error opvangen door de new birthdate command tussen een try{}catch(){JOptionPane.showMessageDialog(null, "fout, probeer opnieuw"} ofzo
    (er zijn nog zaken niet ingevuld aan de code he als je nog last hebt laat iets weten)

    Hetgene ik NIET snap is dat de methode waar je een gregoriancalendar aanmaakt geen nullpointerexception gooit.

    Ik vind het trouwens nogal omslachtig hoe je werkt. Bekijk de java API eens, ik ben er vrij zeker van dat je gewoon datum vandaag - datum geboorte kan doen en dan omzetten naar een tijd
    Laatst gewijzigd door carl; 14 January 2010 om 21:16

  10. De volgende gebruiker bedankt carl voor deze nuttige post:

    Fck_ (14 January 2010)

  11. #9
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts
    Ja , er mist nog vanalles ja. Ben eraan bezig !
    Tis nu ook zo dat ik nog niet erg lang met Java bezig ben , mr ik leer snel !

    Kga eens even proberen wat je daar zegt ! Ik laat wel weten als het lukt !

    Enja, die nullpointerexception, die ben ik volgens mijg ewoon vergeten .
    Laatst gewijzigd door Fck_; 14 January 2010 om 21:21
    https://twitter.com/Fck___

  12. #10
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.385
    Bedankt
    2.577 keer in 1.271 posts
    Het beste voor de data van andere dagen bij te houden is dus gewoon alles in een file te zetten. Alé, ge kunt databases en XML files gebruiken, ma in dit geval is het gewoon voor de fun en zal een gewone tekstfile goed genoeg zijn.

    Ge moet dus dan alle informatie uitschrijven per regel.
    Bijvoorbeeld:
    Woya XXXX 300 30/07/1990

    Woya = voornaam
    XXXX = achternaam
    300 = mililiter
    30/07/1990 = geboortedatum

    En zo zorgt ge dat elke persoon zijn eigen "regel" in da kladblok bestand heeft. En dan bij het opstarten van het programma leest ge gewoon die file regel per regel in. En gaat ge gewoon alle data gescheiden door komma's of spaties eruit halen.

    Binaire files gebruiken gaat ook.

    En elke programmeertaal heeft zijn eigen "data" of "datetime" of "timestamp" klasse. Die al helemaal voorzien is van functies en member variabele voor de tijd bij te houden. Dat zelf implementeren is altijd handig voor bij te leren ofcourse.

    Greetz,
    Dave
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

Discussie informatie

Users Browsing this Thread

Momenteel bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Soortgelijke discussies

  1. Mooi programmatje werkt echt
    Door gideon in forum De Lounge
    Reacties: 17
    Laatste bericht: 23 August 2008, 00:58
  2. Programmatje
    Door veysie in forum Overige software
    Reacties: 4
    Laatste bericht: 12 June 2008, 13:59
  3. Programmatje aan 't zoeken??? Kijk hier even...
    Door Krikkie in forum Overige software
    Reacties: 1
    Laatste bericht: 29 April 2006, 16:08
  4. programmatje gezocht
    Door élenias in forum Overige software
    Reacties: 6
    Laatste bericht: 28 January 2006, 12:54

Favorieten/bladwijzers

Favorieten/bladwijzers

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •