Coder Social home page Coder Social logo

dat120-2022's Introduction

python linting: pylint Checked with mypy

git clone https://github.com/wathne/dat120-22h.git
cd dat120-22h
python avtalebok.py

Prosjektoppgave: Enkel avtalebok (Øving 9: Prosjekt del 1)

"Dere skal implementere en enkel tekstbasert avtalebok, inkludert mulighet for å lagre avtalelista til fil og hente den fra fil. Avtaleboka skal kunne registrere avtaler med tittel, sted, start-tidspunkt og varighet."

group_94_branch (wathne, MorenoRod, trymholms, Johnny78i): https://github.com/wathne/dat120-22h/tree/group_94_branch

Deloppgaver: https://github.com/wathne/dat120-22h-g94/issues

Prosjektoppgave: Avtalebok utvidelser (Øving 10: Prosjekt del 2)

"Dere skal utvide avtaleboka slik at avtalene har kategorier samt at dere lagrer mer informasjon om stedet enn en tekst. En avtale kan ha flere kategorier. For eksempel en forelesning i DAT120 kan ha både kategorien "Forelesning" og kategorien "DAT120"."

"Merk: For studenter som gjør denne øvinga aleine eller i grupper på maksimalt 2 studenter: Dere kan gjøre en litt redusert utgave av øvinga. Dere kan ignorere de deloppgavene som har med sted å gjøre. Det vil si deloppgave g, h, i, j, n, p, samt det som handler om sted i deloppgave l og m."

main (wathne): https://github.com/wathne/dat120-22h/tree/main

Deloppgaver: https://github.com/wathne/dat120-22h-g94/issues

dat120-2022's People

Contributors

wathne avatar morenorod avatar trymholms avatar johnny78i avatar

Watchers

 avatar

Forkers

morenorod

dat120-2022's Issues

9o) Hvis brukeren avslutter uten å ha lagret først, spør om brukeren ønsker å lagre.

9o) Frivillig: Hvis brukeren avslutter uten å ha lagret først, spør om brukeren ønsker å lagre. Hvis
brukeren skriver «ja», lagre først og deretter avslutte. Ellers avslutte. Dette krever at du har
en variabel som sier om avtalene er endret siden sist lagring. Dette kan vær en boolsk verdi
som settes lik True når du legger inn eller redigerer avtaler og til false når du lagrer eller leser
inn. Dere kan også sjekke om det er avtaler i lista når du leser inn og spør om bekreftelse på
at de skal overskrives.

9n) Lag et menyvalg for å redigere en avtale. Lag en funksjon som lar brukeren redigere en avtale.

9n) Lag et menyvalg for å redigere en avtale. Lag en funksjon som lar brukeren redigere en
avtale. En minimumsløsning er følgende: Skriv ut avtale-lista. La brukeren velge en avtale
med indeks. Skriv ut avtalen. La deretter brukeren skrive inn nye verdier for egenskapene til
avtalen.
a. Frivillig: Gjør denne mer avansert ved å lage et lite indre meny-system hvor brukeren
velger en av egenskapene til avtalen og skriver inn ny verdi for bare den egenskapen.

9g) Lag en funksjon som skriver ut ei liste med avtaler.

9g) Lag en funksjon som skriver ut ei liste med avtaler til skjermen. Funksjonen skal minimum
skrive ut indeksen til avtalen i lista og tittel til avtalen. Den kan alternativt skrive ut indeksen
til avtalen og så hele avtalen som definert i (Underscore)(Underscore)str(Underscore)(Underscore) metoden. Funksjonen skal ha en frivillig
parameter «overskrift» som skal være en overskrift som funksjonen skriver ut før avtalene i
lista. Funksjonen skal inkludere indeksen til hver avtale i utskriften.

9m) Lag et menyvalg for å slette en avtale.

9m) Lag et menyvalg for å slette en avtale. Dette menyvalget skal skrive ut avtalelista og deretter
la brukeren velge indeksen til avtalen som skal slettes og til slutt slette avtalen.

10) Avtalebok utvidelser (Øving 10: Prosjekt del 2).

"Dere skal utvide avtaleboka slik at avtalene har kategorier samt at dere lagrer mer informasjon om stedet enn en tekst. En avtale kan ha flere kategorier. For eksempel en forelesning i DAT120 kan ha både kategorien "Forelesning" og kategorien "DAT120"."

"Merk: For studenter som gjør denne øvinga aleine eller i grupper på maksimalt 2 studenter: Dere kan gjøre en litt redusert utgave av øvinga. Dere kan ignorere de deloppgavene som har med sted å gjøre. Det vil si deloppgave g, h, i, j, n, p, samt det som handler om sted i deloppgave l og m."

