EXAM 2015 ma version
2 participants
IEPSEvereInfo2013-2016 :: Deuxième année (2014-2015) :: Programmation orientée objet :: Exercices – Questions
Page 1 sur 1
EXAM 2015 ma version
ci dessous ma solution pour l'exam poo 2015
Il est à noter que je n'ai pas utilisé les Array mais uniquement les ArrayList. On avait droit à une certaine liberté donc voila
Chapter
Book
ITBook
Rack
Library
TestLibrary: main class
Il est à noter que je n'ai pas utilisé les Array mais uniquement les ArrayList. On avait droit à une certaine liberté donc voila
Chapter
- Code:
public class Chapter {
int pageBegin;
int pageEnd;
String title;
public Chapter(String title,int pageBegin, int pageEnd) {
super();
this.pageBegin = pageBegin;
this.pageEnd = pageEnd;
this.title = title;
}
public String toString() {
return "Chapter [pageBegin=" + pageBegin + ", pageEnd=" + pageEnd
+ ", title=" + title + "]";
}
}
Book
- Code:
import java.util.ArrayList;
public class Book {
String author;
ArrayList<Chapter> chapters;
int nbr;
int nChapters;
double price;
String title;
public Book(String author, String title) {
super();
this.chapters = new ArrayList<Chapter>();
this.author = author;
this.title = title;
}
public void addChapters(ArrayList<Chapter> chapters) {
this.chapters = chapters;
}
public void setAuthor(String author) {
this.author = author;
}
public String getAuthor() {
return this.author;
}
public void setNbr(int nbr) {
this.nbr = nbr;
}
public int getNChapters(){
return this.chapters.size();
}
public void setPrice(double price) {
this.price = price;
}
public void setTitle(String title) {
this.title = title;
}
public String getTitle(){
return this.title;
}
public String toString() {
return this.title + " (" + this.author +", "+ this.getNChapters() + " chapters)";
}
}
ITBook
- Code:
public class ITBook extends Book {
String language;
public ITBook(String author, String title) {
super(author, title);
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String toString() {
return "ITBook [language=" + language + ", toString()="
+ super.toString() + ", getClass()=" + getClass()
+ ", hashCode()=" + hashCode() + "]";
}
}
Rack
- Code:
import java.util.ArrayList;
public class Rack {
public final int MAX_BOOKS=50;
ArrayList<Book> books;
int currentSize;
String name;
public Rack(String name) {
super();
this.name = name;
this.books = new ArrayList<Book>();
}
public boolean add(Book b){
boolean addBook ;
addBook = (this.books.size() < MAX_BOOKS)? true: false;
if(addBook) books.add(b);
return addBook;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ArrayList<Book> getBooks() {
return books;
}
public Book getBook(String title) {
Book book = null;
for(Book bk : books){
if(bk.getTitle().equals(title)) book = bk;
}
return book;
}
public ArrayList<Book> getBooks(String author) {
ArrayList<Book> bookSelection = null;
for(Book bk : books){
if(bk.getAuthor().equals(author)) bookSelection.add(bk);
}
return bookSelection;
}
public int getCurrentSize() {
return this.books.size();
}
public String toString() {
String msg = "";
msg+=this.name;
msg+="\n";
for(Book b : this.books){
msg+="\t";
msg += b.toString();
msg+="\n";
}
return msg;
}
}
Library
- Code:
import java.util.ArrayList;
public class Library {
public final int MAX_BOOKS=2500;
int currentSize;
String name;
ArrayList<Rack> racks;
public Library(String name, Rack rack){
this.name = name;
this.racks = new ArrayList<Rack>();
this.racks.add(rack);
}
public boolean addRack(Rack r){
boolean addRack ;
addRack = (this.racks.size() < MAX_BOOKS)? true: false;
if(addRack) racks.add(r);
return addRack;
}
public boolean addRacks(){
boolean addRack ;
addRack = (this.racks.size() < MAX_BOOKS)? true: false;
if(addRack){
Rack r = new Rack("IT");
racks.add(r);
}
return addRack;
}
public Book getBook(String title){
Book book = null;
for(Rack r : racks){
book = r.getBook(title);
if(book != null)return book;
}
return book;
}
public ArrayList<Book> getBooks(String author){
ArrayList<Book> books = null;
for(Rack r : racks){
books = r.getBooks(author);
if(books != null)return books;
}
return books;
}
//still need to be implemented
public Rack getRack(Book book){
//this.racks.
return null;
}
//still need to be implemented
public void sellBook(Book book){
}
public ArrayList<Rack> getRacks(){
return this.racks;
}
public int getCurrentSize(){
return racks.size();
}
public void addBook(Book b, String category){
for(Rack r : racks){
if(r.getName().equals(category)){
r.add(b);
break;
}
}
}
public String toString(){
String msg = "";
msg+=this.name.toUpperCase();
msg+=":";
msg+="\n";
msg+="==========================";
msg+="\n";
for(Rack r : this.racks){
msg+=r.toString();
msg+="\n";
}
return msg;
}
}
TestLibrary: main class
- Code:
import java.util.ArrayList;
public class TestLibrary {
public static void main(String[] args) {
Rack rackIT = new Rack("IT");
Rack rackBD = new Rack("BD");
Rack rackScience = new Rack("SCIENCE FICTION");
Library lib = new Library("librairie du coin", rackIT);
lib.addRack(rackBD);
lib.addRack(rackScience);
Book headFirstDP = new Book("unknown", "heads first design pattern");
Book javaPremierL = new Book("DE Lannoy", "Java premier langage");
Book twoTower = new Book("Tolkien"," the two tower");
headFirstDP.addChapters(genericChpt());
javaPremierL.addChapters(genericChpt());
twoTower.addChapters(genericChpt());
lib.addBook(headFirstDP, "IT");
lib.addBook(javaPremierL, "IT");
lib.addBook(twoTower, "SCIENCE FICTION");
System.out.println(lib);
}
// this could have been put in the book class but it's not in the uml diagram like a bunch of stuff
public static ArrayList<Chapter> genericChpt(){
ArrayList<Chapter> randomChpt = new ArrayList<Chapter>();
int nbrChpt =(int) (7* Math.random());
for(int i=0 ; i <= nbrChpt; i++){
randomChpt.add(new Chapter("dummy chpt", 1, (int)(40* Math.random())));
}
return randomChpt;
}
}
PhilippeL- Messages : 119
Date d'inscription : 18/10/2013
Sujets similaires
» EXERCICE SHUFFLE 15-01-2015
» exo 3 du 04/02/2015
» EXERCICE_FACTURATION_13-01-2015
» cours du 07-10-2015
» EXERCICE SHUFFLE 15-01-2015
» exo 3 du 04/02/2015
» EXERCICE_FACTURATION_13-01-2015
» cours du 07-10-2015
» EXERCICE SHUFFLE 15-01-2015
IEPSEvereInfo2013-2016 :: Deuxième année (2014-2015) :: Programmation orientée objet :: Exercices – Questions
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum