From af9416f706b0e5e95c8de19f6657993ca56f3e67 Mon Sep 17 00:00:00 2001 From: Villosse <51237565+Villosse@users.noreply.github.com> Date: Fri, 5 Jan 2024 22:55:59 +0100 Subject: [PATCH] TP Revision partiels B2 (#29) * add(SoutienPartiel) v1 tp de revision * rephrasing * finals take place on b2 and not b1 * Readme changed * Rephrasing --- README.md | 8 + config.yml | 10 +- content/b2/SoutienPartiel/index.md | 193 ++++++++++++++++++ .../SoutienPartiel/resources/images/.gitkeep | 0 .../b2/SoutienPartiel/resources/ref/.gitkeep | 0 5 files changed, 209 insertions(+), 2 deletions(-) create mode 100644 content/b2/SoutienPartiel/index.md create mode 100644 content/b2/SoutienPartiel/resources/images/.gitkeep create mode 100644 content/b2/SoutienPartiel/resources/ref/.gitkeep diff --git a/README.md b/README.md index a152428..9c3359f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ # Programmation Sup +## Comment lancer le serveur en local ? + +Vous aurez besoin du package [`hugo`](https://github.com/gohugoio/hugo) + +Ensuite, il faudra charger le thème du site : `git submodule update --init themes/PaperMod/` + +Enfin, vous pourrez lancer le serveur en local avec la commande : `hugo server` + ## Comment créer un nouveau sujet ? Il suffit de taper cette commande : diff --git a/config.yml b/config.yml index e7e5e21..d67c92c 100644 --- a/config.yml +++ b/config.yml @@ -28,6 +28,8 @@ params: buttons: - name: "Sujets B1" url: b1 + - name: "Sujets B2" + url: b2 - name: "Sujets S1" url: s1 - name: "Sujets S2" @@ -50,11 +52,15 @@ menu: name: "Sujets B1" url: b1 weight: 5 + - identifier: b2 + name: "Sujets B2" + url: b2 + weight: 10 - identifier: s1 name: "Sujets S1" url: s1 - weight: 10 + weight: 15 - identifier: s2 name: "Sujets S2" url: s2 - weight: 15 + weight: 20 diff --git a/content/b2/SoutienPartiel/index.md b/content/b2/SoutienPartiel/index.md new file mode 100644 index 0000000..00683d3 --- /dev/null +++ b/content/b2/SoutienPartiel/index.md @@ -0,0 +1,193 @@ +--- +title: "Smurf Studies" +date: 2024-01-04T02:33:57+01:00 +authors: ["FIXME"] +--- + +# Introduction + +Oh mais c'est bientôt l'heure des examens! +Malheureusement, les Schtroumpfs on passé leurs vacances à réveillonner. + +Pendant les vacances ils ont totalement oublié toutes les notions qu'ils ont vu lors du premier semestre... + +Heureusement le grand Schtroumpf a pensé à eux et a préparé un TP pour les aider à réviser. :D + +# Tree + +```bash +. +├── README.md +├── SmurfStudies/ +│ ├── City.cs +│   ├── Course.cs +│   ├── Date.cs +│ ├── Person.cs +│   ├── Prof.cs +│   ├── Program.cs +│   ├── Room.cs +│   ├── SmurfStudies.csproj +│   ├── Student.cs +│   └── Subject.cs +└── SoutienPartiel.sln +``` + +# Setup + +## City.cs + +Pour commencer, nous vous donnons les différentes villes d'où peuvent venir les élèves. +*Notez que nous stockerons ces villes dans un type énumérateur nommé :* `City` + +```csharp +public enum City +{ + PARIS, + LYON, + TOULOUSE, + RENNES, + STRASBOURG, +}; +``` + +## Subject.cs +Nous vous donnons également les différentes matières sur lesquelles les élèves seront intérrogés. +*Notez que nous stockerons ces matières dans un type énumérateur nommé :* `Subject` + +```csharp +public enum Subject +{ + MATH, + ALGO, + PROG, + ELEC, + PHYS, + ARCHI, + METHODO, + ANGLAIS, +}; +``` + +## Date.cs + +Ensuite, chaque élève doit avoir sa date de naissance. Pour cela, nous allons implémenter une classe `Date` + +```csharp +/// +/// Prototype de la classe Date +/// +public Date(int day, int month, int year); +``` + +*A noter que* : notre classe `Date` contient les propriétés suivantes : +- `Day`, un entier public avec un getter et un setter publics. +- `Month`, un entier public avec un getter et un setter publics. +- `Year`, un entier public avec un getter et un setter publics. + +*Attention*, un élève ne peut pas avoir une date invalide. Si une date est invalide, lancer : `ArgumentException`. + +**Tip** : Vérifie que la date est correcte ;) + + +## Person.cs + +Maintenant, que nous pouvons savoir d'où viennent les élèves et quelle est leur date de naissance, créons notre classe `Person` +```csharp +/// +/// Prototype de la classe Person +/// +public Person(string firstname, string lastname, Date birthDate, City campus); +``` + +*A noter que* : notre classe `Person` contient les attributs suivants : +- `private string _firstname;` +- `private string _lastname;` + +Et les propriétés suivantes : +- `Login`, une chaîne de caractères publique avec un getter public et un setter privé +- `BirthDate`, une `Date` publique avec un getter public et un setter privé +- `Campus`, une `City` publique avec un getter public et un setter public + +*De plus*, le `Login` est une `string` qui est composé de : `prenom.nom`. + +# L'HERITAGE + +## Student.cs + +Très bien nous avons une classe `Person` mais il faut différencier les professeurs des élèves. Pour cela, nous allons d'abord nous occuper de créer la classe `Student` qui hérite de la classe `Person`. + +```csharp +/// +/// Prototype de la classe Student +/// +public Student(string firstname, string lastname, Date birthDate, City campus, int uid, int promo); +``` + +*A noter que* : la classe `Student` possède deux proprités publics : +- `Uid`, un entier public avec un getter public et un setter public +- `Promo`, un entier public avec un getter public et un setter public + +## Prof.cs + +Les élèves n'ont pas appris tout seul et les matières ne sont pas corrigées par nimporte qui dans le village ! +Il nous faut donc une classe `Prof` qui hérite également de la classe `Person`. + + +```csharp +/// +/// Prototype de la classe Prof +/// +public Prof(string firstname, string lastname, Date birthDate, City campus, List subjects); +``` + +*A noter que* : comme pour la classe `Student`, `Prof` a une propriété : +- `PreferredSubjects`, une liste de `Subject` avec un getter public et un setter public + +# LES COURS + +## Room.cs + +Il ne peut pas y avoir de cours sans salle (sauf pendant la pandémie mais c'était vachement triste). +Chaque salle de classe a un plan de classe. Pour cela, nous avons besoin de la classe : `Room`. + +```csharp +/// +/// Prototype de la classe Room +/// +public Room(List students); +``` + +*A noter que* : la classe `Room` contient une propriété : +- `Student[,] ClassPlan`, une matrice de `Student` avec un getter public et un setter public + +Chaque classe est construite de la même façon : 7 rangées de 6 tables. + +On va se dire que les étudiants vont se mettre à leur place définie en fonction de leur ordre dans la liste donnée en argument. (On les place colonnes par colonnes en commençant par la dernières rangée). + +*Attention* : Il n'y aura pas toujours assez d'élève pour remplir la salle de classe. + +**TIP** : On peut se dire que plus le nombre (de la colonne ou de la rangée) est élevé, plus il est loin de la porte/au fond. + +## Course.cs + +Maintenant qu'il y a une salle pour accueillir le cours, il faut savoir où chaque cours se déroulera. +Pour cela, rien de plus simple, il nous faut créer une classe `Course` + +```csharp +/// +/// Prototype de la classe Course +/// +public Course(Prof prof, Subject subject, Room room, int startTime, int duration); +``` + +*A noter que* : la classe `Course` contient des propriétés : +- `Prof`, un `Prof` avec un getter public et un setter public +- `Students`, une liste `Student` avec un getter public et un setter public +- `Room`, une `Room` avec un getter public et un setter public +- `Subject`, un `Subject` avec un getter public et un setter privé +- `StartTime`, un entier avec un getter public et un setter privé +- `Duration`, un entier avec un getter public et un setter privé + +# Fin + +Grâce à ce petit TP récapitulatif sur les classes, le grand Schtroumpf a bien aidé les Schtroumpfs du village à réviser pour leurs examens. :D \ No newline at end of file diff --git a/content/b2/SoutienPartiel/resources/images/.gitkeep b/content/b2/SoutienPartiel/resources/images/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/content/b2/SoutienPartiel/resources/ref/.gitkeep b/content/b2/SoutienPartiel/resources/ref/.gitkeep new file mode 100644 index 0000000..e69de29