9k) Lag en funksjon som tar inn ei liste med avtaler og en streng og returnerer ei liste.

9k) Lag en funksjon som tar inn ei liste med avtaler og en streng, og returnerer ei liste med alle
avtaler hvor tittelen inneholder strengen. Dere kan bruke find-metoden for strenger til å
finne en delstreng i en større streng.
a. Frivillig: Sørg for at det ikke spiller noen rolle om man bruker store eller små
bokstaver i dette søket. Det gjelder både avtaletittel og søkestrengen.
b. Frivillig: Lag et søk som søker etter ei liste med nøkkelord heller enn en enkelt
delstreng. Funksjonen tar inn ei liste med nøkkelord (strenger). For å passe med
søket må avtalen skal inneholde alle nøkkelordene, men ikke nødvendigvis i den gitte
rekkefølgen eller rett etter hverandre. I menysystemet seinere, lag et menyvalg som
lar brukeren kjøre et slikt søk og hvor brukeren skriver inn en serie med nøkkelord
med mellomrom mellom, likt liknende et Google søk. Merk at faktiske Google søk er
mye mer avanserte enn dette, måten Google-søk fungerer på er pensum i master-
emnet DAT640 informasjonsgjenfinning og tekstutvinning.

9p) Lag en funksjon som tar inn en avtale A og ei liste med avtaler L og finner avtalekollisjoner.

9p) Frivillig, avansert: Lag en funksjon som tar inn en avtale A og ei liste med avtaler L og finner
ut om avtalen A kolliderer med noen av avtalene i L. Funksjonen skal returnere ei liste med
avtaler fra L som kolliderer. To avtaler kolliderer hvis de overlapper i tid. For eksempel en
avtale som starter 26.9 2022 klokka 10 og varer i 2 timer kolliderer med en avtale som starter
26.9 2022 klokka 9 og varer i 2 timer. Legg til en sjekk for kollisjoner enten i funksjonen som
legger til nye avtaler eller som et eget punkt i menysystemet.

9l) Lag et menysystem.

9l) Lag et menysystem. Når brukeren kjører scriptet skal det gi brukeren valg om å lese inn
avtaler fra fil, skrive avtalene til fil, skrive inn en ny avtale, skrive ut alle avtalene, samt
avslutte. Menysystemet skal skrive ut alle valgene samt hva brukeren skal skrive inn for å
velge dette. Dere velger selv om dere bruker tall, enkeltbokstaver, eller lengre kommandoer
for hvert menyvalg. Etter at menysystemet har skrevet ut valgene skal brukeren bli bedt om
et valg med en input-setning. Menysystemet skal bruke funksjonene fra tidligere
deloppgaver til å utføre valgene. Etter å ha utført det brukeren har valgt skal menysystemet
spørre på nytt. Programmet skal avslutte først når brukeren velger menyvalget «avslutt».

9e) Lag en __str__ metode for avtaler.

9e) Lag en (Underscore)(Underscore)str(Underscore)(Underscore) metode for avtaler som returnerer en streng som kan skrives ut med en print-
setning slik at du får skrevet ut avtalen med alle egenskapene til avtalen på et leselig format
for brukeren.

9d) Lag en klasse for en avtale.

9d) Lag en klasse for en avtale. En avtale skal minimum ha:
a. En tittel som sier hva denne avtalen er (streng)
b. Et sted (streng)
c. Et starttidspunkt (datetime objekt, se hint nederst)
d. En varighet i minutter (int)
e. Frivillig: Andre egenskaper som for eksempel «kategori»

9c) Fordeling av oppgaver.

9c) Lag en fordeling av oppgaver til de ulike medlemmene i gruppa. Fordel resten av
deloppgavene i øving 9 slik at alle i gruppa har noen deloppgaver de skal gjøre.

9b) Klone GitHub repo og laste opp til GitHub repo.

9b) Hver student i gruppa skal klone dette Github repositoryet til sin lokale datamaskin og jobbe i
denne mappa med øvingen. Koden dere skriver i denne øvingen skal lastes opp til Github
repositoryet.

9f) Lag en funksjon som lar brukeren skrive inn en ny avtale.

9f) Lag en funksjon som lar brukeren skrive inn en ny avtale. Funksjonen skal bruke input-
funksjonen til å lese inn egenskapene til avtalen og skal sjekke at det brukeren skriver er
gyldig, for eksempel at varighet er et tall. Funksjonen skal returnere et avtale-objekt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.