Javaprogrammering
för D3 m fl
lördag 20 januari 2007 kl 08:00 - 11:00 i L001
Hjälpmedel: | Inga hjälpmedel. |
Poängkrav: |
Maximal poäng är 35.
För godkänt betyg (3 respektive G) krävs 17 poäng. |
Resultat och lösningar: | Meddelas på kursens hemsida senast tisdag 6 februari 2007. |
Visning och frågestund: |
Tisdag 6 februari 2007 kl 15:00-15:30 i mitt rum (T2220).
Efter visningen kan tentorna hämtas på expeditionen. |
Examinator och jourhavande: | Thomas Padron-McCarthy, telefon 070-73 47 013. |
Skriv inte svaren till uppgifterna direkt här, utan skriv på lösa blad och lämna in.
Knapparna för addition, subtraktion, multiplikation och division ska beräkna resultatet utifrån de två tal man matat in. Knapparna för kvadratrot och kvadrat ska använda sig av bara det första talet.
Om man försöker utföra in en felaktig operation, ska texten "Error!" skrivas ut i resultatfältet. Fel som ska hanteras är:
Använd exempelvis textfält (JTextField) för inmatningen och presentationen. Knapparna kan vara av klassen JButton.
Appleten behöver inte se ut exakt som på bilderna.
I nedanstående program måste en eller flera rader i main-metoden strykas, för att programmet ska gå att kompilera. Vilka rader?
b)
Om vi antar att vi gjort dessa strykningar, vad skriver programmet ut när det körs?
// Java-programmet "Utskrifter" abstract class Djur { abstract public void läte(); static public String namn() { return "Djur"; } } // class Djur class Apa extends Djur { public void läte() { System.out.println("Ook ook!"); } } // class Apa class Katt extends Djur { public void läte() { System.out.println("Mjau!"); } } // class Katt class Tiger extends Katt { public void läte() { System.out.println("Roarrr!"); } } // class Tiger public class Utskrifter { public static void main(String[] args) { Djur d1 = new Djur(); Djur d2 = new Katt(); d2.läte(); Katt k1 = new Katt(); k1.läte(); Katt k2 = new Katt(); k2.läte(); Katt k3 = new Tiger(); k3.läte(); Tiger t = new Tiger(); t.läte(); System.out.println("Namn: " + d2.namn()); System.out.println("Namn: " + Djur.namn()); System.out.println("Namn: " + t.namn()); System.out.println("Namn: " + Tiger.namn()); } // main } // class Utskrifter
Taxichauffören börjar med att starta klientprogrammet, skriva in sitt namn, och klicka på knappen Anslut:
Då kopplar klienten upp sig mot servern, och är redo både att skicka och ta emot larm.
Om en kund blir bråkig eller inte vill betala, ska taxichauffören kunna trycka på knappen Hjälp!. Då ska alla klienterna visa en larmtext:
Koppla ner-funktionen behöver inte implementeras, men knappen ska finnas, för eventuell framtida utveckling. Klientfönstret behöver inte se ut exakt som på bilderna.
a) Skriv klientapplikationen, som ska köras i taxibilarna.
b) Skriv serverapplikationen, som ska köras hemma på kontoret. Det räcker om serven hanterar nätverkskommunikationen, så den behöver inte ha något grafiskt gränssnitt eller skriva ut något.
c) Beskriv det kommunikationsprotokoll som används mellan klienterna och servern.
java.lang.Object java.net.ServerSocket
ServerSocket(int port)
Creates a server socket, bound to the specified port.
Socket
accept()
Listens for a connection to be made to this socket and accepts
it.
void
close()
Closes this socket.
java.lang.Object java.net.Socket
Socket()
Creates an unconnected socket, with the
system-default type of SocketImpl.
Socket(InetAddress address,
int port)
Creates a stream socket and connects it to the specified port
number at the specified IP address.
void
close()
Closes this socket.
InputStream
getInputStream()
Returns an input stream for this socket.
OutputStream
getOutputStream()
Returns an output stream for this socket.
java.lang.Object java.io.Reader java.io.BufferedReader
BufferedReader(Reader in)
Create a buffering character-input stream that uses a default-sized
input buffer.
void
close()
Close the stream.
int
read()
Read a single character.
String
readLine()
Read a line of text.
java.lang.Object java.io.Reader java.io.InputStreamReader
InputStreamReader(InputStream in)
Create an InputStreamReader that uses the default charset.
void
close()
Close the stream.
int
read()
Read a single character.
java.lang.Object java.io.Writer java.io.PrintWriter
PrintWriter(OutputStream out)
Create a new PrintWriter, without automatic line flushing, from an
existing OutputStream.
PrintWriter(OutputStream out,
boolean autoFlush)
Create a new PrintWriter from an existing OutputStream.
void
close()
Close the stream.
void
println()
Terminate the current line by writing the line separator string.
void
println(String x)
Print a String and then terminate the line.
java.lang.Object java.net.InetAddress
public static InetAddress getByName(String host) throws UnknownHostExceptionDetermines the IP address of a host, given the host's name.