diff --git a/lib/qu-tp01.jar b/lib/qu-tp01.jar new file mode 100644 index 0000000000000000000000000000000000000000..f410533d96cf77f4701143887c832810e30800f7 Binary files /dev/null and b/lib/qu-tp01.jar differ diff --git a/lib/res02-tpQU.jar b/lib/res02-tpQU.jar new file mode 100644 index 0000000000000000000000000000000000000000..3b18a48ebc9aeff4f8db5af89661078dfc1541ab Binary files /dev/null and b/lib/res02-tpQU.jar differ diff --git a/src/tpQU/tp01/Main.java b/src/tpQU/tp01/Main.java new file mode 100644 index 0000000000000000000000000000000000000000..6718de354aa815ae06c241deebf7de61d669b7fb --- /dev/null +++ b/src/tpQU/tp01/Main.java @@ -0,0 +1,11 @@ +import controlepkg2.sspkg.C; +import controlepkg1.A; +import controlepkg2.B; +import controlpkg.D; + +class Main{ + A triste = new A("triste"); + B chapeau = new B(); + C pointu = new C("pointu", 42); + D grand = new A("grand"); +} diff --git a/src/tpQU/tp01/controlepkg1/A.java b/src/tpQU/tp01/controlepkg1/A.java new file mode 100644 index 0000000000000000000000000000000000000000..9f166a3435f64b2c489fc79b339d2e0e7b070bce --- /dev/null +++ b/src/tpQU/tp01/controlepkg1/A.java @@ -0,0 +1,13 @@ +package controlepkg1; + +public class A { + private String aLabel; + + public A(String aLabel) { + this.aLabel = aLabel; + } + @Override + public String toString() { + return "A [aLabel=" + aLabel + "]"; + } +} diff --git a/src/tpQU/tp01/controlepkg2/B.java b/src/tpQU/tp01/controlepkg2/B.java new file mode 100644 index 0000000000000000000000000000000000000000..47d16fb1b203c8e34094b6d8fd9c5f6b935594a2 --- /dev/null +++ b/src/tpQU/tp01/controlepkg2/B.java @@ -0,0 +1,9 @@ +package controlepkg2; + +public class B { + private int aNumber = 42; + @Override + public String toString() { + return "B [aNumber=" + aNumber + "]"; + } +} diff --git a/src/tpQU/tp01/controlepkg2/sspkg/C.java b/src/tpQU/tp01/controlepkg2/sspkg/C.java new file mode 100644 index 0000000000000000000000000000000000000000..41db448aa1d758b720894eb648b0448f934d4fa6 --- /dev/null +++ b/src/tpQU/tp01/controlepkg2/sspkg/C.java @@ -0,0 +1,19 @@ +package controlepkg2.sspkg; + +public class C { + private String aLabel; + private int aNumber; + + public C(String aLabel, int aNumber) { + this.aLabel = aLabel; + this.aNumber = aNumber; + } + public String getALabel() {return aLabel;} + public void setALabel(String aLabel) {this.aLabel = aLabel;} + public int getANumber() {return aNumber;} + public void setANumber(int aNumber) {this.aNumber = aNumber;} + @Override + public String toString() { + return "C [aLabel=" + aLabel + ", aNumber=" + aNumber + "]"; + } +} diff --git a/src/tpQU/tp01/controlpkg1/qu-tp01.jar b/src/tpQU/tp01/controlpkg1/qu-tp01.jar new file mode 100644 index 0000000000000000000000000000000000000000..f410533d96cf77f4701143887c832810e30800f7 Binary files /dev/null and b/src/tpQU/tp01/controlpkg1/qu-tp01.jar differ diff --git a/src/tpQU/tp01/fifth/B.java b/src/tpQU/tp01/fifth/B.java new file mode 100644 index 0000000000000000000000000000000000000000..52ee171eb0beb6b1722b6078e30c5abadb4b1bee --- /dev/null +++ b/src/tpQU/tp01/fifth/B.java @@ -0,0 +1,12 @@ +package fifth; + +import fourth.A; + +class B { + + public static void main(String[] args) { + System.out.println("class B -- main()"); + A a = new A(); + System.out.println(a + " again"); + } +} \ No newline at end of file diff --git a/src/tpQU/tp01/first/A.java b/src/tpQU/tp01/first/A.java new file mode 100644 index 0000000000000000000000000000000000000000..6f6a9c5768c24832172cf120ddb372a2341b624a --- /dev/null +++ b/src/tpQU/tp01/first/A.java @@ -0,0 +1,22 @@ +class A{ + String label = "42"; + + A(){ + ; + } + + A(String label){ + this.label = label; + } + + public String toString(){ + return this.label; + } + + public static void main(String[] args){ + A a1 = new A(); + A a2 = new A("a choisir"); + System.out.println(a1); + System.out.println(a2); + } +} \ No newline at end of file diff --git a/src/tpQU/tp01/fourth/A.java b/src/tpQU/tp01/fourth/A.java new file mode 100644 index 0000000000000000000000000000000000000000..4531de6e2f6ce884c1a20f96e1eaf48376dc9106 --- /dev/null +++ b/src/tpQU/tp01/fourth/A.java @@ -0,0 +1,19 @@ +package fourth; +public class A{ + String label = "42"; + + public A(){ + ; + } + + public A(String label){ + this.label = label; + } + + public String toString(){ + return this.label; + } + + // javac second/B.java -d ../bin -cp ../cp + +} \ No newline at end of file diff --git a/src/tpQU/tp01/second/A.java b/src/tpQU/tp01/second/A.java new file mode 100644 index 0000000000000000000000000000000000000000..2547c136c83d40d5010dc4d9c33c031e39fbf2c8 --- /dev/null +++ b/src/tpQU/tp01/second/A.java @@ -0,0 +1,18 @@ +class A{ + String label = "42"; + + A(){ + ; + } + + A(String label){ + this.label = label; + } + + public String toString(){ + return this.label; + } + + // javac second/B.java -d ../bin -cp ../cp + +} \ No newline at end of file diff --git a/src/tpQU/tp01/second/B.java b/src/tpQU/tp01/second/B.java new file mode 100644 index 0000000000000000000000000000000000000000..fb5b7a30f0655c0092352e67f8f85ad0c49eeb4c --- /dev/null +++ b/src/tpQU/tp01/second/B.java @@ -0,0 +1,8 @@ +class B { + + public static void main(String[] args) { + System.out.println("class B -- main()"); + A a = new A(); + System.out.println(a + " again"); + } +} \ No newline at end of file diff --git a/src/tpQU/tp01/third/A.java b/src/tpQU/tp01/third/A.java new file mode 100644 index 0000000000000000000000000000000000000000..9c711ef9d7c916e59c2833e3bbb1205219bdfa71 --- /dev/null +++ b/src/tpQU/tp01/third/A.java @@ -0,0 +1,7 @@ +package third; + +public class A { + public static void main(String[] args) { + System.out.println("Pkg third - Class A - main program"); // java -cp bin third/A.java + } +} \ No newline at end of file diff --git a/src/tpQU/tp02/ToDoList.html b/src/tpQU/tp02/ToDoList.html new file mode 100644 index 0000000000000000000000000000000000000000..908b12580016fc2291733e522e625bbce1d60802 --- /dev/null +++ b/src/tpQU/tp02/ToDoList.html @@ -0,0 +1,360 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (21) on Mon Mar 10 10:46:53 CET 2025 --> +<title>ToDoList</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-10"> +<meta name="description" content="declaration: package: tpOO.tp03, class: ToDoList"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.7.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-all.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">tpOO.tp03</a></div> +<h1 title="Class ToDoList" class="title">Class ToDoList</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">tpOO.tp03.ToDoList</div> +</div> +<section class="class-description" id="class-description"> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">ToDoList</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div> +<div class="block">Représente une liste de tâches à effectuer.</div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">ToDoList</a>()</code></div> +<div class="col-last even-row-color"> +<div class="block">Constructeur initialisant la liste avec une capacité de 5 tâches.</div> +</div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel" aria-labelledby="method-summary-table-tab0"> +<div class="summary-table three-column-summary"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addTask(tpOO.tp03.Task)" class="member-name-link">addTask</a><wbr>(<a href="Task.html" title="class in tpOO.tp03">Task</a> aTask)</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Ajoute une tâche à la liste.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#dueTasks()" class="member-name-link">dueTasks</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Retourne les tâches dont la date d'échéance est aujourd'hui.</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#durationSort()" class="member-name-link">durationSort</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Trie les tâches par durée (de la plus longue à la plus courte).</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#emergencySort()" class="member-name-link">emergencySort</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Trie les tâches par ordre d'urgence (échéance la plus proche en premier).</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#enlarge()" class="member-name-link">enlarge</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Augmente la capacité de la liste de tâches de 5 unités.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getChores()" class="member-name-link">getChores</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Retourne le tableau des tâches.</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNbTasks()" class="member-name-link">getNbTasks</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Retourne le nombre de tâches dans la liste.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isOverwhelmed()" class="member-name-link">isOverwhelmed</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Vérifie si la liste de tâches est surchargée.</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onSickLeave(int)" class="member-name-link">onSickLeave</a><wbr>(int nbDays)</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Reporte toutes les tâches de la liste d'un certain nombre de jours.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeTask(int)" class="member-name-link">removeTask</a><wbr>(int i)</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Supprime une tâche à un index donné.</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeTask(tpOO.tp03.Task)" class="member-name-link">removeTask</a><wbr>(<a href="Task.html" title="class in tpOO.tp03">Task</a> aTask)</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Supprime une tâche spécifique de la liste.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#senioritySort()" class="member-name-link">senioritySort</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Trie les tâches par ancienneté (de la plus ancienne à la plus récente).</div> +</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Retourne une représentation sous forme de chaîne de caractères de la liste de tâches.</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>()"> +<h3>ToDoList</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">ToDoList</span>()</div> +<div class="block">Constructeur initialisant la liste avec une capacité de 5 tâches.</div> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="enlarge()"> +<h3>enlarge</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">enlarge</span>()</div> +<div class="block">Augmente la capacité de la liste de tâches de 5 unités.</div> +</section> +</li> +<li> +<section class="detail" id="addTask(tpOO.tp03.Task)"> +<h3>addTask</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">addTask</span><wbr><span class="parameters">(<a href="Task.html" title="class in tpOO.tp03">Task</a> aTask)</span></div> +<div class="block">Ajoute une tâche à la liste.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>aTask</code> - La tâche à ajouter.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="removeTask(tpOO.tp03.Task)"> +<h3>removeTask</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">removeTask</span><wbr><span class="parameters">(<a href="Task.html" title="class in tpOO.tp03">Task</a> aTask)</span></div> +<div class="block">Supprime une tâche spécifique de la liste.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>aTask</code> - La tâche à supprimer.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="removeTask(int)"> +<h3>removeTask</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">removeTask</span><wbr><span class="parameters">(int i)</span></div> +<div class="block">Supprime une tâche à un index donné.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>i</code> - L'index de la tâche à supprimer.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="isOverwhelmed()"> +<h3>isOverwhelmed</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name">isOverwhelmed</span>()</div> +<div class="block">Vérifie si la liste de tâches est surchargée.</div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>true si la liste est surchargée, false sinon.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="getNbTasks()"> +<h3>getNbTasks</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name">getNbTasks</span>()</div> +<div class="block">Retourne le nombre de tâches dans la liste.</div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Le nombre total de tâches non nulles.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="onSickLeave(int)"> +<h3>onSickLeave</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">onSickLeave</span><wbr><span class="parameters">(int nbDays)</span></div> +<div class="block">Reporte toutes les tâches de la liste d'un certain nombre de jours.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>nbDays</code> - Nombre de jours de report.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="dueTasks()"> +<h3>dueTasks</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</span> <span class="element-name">dueTasks</span>()</div> +<div class="block">Retourne les tâches dont la date d'échéance est aujourd'hui.</div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Un tableau des tâches dues aujourd'hui.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="emergencySort()"> +<h3>emergencySort</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">emergencySort</span>()</div> +<div class="block">Trie les tâches par ordre d'urgence (échéance la plus proche en premier).</div> +</section> +</li> +<li> +<section class="detail" id="durationSort()"> +<h3>durationSort</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">durationSort</span>()</div> +<div class="block">Trie les tâches par durée (de la plus longue à la plus courte).</div> +</section> +</li> +<li> +<section class="detail" id="senioritySort()"> +<h3>senioritySort</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">senioritySort</span>()</div> +<div class="block">Trie les tâches par ancienneté (de la plus ancienne à la plus récente).</div> +</section> +</li> +<li> +<section class="detail" id="toString()"> +<h3>toString</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span> <span class="element-name">toString</span>()</div> +<div class="block">Retourne une représentation sous forme de chaîne de caractères de la liste de tâches.</div> +<dl class="notes"> +<dt>Overrides:</dt> +<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code> in class <code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd> +<dt>Returns:</dt> +<dd>Une chaîne représentant la liste des tâches.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="getChores()"> +<h3>getChores</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="Task.html" title="class in tpOO.tp03">Task</a>[]</span> <span class="element-name">getChores</span>()</div> +<div class="block">Retourne le tableau des tâches.</div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Un tableau de tâches.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/src/tpQU/tp02/WarriorCard.java b/src/tpQU/tp02/WarriorCard.java new file mode 100644 index 0000000000000000000000000000000000000000..94704497a32b43937023c3d733a2593dec838e44 --- /dev/null +++ b/src/tpQU/tp02/WarriorCard.java @@ -0,0 +1,65 @@ +package tp02; + +/** + * @author Alexandre + * @version 0.01 + * @since java21 + */ +public class WarriorCard { + private String name; + private int strength = 0; + private int agility = 0; + + /** + * @param name + * @param strength + * @param agility + */ + WarriorCard(String name, int strength, int agility){ + this.name = name; + this.strength = strength; + this.agility = agility; + } + + /** + * @param obj Objet qui est vérifié + * @return true si égale + * Vérifie si l'objet est égale + */ + public boolean equals(Object obj) { + if(this == obj){ + return true; + } + if(obj == null){ + return false; + } + if(this.getClass() != obj.getClass()){ + return false; + } + WarriorCard other = (WarriorCard) obj; + if (this.name == null) { + if (other.name != null){ + return false; + } + } else if (!this.name.equals(other.name)){ + return false; + } + return true; + } + + /** + * @param other une autre carte + * @return différence de strength + */ + public int compareStrength(WarriorCard other){ + return this.strength - other.strength; + } + + public int compareAgility(WarriorCard other){ + return this.agility - other.agility; + } + + public String toString(){ + return this.name + "[S=" + this.strength + ",A=" + this.agility + "]"; + } +} diff --git a/test/tpQU/tp02/AgendaTest.java b/test/tpQU/tp02/AgendaTest.java new file mode 100755 index 0000000000000000000000000000000000000000..e23d4ccc57b175bab70b40d94c42251e61b9133d --- /dev/null +++ b/test/tpQU/tp02/AgendaTest.java @@ -0,0 +1,56 @@ +package tpQU.tp02; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.time.LocalDate; +import java.util.ArrayList; + +public class AgendaTest { + public Event evt1; + public Event evt2; + public Event evt3; + public Event evt4; + public Agenda ag = new Agenda(); + public Agenda ag2 = new Agenda(); + + @BeforeEach + public void avantTest() { + ag.clear(); + LocalDate d1 = LocalDate.of(2018, 1, 5); + LocalDate d2 = LocalDate.of(2018, 2, 10); + LocalDate d3 = LocalDate.of(2018, 3, 15); + LocalDate d4 = LocalDate.of(2018, 4, 20); + evt1 = new Event("evt1", null, d1, d2); + evt2 = new Event("evt2", null, d2, d3); + evt3 = new Event("evt3", null, d3, d4); + evt4 = new Event("evt4", null, d2, d4); + } + + @Test + public void testConflicting() { + assertTrue(ag.conflicting(evt1)); + ag.addEvent(evt1); + assertTrue(ag.conflicting(evt3)); + ag.addEvent(evt3); + assertFalse(ag.conflicting(evt4)); + } + @Test + public void testRemoveOverlapping() { + ag.addEvent(evt1); + ArrayList<Event> tmp = new ArrayList<Event>(); + ag.removeOverlapping(evt1); + assertEquals(ag.events, tmp); + ag.addEvent(evt1);ag.addEvent(evt2);tmp.add(evt1); tmp.add(evt2); + ag.removeOverlapping(evt1); + ag.addEvent(evt3); tmp.clear(); + ag.removeOverlapping(evt4); + assertEquals(ag.events,tmp); + ag.addEvent(evt1);ag.addEvent(evt2);ag.addEvent(evt3); tmp.clear(); tmp.add(evt1); + ag.removeOverlapping(evt4); + assertEquals(ag.events,tmp); + } +} diff --git a/test/tpQU/tp02/EventTest.java b/test/tpQU/tp02/EventTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a4b7221e7e998ee24242a3d107f9e565d07d10fc --- /dev/null +++ b/test/tpQU/tp02/EventTest.java @@ -0,0 +1,96 @@ +package tpQU.tp02; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.time.LocalDate; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import tpOO.tp03.Task; + +public class EventTest { + public Event evt1; + public Event evt2; + public Event evt3; + public Event evt4; + public Event evt5; + public Event evt6; + public Task t1; + public Task t2; + + @BeforeEach + public void avantTest() { + LocalDate d1 = LocalDate.of(2022, 1, 5); + LocalDate d2 = LocalDate.of(2022, 2, 10); + LocalDate d3 = LocalDate.of(2022, 3, 15); + LocalDate d4 = LocalDate.of(2022, 4, 20); + String place1 = "nowhere"; + String place2 = "everywhere"; + evt1 = new Event("evt1", place1, d1, d2); + evt2 = new Event("evt2", place1, d2, d3); + evt3 = new Event("evt3", place1, d3, d4); + evt4 = new Event("evt4", place1, d2, d4); + evt5 = new Event("evt5", place2, d1, d2); + evt6 = new Event("evt1", place1, d1, d2); + t1 = new Task("task1", 2); + t2 = new Task("task2", 1); + } + + @Test + void testToString() { + assertEquals("evt1 - nowhere: \t 2022-01-05 -> 2022-02-10", evt1.toString()); + assertEquals("evt2 - nowhere: \t 2022-02-10 -> 2022-03-15", evt2.toString()); + assertEquals("evt3 - nowhere: \t 2022-03-15 -> 2022-04-20", evt3.toString()); + assertEquals("evt4 - nowhere: \t 2022-02-10 -> 2022-04-20", evt4.toString()); + assertEquals("evt5 - everywhere: \t 2022-01-05 -> 2022-02-10", evt5.toString()); + } + + @Test + void testAddTask() { + assertEquals(0, evt1.getNbTasks()); + assertNull(evt1.getChores()[0]); + evt1.addTask(t1); + assertEquals(1, evt1.getNbTasks()); + assertEquals(t1, evt1.getChores()[0]); + evt1.addTask(t2); + assertEquals(2, evt1.getNbTasks()); + assertEquals(t2, evt1.getChores()[1]); + evt1.addTask(t1); + assertEquals(3, evt1.getNbTasks()); + assertEquals(t1, evt1.getChores()[0]); + assertEquals(t1, evt1.getChores()[2]); + } + + @Test + void testEquals() { + assertTrue(evt1.equals(evt1)); + assertFalse(evt1.equals(evt2)); + assertFalse(evt1.equals(evt3)); + assertFalse(evt1.equals(evt4)); + assertFalse(evt1.equals(evt5)); + assertTrue(evt1.equals(evt6)); + // + assertTrue(evt2.equals(evt2)); + assertFalse(evt2.equals(evt3)); + assertFalse(evt2.equals(evt4)); + assertFalse(evt2.equals(evt5)); + assertFalse(evt2.equals(evt6)); + } + + @Test + void testOverlap() { + assertTrue(evt1.overlap(evt1)); + assertFalse(evt1.overlap(evt2)); + assertFalse(evt1.overlap(evt3)); + assertFalse(evt1.overlap(evt4)); + assertTrue(evt1.overlap(evt5)); + assertTrue(evt1.overlap(evt6)); + assertFalse(evt2.overlap(evt3)); + assertTrue(evt2.overlap(evt4)); + assertTrue(evt3.overlap(evt4)); + } +} diff --git a/test/tpQU/tp02/WarriorCardTest.java b/test/tpQU/tp02/WarriorCardTest.java new file mode 100755 index 0000000000000000000000000000000000000000..4a090856ef0a964c84c8bd8c82cf26160c524376 --- /dev/null +++ b/test/tpQU/tp02/WarriorCardTest.java @@ -0,0 +1,47 @@ +package tp02; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class WarriorCardTest { + WarriorCard c1; + WarriorCard c2; + WarriorCard c3; + WarriorCard c4; + + @BeforeAll + public static void beforeAllTests() {System.out.println("Start test series");} + @AfterAll + public static void afterAllTests() {System.out.println("End test series");} + @BeforeEach + public void beforeATest() { + c1 = new WarriorCard("w1", 10, 10); + c2 = new WarriorCard("w1", 5, 5); + c3 = new WarriorCard("w2", 20, 20); + c4 = c1; + } + @AfterEach + public void afterATest() {System.out.println("--------- end of a test---------");} + @Test + public void testEquals() { + System.out.println("testEquals"); + assertTrue(c1.equals(c1)); + assertTrue(c1.equals(c2)); + assertFalse(c1.equals(c3)); + assertTrue(c1.equals(c4)); + } + @Test + public void testToString() { + System.out.println("testToString"); + assertEquals("w1[S=10,A=10]", c1.toString()); + assertEquals("w2[S=20,A=20]", c3.toString()); + } + +} \ No newline at end of file