Tämä kurssi on jo päättynyt.

Harjoitus (PAKOLLINEN): Projektin käynnistäminen

Tämän viikon tavoitteena on harjoitella uuden Qt-projektin aloittamista. .. Tämän ohella harjoitellaan sopimussuunnittelua (esi- ja jälkiehdot sekä luokkainvariantit) käytännössä sekä samalla tutustua Doxygen-työkaluun, jolla koodin dokumentaation voi upottaa kooditiedostojen kommenteiksi.

Harjoitus on pakollinen eli teet kohdat Qt-projekti ja Tagit. Palautus tehdään versionhallinnan avulla. Muista tehdä commit riittävän usein!

Tehtävän vaatimat tiedostot saat nyhtämällä versionhallinnasta. Ne sijaitsevat repositoriossa student_template_project. Se tulee laittaa paikalliseen repositorioosi remoteksi. Tässä harjoituksessa tarvitsemasi koodit ovat hakemistossa EX1. Huomaa, sinulla ei ole oikeuksia päivittää repositoriota.

  • Doxyfile: Doxygenin konfiguraatiotiedosto, jota voi muokata doxywizard-ohjelmalla (käynnistys komentoriviltä) tai käsin. (Huom! Muokkaaminen ei ole välttämätöntä tässä harjoituksessa.)
  • date.hh/.cc: Esimerkkiluokka, jonka rajapinta on dokumentoitu Doxygen-muodossa esi- ja jälkiehtoineen.
  • fraction.hh/.cc, string.hh/.cc, vector.hh/.cc: Tehtäväluokat, joista rajapintadokumentaatio puuttuu.

Usean tietovaraston käytöstä

Kurssilla käytetään oman tietovaraston lisäksi muita etätietovarastoja materiaalien jakamiseen. Tällöin paikalliseen työskentely-ympäristöön tulee asettaa originin lisäksi toinen etätietovarasto. Se asetetaan git-komennolla: git remote.

  • kloonaa oma tietovarastosi
  • siirry omaan tietovarastoosi
  • lisää sinne remote git remote add upstream student_template_project.git-URL, jossa student_template_project.git-URL korvataan kokonaisuudessaan repositorion url-osoitteella, joka alkaa https:// tai git@.
  • nyhdä remoten sisältö käyttöösi git pull upstream HEAD

HUOM! Remoten URL määräytyy sen mukaan, oletko asettanut GitLabiin SSH-avaimen käyttöön.

Qt-projekti

Aloita harjoitus luomalla sitä varten Qt-projekti: New Project-> Non-Qt Project->Plain C++ Application. Projekti tulee nimetä nimelle DesignByContract. Luo se samaan hakemistoon versionhallinnasta nyhtämiesi kooditiedostojen kanssa EX1.

Qt luo hakemistoosi uuden alihakemiston projektille. Siirrä harjoituksen tarvitsemat tiedostot sinne git mv, esim. git mv file.txt Dir/

Avaa DesignByContract.pro ja korjaa siitä muutama keskeinen asia: kääntäjä käyttämään C++:n versiota C++17 sekä Qt:n kirjastoja

CONFIG += console c++17
CONFIG += qt

Tämän jälkeen lisää .pro-tiedostoon harjoituksen tiedostot. Tämä on mahdollista suoraan Qt:n käyttöliittymästä oikealla hiiren napilla DesignByContract->add existing files...

SOURCES +=  \
...
DISTFILES += \
  Doxyfile

HEADERS += \
...

Tagit

Kaikki kurssin koodipalautukset tehdään versionhallinnan kautta. Ennen kuin kiiruhdat palauttamaan harjoitusta, tarkista, että se on palautettavassa kuosissa. Näät tämän GitLabissa:

  • Pushaa muutoksesi
  • Mene GitLabiin
  • Avaa oma repositoriosi. Viimeisimmän commitisi vieressä pitäisi näkyä vihreä pyöreä kuvake. Koko pipelinen pääset näkemään sivuvalikosta CI/CD:n alta.
  • Jos pipeline näyttää vihreää passed harjoituksesi on valmis palautettavaksi. Jos ei näytä, korjaa harjoitustasi ja tee uusi commit.

Työ palautetaan tagaamalla. Tagin pitää alkaa EX1_submission. Tagin saat luotua:

git tag -a "EX1_submission" --message "Message for tag here"
git push origin HEAD
git push origin --tags

On tärkeää muistaa pushata sekä muutokset että tag.

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.

Palautusta lähetetään...