Programutvecklingsteknik
Övning 5 9/5
Uppgift 2 är hämtad från en gammal tenta på kursen 2D1385 (gamla
kurskoden för DD2385). Uppgifterna 3-6 är hämtade från en 2D1385-tenta
år 2005. Kursen gavs på engelska då. Uppgifterna 2 och 4 är
modifierad lite.
Att skriva DTD kommer inte att ingå i årets tenta men väl att skriva
XML som stämmer med en given DTD. Vi ger DTD:n på övningen och
skriver XML från den.
- Skissa/skriv en lösning av uppgift 2 från
övning 4 där mönstret Strategy används.
Lösningar:
Huvudprogrammet:
FileWordsSorter.java
Strategy-interface:
WordReader.java
Läs godtyckligt antal ord per rad med avskiljare:
DelimitedReader.java
Läs ett ord per rad:
OneWordPerLineReader.java
- Rita ett UML-klassdiagram för en kö. Köklassen implementerar följande
gränssnitt:
interface AbstractQueue {
public boolean isEmpty();
public void put(Object x);
public Object get();
}
Ett köobjekt har referenser till köns första och sista elementet.
Varje nod i kön har en next-referens
och en referens till den lagrade informationen som här ska vara personer
med förnamn och efternamn som separata String-objekt.
Uppgiften är hämtad från en gammal tenta i
programutvecklingsteknik.
Här finns en lösning.
Pilen från Kö till
AbstractQueue ska ha en sluten ofylld pilspets och egentligen en streckad
linje. Pilspetsen är viktigare än strecket. Vissa UML-verktyg skiljer
inte på arv och implementation. I sådana fall bör man med någon markering
skilja på arv av abstrakt och konkret klass. Tentalösnngen är inte gjord
med UML-verktyg.
Här finns även Javakod för en abstrakt köklass med typparameter, en
konkret köklass och en klass för noderna:
AbstractQueue.java
LinkedQueue.java
Node.java
English: Draw a UML class diagram for a queue.
The queue implements
the interface above. A queue object has references to the first and the
last element of the queue. Each queue node has a next-reference and a
reference to its stored information. In this queue the information is
objects of class Person with first name and family name stored in
separate String objects.
-
Your are asked by your boyfriend/girlfriend to design and build a simple
internet shoppingsite for books, clothes and DVDs. He/she brainstorms and
identifies the following nouns:
book, clothing, dvd, size,
clothing_style, author, title, artist, colour, mens_clothing,
womens_clothing, childs_clothing, price, quantity, discount_on_price, item.
Arrange these into a UML class diagram for the things to sell.
- Extend the class diagram with a
Shopping_Cart which includes
a list of purchases, the toal price of all purchases, total number of
purchases, total discount given. A shopper should be able to delete specific
items or delete all items. Discount on price is given to club members.
A shopper can be a member of the book club, the dvd club or the clothing club
separately.
UML class diagram for 3 and 4
- A shopper needs to be a member of the book club to get discounts on
books, dvd club to get discounts on dvds etc. Using the information given
in your class diagrams for 1. and 2., write Java code for the method
add(Item purchase) that adds an Item to an itemList and applies
the correct discount to the price if appropriate.
Javakod för klasserna:
Item.java
Book.java
Clothing.java
DVD.java
ShoppingCart.java
- You decide to store and send information from the website using the XML
format. Write a DTD that is suitable for defining an XML file that
represents the contents of a possible shopping cart. Write an XML file
including at least two Items, one book and one dvd. The shopper is
member of both book club and dvd club. The XML must be valid according
to the DTD. DTD och XML.
|
|