diff options
author | Benjamin Chausse <benjamin@chausse.xyz> | 2023-01-16 03:26:28 -0500 |
---|---|---|
committer | Benjamin Chausse <benjamin@chausse.xyz> | 2023-01-16 03:26:28 -0500 |
commit | 20ae6ae3f82a4eeeb123d9c1f895f10c8967f44b (patch) | |
tree | da18c55250fb9f544b5b67aacc1a3fab4a7ccf75 /rapport | |
parent | 267868847b0885f60aaae43afd4f54ce028181d8 (diff) | |
parent | 5f8fa959dab1106105f9e58325f65d0b51bb1631 (diff) |
Merge branch 'development'
Diffstat (limited to 'rapport')
-rw-r--r-- | rapport/algpseudocode.sty | 92 | ||||
-rw-r--r-- | rapport/class.png | bin | 0 -> 142596 bytes | |||
-rw-r--r-- | rapport/document.sty | 72 | ||||
-rw-r--r-- | rapport/frpseudocode.sty | 79 | ||||
-rw-r--r-- | rapport/main.pdf | bin | 0 -> 577902 bytes | |||
-rw-r--r-- | rapport/main.tex | 216 | ||||
-rw-r--r-- | rapport/sequence.png | bin | 0 -> 102706 bytes | |||
-rw-r--r-- | rapport/titlepage.sty | 69 | ||||
-rw-r--r-- | rapport/usecase.png | bin | 0 -> 264876 bytes |
9 files changed, 528 insertions, 0 deletions
diff --git a/rapport/algpseudocode.sty b/rapport/algpseudocode.sty new file mode 100644 index 0000000..8cc2bf0 --- /dev/null +++ b/rapport/algpseudocode.sty @@ -0,0 +1,92 @@ +% PSEUDOCODE ALGORITHMIC STYLE -- Released 27 APR 2005 +% for LaTeX version 2e +% +% Copyright Szasz Janos +% E-mail szaszjanos@users.sourceforge.net +% Based on Peter Williams's algorithmic.sty +% +\NeedsTeXFormat{LaTeX2e}% +\ProvidesPackage{algpseudocode}% +\RequirePackage{ifthen}% +\RequirePackage{algorithmicx}% +\typeout{Document Style - pseudocode environments for use with the `algorithmicx' style}% +% +\def\ALG@noend{f}% +\newboolean{ALG@compatible}% +\setboolean{ALG@compatible}{false}% +% +\DeclareOption{noend}{\def\ALG@noend{t}}% +\DeclareOption{end}{\def\ALG@noend{f}}% +\DeclareOption{compatible}{\typeout{For compatibility mode use algcompatible.sty!!!}\setboolean{ALG@compatible}{true}}% +\DeclareOption{noncompatible}{\setboolean{ALG@noncompatible}{false}}% +\ProcessOptions% +% +% *** DECLARATIONS *** +% +\algnewlanguage{pseudocode}% +\alglanguage{pseudocode}% +% +% *** KEYWORDS *** +% +\algnewcommand\algorithmicend{\textbf{end}} +\algnewcommand\algorithmicdo{\textbf{do}} +\algnewcommand\algorithmicwhile{\textbf{while}} +\algnewcommand\algorithmicfor{\textbf{for}} +\algnewcommand\algorithmicforall{\textbf{for all}} +\algnewcommand\algorithmicloop{\textbf{loop}} +\algnewcommand\algorithmicrepeat{\textbf{repeat}} +\algnewcommand\algorithmicuntil{\textbf{until}} +\algnewcommand\algorithmicprocedure{\textbf{procedure}} +\algnewcommand\algorithmicfunction{\textbf{function}} +\algnewcommand\algorithmicif{\textbf{if}} +\algnewcommand\algorithmicthen{\textbf{then}} +\algnewcommand\algorithmicelse{\textbf{else}} +\algnewcommand\algorithmicrequire{\textbf{Require:}} +\algnewcommand\algorithmicensure{\textbf{Ensure:}} +\algnewcommand\algorithmicreturn{\textbf{return}} +\algnewcommand\textproc{\textsc} +% +% *** DECLARED LOOPS *** +% +\algdef{SE}[WHILE]{While}{EndWhile}[1]{\algorithmicwhile\ #1\ \algorithmicdo}{\algorithmicend\ \algorithmicwhile}% +\algdef{SE}[FOR]{For}{EndFor}[1]{\algorithmicfor\ #1\ \algorithmicdo}{\algorithmicend\ \algorithmicfor}% +\algdef{S}[FOR]{ForAll}[1]{\algorithmicforall\ #1\ \algorithmicdo}% +\algdef{SE}[LOOP]{Loop}{EndLoop}{\algorithmicloop}{\algorithmicend\ \algorithmicloop}% +\algdef{SE}[REPEAT]{Repeat}{Until}{\algorithmicrepeat}[1]{\algorithmicuntil\ #1}% +\algdef{SE}[IF]{If}{EndIf}[1]{\algorithmicif\ #1\ \algorithmicthen}{\algorithmicend\ \algorithmicif}% +\algdef{C}[IF]{IF}{ElsIf}[1]{\algorithmicelse\ \algorithmicif\ #1\ \algorithmicthen}% +\algdef{Ce}[ELSE]{IF}{Else}{EndIf}{\algorithmicelse}% +\algdef{SE}[PROCEDURE]{Procedure}{EndProcedure}% + [2]{\algorithmicprocedure\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}% + {\algorithmicend\ \algorithmicprocedure}% +\algdef{SE}[FUNCTION]{Function}{EndFunction}% + [2]{\algorithmicfunction\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}% + {\algorithmicend}% +% +\ifthenelse{\equal{\ALG@noend}{t}}% + {% + \algtext*{EndWhile}% + \algtext*{EndFor}% + \algtext*{EndLoop}% + \algtext*{EndIf}% + \algtext*{EndProcedure}% + \algtext*{EndFunction}% + }{}% +% +% *** OTHER DECLARATIONS *** +% +\algnewcommand\Require{\item[\algorithmicrequire]}% +\algnewcommand\Ensure{\item[\algorithmicensure]}% +\algnewcommand\Return{\algorithmicreturn{} }% +\algnewcommand\Call[2]{\textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}% +% +% +% +\ifthenelse{\boolean{ALG@compatible}}% + {% + \ifthenelse{\equal{\ALG@noend}{t}}% + {\RequirePackage[noend]{algcompatible}}% + {\RequirePackage{algcompatible}}% + }% + {}% +% diff --git a/rapport/class.png b/rapport/class.png Binary files differnew file mode 100644 index 0000000..cfb3804 --- /dev/null +++ b/rapport/class.png diff --git a/rapport/document.sty b/rapport/document.sty new file mode 100644 index 0000000..511d030 --- /dev/null +++ b/rapport/document.sty @@ -0,0 +1,72 @@ +\ProvidesPackage{document} + + +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +% Packages % +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% + +% Margin Setup according to University methodology: +\RequirePackage[top=2.5cm,bottom=2.5cm,inner=3cm,outer=2.5cm]{geometry} +% IEEE references & bibliography +\RequirePackage[style=ieee]{biblatex} +\RequirePackage[T1]{fontenc} % French compatibility +\RequirePackage[utf8]{inputenc} % Sensible text encoding +\RequirePackage[french]{babel} % French document environment +\RequirePackage{fancyhdr} % Footer customisation +\RequirePackage{booktabs} % Elegant tables +\RequirePackage{float} % Accurate positionning of figures +\usepackage{titlesec} % Font sizes for sections/subsection +\RequirePackage{amsmath} % Mathematics environments +\RequirePackage{amssymb} % Mathematical symbols +\RequirePackage{siunitx} % SI Units +\RequirePackage{setspace} % Line spacing + +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +% Headers/Footers % +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% + +\renewcommand{\footrulewidth}{.5pt} % Line at the bottom +\cfoot{\thepage} % Centered page number (footer) + + +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +% Sections % +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% + +% Font size for section (16) +\titleformat{\section} +{\normalfont\fontsize{16}{19}\bfseries}{\thesection}{1em}{} +% Font size for subsection (14) +\titleformat{\subsection} +{\normalfont\fontsize{14}{17}\bfseries}{\thesubsection}{1em}{} + + +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +% Equations/Math % +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% + +% Number equation with section number (ex: First equation in section 3 is 3.1) +\numberwithin{equation}{section} +% Use french commas when writing numbers +\sisetup{locale=FR} + + +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +% Line Spacing % +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% + +% Set 1.5 linespacing for the document +\onehalfspacing + + +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +% Figures/Tables % +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% + +% Count within sections (third table of section 5 would be Table 5.3) +\counterwithin{figure}{section} +\counterwithin{table}{section} +% Separate section number from fig/table with a hyphen (5-3 instead of 5.3) +\renewcommand{\thefigure}{\thesection-\arabic{figure}} +\renewcommand{\thetable}{\thesection-\arabic{table}} + diff --git a/rapport/frpseudocode.sty b/rapport/frpseudocode.sty new file mode 100644 index 0000000..8e1732a --- /dev/null +++ b/rapport/frpseudocode.sty @@ -0,0 +1,79 @@ +%% @author Oliver Irwin +%% DATE +\ProvidesPackage{frpseudocode}[DATE French Pseudocode VERSION] +\RequirePackage{algpseudocode} + +%% Global mod +\floatname{algorithm}{Algorithme} + +%% Functions %% +\algrenewcommand\algorithmicprocedure{\textbf{PROCÉDURE}} +\algrenewcommand\algorithmicfunction{\textbf{FONCTION}} +\algrenewcommand\algorithmicreturn{Retourner} + +\algrenewtext{Procedure}[2]% +{\algorithmicprocedure\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}\ :} + +\algrenewtext{Function}[2]% +{\algorithmicfunction\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}\ :} + +%% Inputs +\algrenewcommand\algorithmicrequire{\textbf{REQUIERT : }} +\algrenewcommand\algorithmicensure{\textbf{VÉRIFIER : }} + +%% Control Instructions %% +\algrenewcommand\algorithmicwhile{\textbf{TANT QUE}} +\algnewcommand\algorithmicwhilem{\textbf{TANT QUE}} +\algrenewcommand\algorithmicdo{\textbf{FAIRE}} +\algnewcommand\algorithmicdom{\textbf{FAIRE}} +\algrenewcommand\algorithmicend{\textbf{FIN}} +\algrenewcommand\algorithmicfor{\textbf{POUR}} +\algrenewcommand\algorithmicforall{\textbf{POUR TOUT}} +\algnewcommand\algorithmicfrom{\textbf{DE }} +\algnewcommand\algorithmicto{\textbf{À}} +\algnewcommand\algorithmicform{\textbf{POUR}} + +\algrenewcommand\algorithmicrepeat{\textbf{RÉPÉTER}} +\algrenewcommand\algorithmicuntil{\textbf{JUSQU'À}} + +\algdef{SE}[FORFT]{ForFT}{EndFor}[3]{}% + +%% Change commands +\algrenewtext{ForFT}[3]% +{\algorithmicfor\ #1 \algorithmicfrom #2 \algorithmicto\ #3,\ \algorithmicdom\ :} + +\algrenewtext{For}[1]% +{\algorithmicfor\ #1,\ \algorithmicdom\ :} + +\algrenewtext{EndFor}[0]% +{\algorithmicend\ \algorithmicform} + +\algrenewtext{While}[1]% +{\algorithmicwhile\ #1,\ \algorithmicdom\ :} + +\algrenewtext{EndWhile}[0]% +{\algorithmicend\ \algorithmicwhilem} + +%% Conditionnals %% + +\algrenewcommand\algorithmicif{\textbf{SI}} +\algnewcommand\algorithmicifm{\textbf{SI}} +\algrenewcommand\algorithmicelse{\textbf{SINON}} +\algrenewcommand\algorithmicthen{\textbf{ALORS}} +\newcommand{\algorithmicelsif}{\algorithmicelse\ \algorithmicif} + +\algrenewtext{SINON SI}[1]% +{\algorithmicelse ,\ \algorithmicifm\ #1} + +\algrenewtext{ENDIF}[0]% +{\algorithmicend\ \algorithmicifm} + + +\algtext*{EndWhile}% Remove "end while" text +\algtext*{EndIf}% Remove "end if" text +% \algtext*{EndFunction}% Remove "end if" text + +%% Logical +%\algrenewcommand{\algorithmicnot}{\textbf{non}} +%\algrenewcommand{\algorithmicand}{\textbf{et}} +%\algrenewcommand{\algorithmicor}{\textbf{ou}} diff --git a/rapport/main.pdf b/rapport/main.pdf Binary files differnew file mode 100644 index 0000000..e705be0 --- /dev/null +++ b/rapport/main.pdf diff --git a/rapport/main.tex b/rapport/main.tex new file mode 100644 index 0000000..bdf975e --- /dev/null +++ b/rapport/main.tex @@ -0,0 +1,216 @@ +\documentclass[a11paper, 11pt]{article} + +\usepackage{document} +\usepackage{titlepage} +\usepackage{float} +\usepackage{algorithm} +\usepackage{amsmath} +\usepackage{graphicx} +\usepackage{tikz-uml} +\usepackage{algpseudocode} +\usepackage{frpseudocode} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} + +% \addbibresource{bibliography.bib} +% \nofiles + + +% \institution{Université de Sherbrooke} +% \faculty{Faculté de génie} +% \department{Département de génie électrique et de génie informatique} +\title{Rapport d'APP} +\classnb{GEN241} +\class{Modélisation et programmation orientée objet} +\author{ + \addtolength{\tabcolsep}{-0.4em} + \begin{tabular}{rcl} % Ajouter des auteurs au besoin + Benjamin Chausse & -- & chab1704 \\ + \end{tabular} +} +\teacher{Domingo Palao Muñoz} +% \location{Sherbrooke} +% \date{\today} + + +\begin{document} +\maketitle +\newpage +\tableofcontents +\listoffigures +\listoftables +\newpage + +\section{Diagrammes UML} + +La figure \ref{fig:class} montre les diverses relation entre les classes de +graphicus-02. Elle permet d'observer la hiérarchie des classes ainsi que les +facteurs de dépendance entre les classes. + +\begin{figure}[H] % Diagramme de classes {{{ +\centering +\caption{Diagrame de classes de graphicus-02}\label{fig:class} +\includegraphics[width=0.8\textwidth]{class.png} +\end{figure} % }}} + +La figure \ref{fig:sequence} montre comment l'application procéderait +lorsqu'un utilisateur voudrait activer la couche 1 du canevas alors que la +couche 0 est présentement active. Les autres couches ont été omises pour +alléger le diagramme. + +\begin{figure}[H] % Diagramme de séquence {{{ +\centering +\caption{Diagrame de séquence d'activation de couche}\label{fig:sequence} +\includegraphics[width=\textwidth]{sequence.png} +\end{figure} % }}} + + +La figure \ref{fig:usecase} montre les différentes actions que l'utilisateur +peut exécuter dans l'application. Nous voyos par la suite comment certaines de +ces actions agissent en arrière plan et dépendent d'autres actions (parfois +même d'autres actions accessibles à l'utilisateur). + +\begin{figure}[H] +\centering\caption{Diagramme de cas d'utilisation}\label{fig:usecase} +\includegraphics[width=\textwidth]{usecase.png} +\end{figure} + + +\section{Pseudo-code} + +\begin{algorithm} % {{{ +\caption{Ajout d'un élément au vecteur}\label{alg:ajouterForme} +\begin{algorithmic}[1] + \Function{Vecteur::ajouterForme}{$f$}{ Booléen}\\ + \hspace{.5cm}// $f$: Forme à ajouter au vecteur\\ + \hspace{.5cm}// $Vecteur::taille$: nombre d'éléments actuellement dans le vecteur (entier)\\ + \hspace{.5cm}// $Vecteur::capacite$: capacité maximale du vecteur actuellement (entier)\\ + \hspace{.5cm}// $Vecteur::formes$: Liste de pointeurs vers les formes du vecteur (*Forme)\\ + \textbf{DÉBUT}\\ + \hspace{.5cm}// $newCapacite$: nouvelle capacité du vecteur (entier)\\ + \hspace{.5cm}// $newFormes$: nouvelle liste de pointeurs vers les formes du vecteur (*Forme) + \If{$f$ est de valeur nulle} + \Comment{Vérifier si la forme est valide} + \State\Return{Faux} + \EndIf + \If{$Vecteur::taille =\joinrel= Vecteur::capacite$} + \Comment{Si le vecteur est plein} + \State $newCapacite := Vecteur::capacite\times2$ + \If{L'espace disponible en mémoire $<$ $newCapacite\times taille(Forme)$} + \State\Return{Faux} + \EndIf + \State $newFormes :=\ $allouer$(newCapacite\times taille(Forme))$ + \For{\textbf{CHAQUE} Forme $i$ dans $Vecteur::formes$} + \State $newFormes[i] := Vecteur::formes[i]$ + \EndFor + \State $Vecteur::capacite := newCapacite$ + \State libérer$(Vecteur::formes)$ + \State $Vecteur::formes := newFormes$ + \EndIf + \State $Vecteur::taille := Vecteur::taille + 1$ + \State $Vecteur::formes[Vecteur::taille] := f$ + \State \Return{Vrai} + \EndFunction +\end{algorithmic} +\end{algorithm} % }}} + +\section{Plan de test} + +\subsection{Identification} +\begin{table}[H] % {{{ +\centering\caption{Informations générales du plan de test}\label{fig:planTest} +\begin{tabular}{rl} + \\ \toprule + Nom: & Scénario de test du rapport d'APP \\ + But: & Vérifier les fonctionnalitées globales de graphicus-02\\ + Acteur principal: & classe \verb|Test| \\ + Date de création: & 2023-01-14 \\ + Auteur: & Benjamin Chausse -- chab1704 \\ + Version: & 1.0 \\ + \bottomrule +\end{tabular} +\end{table}% }}} + +\subsection{Scénario} + +\subsubsection{Préconditions} + +\begin{itemize} + \item Un canevas vierge vient d'être créé + \item Ce cas d'utilisation emploie la méthode \verb|tests_application_cas_02| + de la classe \verb|Tests|. La première ayant été utilisée lors de la + validation en classe. +\end{itemize} + + +\subsubsection{Postconditions} + +\begin{itemize} + \item Le déroulement du test se fait sans intervention de l'utilisateur. + \item L'affichage doit-être accessible à l'évaluateur: + \begin{itemize} + \item soit par écriture dans un fichier + \item soit par affichage dans un terminal + \end{itemize} + \item Le numéro de chaque étape est identifié avant son exécution. + \item La description de chaque étape est affichée avant son exécution. + \item Les informations passées à chaque étape sont affichées avant son exécution. +\end{itemize} + + +\subsubsection{Limitations} + +\begin{itemize} + \item Le test ne vérifie pas la totalité des cas limites + (ex: capacité insuffisante en mémoire pour agrandir le vecteur). +\end{itemize} + + +\subsection{Enchaînement nominal} + +\subsubsection{Étapes 1 à 4} +\begin{enumerate} + % \setcounter{enumi}{1} + \item Activer la couche d'index 4 + \item Ajouter les formes suivantes au canevas: + \begin{itemize} + \item un cercle de centre (1, 2) et de rayon $\frac{1}{\sqrt{\pi}}$ + \item un rectangle anchré en (3, 4), de dimensions $3\times4$ + \item un carré anchré en (-1, -1), de côté 2 + \end{itemize} + \item Afficher le canevas + \item Imprimer l'aire du canevas (doit être égale à $1+12+4$ soit $17$) +\end{enumerate} + +\subsubsection{Étapes 5 à 13} +\begin{enumerate} + \setcounter{enumi}{4} + \item Activer la couche d'index 3 + \item Ajouter les formes par défaut au canevas. Soit: + \begin{itemize} + \item un cercle de centre (0, 0) et de rayon 1 + \item un rectangle anchré en (0, 0), de largeur 1 et de hauteur 1 + \item un carré anchré en (0, 0), de côté 1 + \end{itemize} + \item Afficher le canevas + \item Translater la couche active de (1, 1) + \item Afficher le canevas + \item Supprimer la forme de l'index 0 (la première) + \item Activer la couche d'index 4 + \item Supprimer la forme de l'index 2 (la dernière) + \item Afficher le canevas +\end{enumerate} +\subsubsection{Étapes 14 à 18} +\begin{enumerate} + \setcounter{enumi}{13} + \item Initialiser la couche d'index 4 + \item Afficher le canevas + \item Imprimer l'aire du canevas (doit être égale à $1+1$ soit $2$) + \item Réinitialiser le canevas + \item Afficher le canevas +\end{enumerate} + + +% \newpage +% \printbibliography[heading=bibintoc] +\end{document} diff --git a/rapport/sequence.png b/rapport/sequence.png Binary files differnew file mode 100644 index 0000000..bdb1aae --- /dev/null +++ b/rapport/sequence.png diff --git a/rapport/titlepage.sty b/rapport/titlepage.sty new file mode 100644 index 0000000..72caa5b --- /dev/null +++ b/rapport/titlepage.sty @@ -0,0 +1,69 @@ +\ProvidesPackage{titlepage}[ +Sherbrooke Engineering Title Page by Benjamin Chausse +] +\RequirePackage{setspace} +\RequirePackage{tabularx} +\RequirePackage[french]{babel} + +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +% Plain Definitions % +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +\newcommand*{\institution}[1]{\gdef\@institution{#1}} +\newcommand*{\faculty}[1]{\gdef\@faculty{#1}} +\newcommand*{\department}[1]{\gdef\@department{#1}} +\renewcommand*{\title}[1]{\gdef\@title{#1}} +\newcommand*{\class}[1]{\gdef\@class{#1}} +\newcommand*{\classnb}[1]{\gdef\@classnb{#1}} +\newcommand*{\presentation}[1]{\gdef\@presentation{#1}} +\newcommand*{\teacher}[1]{\gdef\@teacher{#1}} +\renewcommand*{\author}[1]{\gdef\@author{#1}} +\newcommand*{\location}[1]{\gdef\@location{#1}} + +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +% Templated Definitions % +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +\newcommand*{\@institution}{Université de Sherbrooke} +\newcommand*{\@faculty}{Faculté de génie} +\newcommand*{\@department}{Département de génie électrique et de génie informatique} +\renewcommand*{\@title}{Titre du document} +\newcommand*{\@class}{Mathématiques des circuits logiques} +\newcommand*{\@classnb}{GEN420} +\newcommand*{\@presentation}{Présenté à} +\newcommand*{\@teacher}{Prénom Nom} +\renewcommand*{\@author}{Prénom Nom -- CIP} +\newcommand*{\@location}{Sherbrooke} + +% Simple Macro +\newcommand{\usp}{\unskip\strut\par} + +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +% Updated Title Page Template % +%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~% +\renewcommand*{\maketitle}{ +\begin{titlepage} + % \centering\LARGE\setstretch{.7} + \centering\normalsize + + {\MakeUppercase{\@institution}\usp} + {\@faculty\usp} + {\@department} + \vfill + + {\LARGE{\@title}} + \vfill + + {\@class\usp} + {\@classnb} + \vfill + + {\@presentation\usp} + {\@teacher} + \vfill + + {Présenté par\usp} + {\@author} + \vfill + + {\large \@location\ -- \@date\usp} +\end{titlepage} +} diff --git a/rapport/usecase.png b/rapport/usecase.png Binary files differnew file mode 100644 index 0000000..2bf4ea9 --- /dev/null +++ b/rapport/usecase.png |