diff --git a/CCI_Java/CCI_Java/src/tp9/exo1/SubjectEvaluator.java b/CCI_Java/CCI_Java/src/tp9/exo1/SubjectEvaluator.java
new file mode 100644
index 0000000000000000000000000000000000000000..8eca32ca6e063c2673ca0baf1f8c4e54a95f6a2a
--- /dev/null
+++ b/CCI_Java/CCI_Java/src/tp9/exo1/SubjectEvaluator.java
@@ -0,0 +1,7 @@
+package tp9.exo1;
+
+public interface SubjectEvaluator {
+	// Retourne une cha �ne d� crivant l'� valuation du r� sultat
+	String generateEvaluation ( SubjectResult result ) ;
+	}
+
diff --git a/CCI_Java/CCI_Java/src/tp9/exo1/SubjectPointEvaluator.java b/CCI_Java/CCI_Java/src/tp9/exo1/SubjectPointEvaluator.java
new file mode 100644
index 0000000000000000000000000000000000000000..b9c919f13f7f1bace4842d3dec7b9255ef5e4d6e
--- /dev/null
+++ b/CCI_Java/CCI_Java/src/tp9/exo1/SubjectPointEvaluator.java
@@ -0,0 +1,14 @@
+package tp9.exo1;
+
+public class SubjectPointEvaluator implements SubjectEvaluator {
+
+	@Override
+	public String generateEvaluation(SubjectResult result) {
+		if(result.getMark() < 10)
+			return (10-result.getMark()) + " points en dessus "
+			+ "de la moyenne en " + result.getName();
+		return (result.getMark()-10) + " points au-dessus "
+				+ "de la moyenne en " + result.getName();
+	}
+
+}
diff --git a/CCI_Java/CCI_Java/src/tp9/exo1/SubjectResult.java b/CCI_Java/CCI_Java/src/tp9/exo1/SubjectResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..c82bc397e317a0e93e70b0b24d0de478b151d10f
--- /dev/null
+++ b/CCI_Java/CCI_Java/src/tp9/exo1/SubjectResult.java
@@ -0,0 +1,26 @@
+package tp9.exo1;
+
+public class SubjectResult {
+
+	private String name;
+	private double mark;
+	
+	public SubjectResult(String name, double mark) {
+		this.name = name;
+		this.mark = mark;
+	}
+	
+	public String getName() {
+		return name;
+	}
+	
+	public double getMark() {
+		return mark;
+	}
+	
+	@Override
+	public String toString() {
+		// TODO Auto-generated method stub
+		return name + "/" + mark ;
+	}
+}
diff --git a/CCI_Java/CCI_Java/src/tp9/exo1/SubjectResultUtils.java b/CCI_Java/CCI_Java/src/tp9/exo1/SubjectResultUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..cfb73d1e4ed32feef76986b8be8f209c26957e67
--- /dev/null
+++ b/CCI_Java/CCI_Java/src/tp9/exo1/SubjectResultUtils.java
@@ -0,0 +1,12 @@
+package tp9.exo1;
+
+import java.util.ArrayList;
+
+public class SubjectResultUtils {
+// Affiche les � valuations des r� sultats d'un � tudiant pour chaque mati �re
+// en utilisant l'� valuateur sp� cifi �.
+	public static void printEvaluations(ArrayList<SubjectResult> results, SubjectEvaluator evaluator) {
+		for (int index = 0; index < results.size(); index++)
+			System.out.println(evaluator.generateEvaluation(results.get(index)));
+	}
+}
\ No newline at end of file
diff --git a/CCI_Java/CCI_Java/src/tp9/exo1/SubjectSimpleEvaluator.java b/CCI_Java/CCI_Java/src/tp9/exo1/SubjectSimpleEvaluator.java
new file mode 100644
index 0000000000000000000000000000000000000000..c99e598b586fff126e722ba716a5b4755f871f0d
--- /dev/null
+++ b/CCI_Java/CCI_Java/src/tp9/exo1/SubjectSimpleEvaluator.java
@@ -0,0 +1,10 @@
+package tp9.exo1;
+
+public class SubjectSimpleEvaluator implements SubjectEvaluator {
+
+	public String generateEvaluation(SubjectResult result) {
+		return (result.getMark() < 10) ? "Des difficult�s en " + result.getName()
+				: "Pas de probl�me en " + result.getName();
+	}
+
+}
diff --git a/CCI_Java/CCI_Java/src/tp9/exo1/TestSubjectPointEvaluator.java b/CCI_Java/CCI_Java/src/tp9/exo1/TestSubjectPointEvaluator.java
new file mode 100644
index 0000000000000000000000000000000000000000..ce87012f3d842b09daba5960c6a33355bfb2f348
--- /dev/null
+++ b/CCI_Java/CCI_Java/src/tp9/exo1/TestSubjectPointEvaluator.java
@@ -0,0 +1,13 @@
+package tp9.exo1;
+
+public class TestSubjectPointEvaluator {
+
+	public static void main(String[] args) {
+		SubjectResult res1 = new SubjectResult("Math�matique", 15);
+		SubjectResult res2 = new SubjectResult("Histoire", 9);
+		SubjectEvaluator eva1 = new SubjectPointEvaluator();
+		SubjectEvaluator eva2 = new SubjectPointEvaluator();
+		System.out.println(eva1.generateEvaluation(res1));
+		System.out.println(eva2.generateEvaluation(res2));	}
+
+}
diff --git a/CCI_Java/CCI_Java/src/tp9/exo1/TestSubjectResult.java b/CCI_Java/CCI_Java/src/tp9/exo1/TestSubjectResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f8bba18f8a25ed5a5c0c2302865d7287c298479
--- /dev/null
+++ b/CCI_Java/CCI_Java/src/tp9/exo1/TestSubjectResult.java
@@ -0,0 +1,14 @@
+package tp9.exo1;
+
+public class TestSubjectResult {
+
+	public static void main(String[] args) {
+		// TODO Auto-generated method stub
+
+		SubjectResult res1 = new SubjectResult("Math�matique", 15);
+		SubjectResult res2 = new SubjectResult("Histoire", 9);
+		System.out.println(res1);
+		System.out.println(res2);
+	}
+
+}
diff --git a/CCI_Java/CCI_Java/src/tp9/exo1/TestSubjectSimpleEvaluator.java b/CCI_Java/CCI_Java/src/tp9/exo1/TestSubjectSimpleEvaluator.java
new file mode 100644
index 0000000000000000000000000000000000000000..c0e9e0774294c8bdcb7dbf14d41628322e9feeb6
--- /dev/null
+++ b/CCI_Java/CCI_Java/src/tp9/exo1/TestSubjectSimpleEvaluator.java
@@ -0,0 +1,16 @@
+package tp9.exo1;
+
+public class TestSubjectSimpleEvaluator {
+
+	public static void main(String[] args) {
+		// TODO Auto-generated method stub
+
+		SubjectResult res1 = new SubjectResult("Math�matique", 15);
+		SubjectResult res2 = new SubjectResult("Histoire", 9);
+		SubjectEvaluator eva1 = new SubjectSimpleEvaluator();
+		SubjectEvaluator eva2 = new SubjectSimpleEvaluator();
+		System.out.println(eva1.generateEvaluation(res1));
+		System.out.println(eva2.generateEvaluation(res2));
+	}
+
+}