All pastes #350649 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-02-11 16:34 UTC
rendered paste body
/*
 * Vedlegg, delprøve 1 - gjentak mars 2006
 */

import java.util.ArrayList;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;

/* Vedlegg 1 starter her */
class Konsert {
  private String tittel;  // entydig
  private String tidspunkt;
  private int pris;

  public Konsert(String startTittel, String startTid, int startPris) {
    tittel = startTittel;
    tidspunkt = startTid;
    pris = startPris;
  }

  public String finnTittel() {
    return tittel;
  }

  public String finnTid() {
    return tidspunkt;
  }

  public int finnPris() {
    return pris;
  }


  /*
   * Vi definerer at to objekter er like dersom tittelen er den samme
   */
  public boolean equals(Object obj) {
    if (!(obj instanceof Konsert)) return false;
    if (this == obj) return true;
    Konsert k = (Konsert) obj;
    return (tittel == k.tittel);
  }

  public String toString() {
    return tittel + ", tid: " + tidspunkt + ", pris " + pris;
  }
}

class Person {
  private String navn;
  private String epost;  // entydig
  private ArrayList<Konsert> konserter = new ArrayList<Konsert>();

  public Person(String startNavn, String startEpost) {
    navn = startNavn;
    epost = startEpost;
  }

  public String finnNavn() {
    return navn;
  }

  public String finnEpost() {
    return epost;
  }

  public String toString() {
    return navn + ", " + epost;
  }

  public int finnAntKonserter() {
    return konserter.size();
  }
  /***LØSNING TIL OPPGAVE 1A STARTER HER ***/

	public int meldPaKonsert(Konsert kons){
		String tittel = kons.finnTittel();
		String tidspkt = kons.finnTid();
		int pris = kons.finnPris();
		for (Konsert k : konserter){
			if( k.finnTittel().equals(tittel) && k.finnTid().equals(tidspkt) == true ) { //Finner konserten
				System.out.println("Du er allerede registrert på konserten!");
				return -1;
			}
		}
		konserter.add(kons);
		return konserter.size();
	}



	public int meldAvKonsert(Konsert kons){
		String tittel = kons.finnTittel();
		String tidspkt = kons.finnTid();
		int pris = kons.finnPris();
		for(Konsert k : konserter){
			if( k.finnTittel().equals(tittel) && k.finnTid().equals(tidspkt) == true ) { //Finner konserten
				konserter.remove(k);
				return konserter.size();
			}
		}
		return -1; //Finner ikke konserten
	}

	public int finnTotalPris(){ //Int, ettersom alle konsertprisene er i int kan vi ikke få desimaltall som returverdi.
		int pristemp = 0;
		for(Konsert k : konserter){
			pristemp += k.finnPris();
		}
		return pristemp;
	}

	public boolean erMedPåKonsert(Konsert konserten)
	  {
	  	for(int i = 0; i < konserter.size(); i++)
	  	{
			if(konserter.get(i).equals(konserten))
			{
				return true;
			}
		}
		return false;
	  }

}

class Festival {
  private ArrayList<Person> deltakerne = new ArrayList<Person>();
  private Konsert[] konsertene;

	//Konstruktør
	public Festival(Konsert[] konsertene){
		this.konsertene = konsertene;
	}

	public int finnTotaleInntekter(){
		int tempinntekt = 0;
		for(Person p : deltakerne){
			int utgift = p.finnTotalPris();
			tempinntekt += utgift;
		}
		return tempinntekt;
	}


  /* Denne metoden trengs i GUI-oppgaven */
  public Person[] finnDeltakerne() {
    Person[] ptabell = new Person[deltakerne.size()];
    for (int i = 0; i < deltakerne.size(); i++) {
      ptabell[i] = deltakerne.get(i);
    }
    return ptabell;
  }

  /* Denne metoden trengs i GUI-oppgaven */
  public Konsert[] finnKonsertene() {
    return konsertene;
  }

   /* Følgende to metoder er laget for å få testprogrammet til å virke. Ikke del av oppgaven. */
    public boolean registrerNyDeltaker(String navn, String epost) {
      Person p = finnPerson(epost);
      if (p != null) return false;   // person med denne epost er registrert fra før
      deltakerne.add(new Person(navn, epost));
      return true;
    }

    public Person finnPerson(String epost) {
      for (Person enPerson : deltakerne) {
        if (enPerson.finnEpost().equalsIgnoreCase(epost)) return enPerson;
      }
      return null;
    }

   public int finnAntDeltagere(Konsert konserten)
     {
   	  int teller = 0;
   	  for(int i = 0; i < deltakerne.size(); i++)
   	  {
   		  if(deltakerne.get(i).erMedPåKonsert(konserten))
   		  {
   			  teller++;
   		  }
   	  }
   	  return teller;
  }
}
class ena {
  public static void main(String[] args) {
    Konsert[] konserter = new Konsert[3];
    konserter[0] = new Konsert("AllaKalla", "fredag 1500", 275);
    konserter[1] = new Konsert("AllaMalla", "fredag 1700", 290);
    konserter[2] = new Konsert("AllaDalla", "fredag 1900", 300);
    Festival festival = new Festival(konserter);
    festival.registrerNyDeltaker("Arne Olsen", "arne@olsen.no");
    festival.registrerNyDeltaker("Beate Olsen", "beate@olsen.no");
    festival.registrerNyDeltaker("Trude Olsen", "trude@olsen.no");
    festival.registrerNyDeltaker("Truda Olsen", "truda@olsen.no");

    System.out.println(festival.finnTotaleInntekter() + "\n");
    System.out.println(festival.finnAntDeltagere(konserter[0]));
	/*
    GUI gui = new GUI(festival);
    gui.setVisible(true);
    */
  }
}