17 svar
158 visningar
destiny99 8814
Postad: 5 feb 20:31 Redigerad: 5 feb 20:37

P-uppgift bekymmer

Hej!

 

Jag lyckades skapa första två klasserna som jag tror har med första punkten att göra och fastnade på hur jag ska tolka  andra punkten  samt övriga punkter och översätta till kodning och använda logik. Dock vill jag fokusera på en punkt i taget i den uppgift så jag kanske måste göra PA-inlägg för de andra  punkterna framöver.

Uppgifts-lydelsen säger såhär : Du ska skapa ett program som låter flera personer välja när de kan träffas. Programmet består av fyra delar. Skapandet av träffar, angivelserna när man kan, summeringen och avslut.  Jag måste använda klasser, datastrukturer ,inläsning från tangentbordet och filhantering till denna uppgift. Här är i alla fall första två punkterna i uppgiften.

  • När man skapar en träff så får man ange två saker , namn på träffen och föreslagna tider (datum och tid) när man eventuellt ska  träffas. 
  • När man ska ange när man kan så får man först ange namn och sen får  man välja ett tillfälle som det hela gäller för. Efter det så  får blir man tillfrågad om man kan vid alla angivna tillfällen men en ja/nej fråga.
    class People:
        def __init__(self, name, times,dates):
            self.name = name
            self.available_times = times
            self.available_dates = dates
    
           
    class Meeting:
        def __init__(self, schedules, time_slots, participants, available_dates):
            self.schedules = schedules
            self.time_slots = time_slots
            self.participants = participants
            self.available_dates = available_dates 
thedifference Online 486
Postad: 5 feb 20:54 Redigerad: 5 feb 20:56

Jag tror inte din första klass behövs, men om den gör det så är det lite märkligt med times och dates. Om jag är tillgänglig 18-19 på fredag men 15-17 på lördag, hur ser det ut?

Om det är lagrat i People vilka tider någon kan så är det ingen som behöver svara ja/nej, för programmet kan själv lista ut om ett visst tillfälle passar samtliga inbjudna.

destiny99 8814
Postad: 5 feb 21:10 Redigerad: 5 feb 22:19
thedifference skrev:

Jag tror inte din första klass behövs, men om den gör det så är det lite märkligt med times och dates. Om jag är tillgänglig 18-19 på fredag men 15-17 på lördag, hur ser det ut?

Om det är lagrat i People vilka tider någon kan så är det ingen som behöver svara ja/nej, för programmet kan själv lista ut om ett visst tillfälle passar samtliga inbjudna.

Asså de jag pratade med sa att dessa klasser ser bra ut , dock kan jag ändra lite saker så det passar uppgiften i fråga. Men det är bra om man förklarar vad jag ska ändra eller göra om.  Dock  måste jag fortfarande ha klasser i denna uppgift.  Vi kan hålla oss till första punkten i denna uppgift

 

När jag skapade första och andra  klassen så tänkte jag på första punkten i uppgiften. Times är tex kl 18-19 och dates är datum. 

 

Jag vet inte om första punkten är typ tex Amanda skapar en lista av träffar som heter ["fikadate 20/2 kl 11-12", "lunchmeeting 22/2 kl 12-13", osv] och sen ska varje user i terminalen  trycka på  någon av de valen av träffar som den kan närvara på tex typ såhär: 

 def person_input(self):
        person_times=input(f" Enter{self.name}'s available_times:")
        for time in self.available_times:
            self.available_times.append(person_times)
            print(person_times)
thedifference Online 486
Postad: 5 feb 22:23
destiny99 skrev:

När jag skapade första och andra  klassen så tänkte jag på första punkten i uppgiften. Times är tex kl 18-19 och dates är datum. 

Och hur lagrar du att jag är tillgänglig fredag 18-19? Lagrar du 18-19 som första tiden och fredag som första datumet, och man vet att de hör ihop för att de har samma plats i sina respektive listor?

destiny99 8814
Postad: 5 feb 22:26 Redigerad: 5 feb 22:38
thedifference skrev:
destiny99 skrev:

När jag skapade första och andra  klassen så tänkte jag på första punkten i uppgiften. Times är tex kl 18-19 och dates är datum. 

Och hur lagrar du att jag är tillgänglig fredag 18-19? Lagrar du 18-19 som första tiden och fredag som första datumet, och man vet att de hör ihop för att de har samma plats i sina respektive listor?

asså jag vill gärna ha typ [" Birgitta 24/1 : kl 10-12" , " Anders 25/1:  kl 12-14", osv]. Men jag är osäker på om det passar första punkten i frågan och har typ fastnat. Annars måste jag skapa en lista med folkets namn och en annan med bara datum och tid tillsammans , men då är det nästan bäst tycker jag om tid parametern under classen people hanterar tid och datum 

typ såhär . availability hanterar tid och datum

class People:
    def __init__(self, name, availability):
        self.name = name
        self.availability = availability
thedifference Online 486
Postad: 6 feb 07:47

Det ser vettigare ut, men frågan kvarstår varför folk både ska ange vilka tider de kan och sen svara på om en viss tid fungerar.

Jag tänker mig ungefär följande flöde:

  1. Alfred använder programmet (den första någonsin som använder det) och skapar träffen Rundpingis med föreslagna tider 7/2 18-20, 8/2 15-17 och 10/2 17-19.
  2. Alfred stänger programmet och denna träff sparas på fil.
  3. Britta använder programmet och träffen Rundpingis laddas från fil när det startar. Britta kan föreslå fler träffar eller registrera sig för Rundpingis.
  4. Hon kan se att i Rundpingis finns det tre tillfällen och att alla passar Alfred. Vi utgår från att arrangören inte föreslår tider som inte passar hen själv. Eller kanske Alfred också måste svara på om tiderna passar?
  5. Britta säger att tillfälle 1 och 3 passar. Hon stänger programmet och träffen sparas igen.
  6. Nästa person som öppnar programmet kan se att i träffen Rundpingis så är Alfred tillgänglig tillfälle 1, 2, 3 och Britta 1, 3. Denna person kan då föreslå egna träffar eller registrera sig för Rundpingis, precis som Britta.

I den här lösningen behövs alltså inte klassen People.

Kan du posta hela uppgiften? Den är fortfarande lite förbryllande. Det finns risk att vi ger dig råd som är dåliga för de punkter du inte visat.

destiny99 8814
Postad: 6 feb 08:30 Redigerad: 6 feb 08:59
thedifference skrev:

Det ser vettigare ut, men frågan kvarstår varför folk både ska ange vilka tider de kan och sen svara på om en viss tid fungerar.

Jag tänker mig ungefär följande flöde:

  1. Alfred använder programmet (den första någonsin som använder det) och skapar träffen Rundpingis med föreslagna tider 7/2 18-20, 8/2 15-17 och 10/2 17-19.
  2. Alfred stänger programmet och denna träff sparas på fil.
  3. Britta använder programmet och träffen Rundpingis laddas från fil när det startar. Britta kan föreslå fler träffar eller registrera sig för Rundpingis.
  4. Hon kan se att i Rundpingis finns det tre tillfällen och att alla passar Alfred. Vi utgår från att arrangören inte föreslår tider som inte passar hen själv. Eller kanske Alfred också måste svara på om tiderna passar?
  5. Britta säger att tillfälle 1 och 3 passar. Hon stänger programmet och träffen sparas igen.
  6. Nästa person som öppnar programmet kan se att i träffen Rundpingis så är Alfred tillgänglig tillfälle 1, 2, 3 och Britta 1, 3. Denna person kan då föreslå egna träffar eller registrera sig för Rundpingis, precis som Britta.

I den här lösningen behövs alltså inte klassen People.

Kan du posta hela uppgiften? Den är fortfarande lite förbryllande. Det finns risk att vi ger dig råd som är dåliga för de punkter du inte visat.

Jag kan posta hela uppgiften men samtidigt har jag också en specifikation som är godkänd som jag behöver följa och vill inte spåra ur den om du förstår vad jag menar. Så jag är förvånad att people klassen inte behövs.  Jag kan posta kodsnutten som de godkände.  Notera att jag vill följa en punkt i taget för mig som saknar vana med programmering för annars blandar jag ihop allt. Jag har inte gjort det du nämner i kodskelettet, isåfall har vi olika sätt att se på uppgiften och jag vet inte riktigt om det du säger har med uppgiften att göra i alla fall första punkten?

destiny99 8814
Postad: 6 feb 08:48 Redigerad: 6 feb 08:51
class People: 
    def __init__(self,name,available_times):
        self.name = name #personens namn t.ex "Birgitta", "Johan".
        self.available_times = available_times 


class Meeting:
    def __init__(self,agenda,time_slots,participants):
        self.agenda=agenda 
        self.time_slots=time_slots  
        self.participants=participants  
   
    def find_common_time(self): #definierar metoden find_common_time som söker efter en tidpunkt som alla deltagare är tillgängliga.
        for time in self.time_slots:
            all_available=True
            for person in self.participants:
                if time not in person.available_times:
                     all_available= False
                     break
            if all_available:
                return time
        return None


p1=People("Birgitta",["10.00" , "14.00","15.00"])
p2=People("Johan",["09.00" ,"11.00" ,"13.00" ])
p3=People("Anna-Karin",["08.00","15.00" , "17.00"])


participants=[p1,p2,p3] #en lista med deltagare.
agenda=["projekt discussion"," teamwork" , "customermeeting"] #agenda för möte.
time_slots=["10.00" ,"14.00" ,"16.00"] #möjliga tidsluckor för ett möte.
meeting=Meeting(agenda,time_slots,participants)  
common_time= meeting.find_common_time() 


if common_time:
    print(f"Alla kan delta vid {common_time}.")
else:
    print("Ingen gemensam tid hittades för alla deltagare.")

Här är kodskelettet som de godkände inför fortsättning av uppgiften. Hela uppgiften finns på en annan Pa-inlägg som jag kan svara dig på. där ser du övriga punkterna fast jag vill gärna att vi håller oss till en punkt i taget.

thedifference Online 486
Postad: 6 feb 18:23 Redigerad: 6 feb 18:38

Okej, nu är jag med och din kod ser lovande ut. Du skulle kunna ha return False i slutet på find_common_time i stället för return None.

Jag förstår andra punkten så här:

  1. Vi har skapat ditt möte meeting, men det har inga deltagare än. Det har agenda och tidsförslag.
  2. Alfred använder programmet och vill anmäla sig till mötet, vilket han gör via någon meny. Sen uppger han sitt namn, Alfred, och blir han tillfrågad om var och en av tiderna. Vi säger att han kan första och sista tiden, alltså ja, nej, ja.
  3. Då skapas en People med namn Alfred med available_times ["10.00", "16.00"]. Vi håller alltså INTE koll på tider han kan som inte ens finns som förslag. Denna People läggs till i mötets participants. Bonuspoäng: Om en intresserad deltagare inte kan en enda av de föreslagna tiderna, lägg inte till hen.
  4. Om Alfred vill anmäla sig till ett annat event så börjar processen om och det skapas en ny People för honom som representerar hans intresseanmälan till detta andra event.
destiny99 8814
Postad: 6 feb 19:01 Redigerad: 6 feb 19:07
thedifference skrev:

Okej, nu är jag med och din kod ser lovande ut. Du skulle kunna ha return False i slutet på find_common_time i stället för return None.

Jag förstår andra punkten så här:

  1. Vi har skapat ditt möte meeting, men det har inga deltagare än. Det har agenda och tidsförslag.
  2. Alfred använder programmet och vill anmäla sig till mötet, vilket han gör via någon meny. Sen uppger han sitt namn, Alfred, och blir han tillfrågad om var och en av tiderna. Vi säger att han kan första och sista tiden, alltså ja, nej, ja.
  3. Då skapas en People med namn Alfred med available_times ["10.00", "16.00"]. Vi håller alltså INTE koll på tider han kan som inte ens finns som förslag. Denna People läggs till i mötets participants. Bonuspoäng: Om en intresserad deltagare inte kan en enda av de föreslagna tiderna, lägg inte till hen.
  4. Om Alfred vill anmäla sig till ett annat event så börjar processen om och det skapas en ny People för honom som representerar hans intresseanmälan till detta andra event.

Nu var det många grejer på en gång här. Så min kod ovan uppfyller första punkten?   Om ja, om jag ska börja på andra punkten i uppgiften , vilken av punkterna ska jag börja med eller är det bara en av punkterna jag behöver göra för att svara på andra punkten? Du presenterar många saker i de 4 olika punkterna som jag inte kan göra på en gång.

thedifference Online 486
Postad: 6 feb 19:23 Redigerad: 6 feb 19:26

Jag visar ett flöde som uppfyller andra punkten. Din kod klarar inte riktigt första punkten, eftersom ett möte (i din kod) förväntar sig deltagarna när det skapas. De ska läggas till successivt allteftersom folk visar intresse.

destiny99 8814
Postad: 6 feb 19:33 Redigerad: 6 feb 19:40
thedifference skrev:

Jag visar ett flöde som uppfyller andra punkten. Din kod klarar inte riktigt första punkten, eftersom ett möte (i din kod) förväntar sig deltagarna när det skapas. De ska läggas till successivt allteftersom folk visar intresse.

Du kan avvakta med att visa vad du vill visa. Jag trodde att nuvarande kod uppfyllde första punkten enligt ditt senaste meddelande. Annars hade du inte sagt att jag ska ändra return none. Jag förstår inte riktigt vad som gör att första punkten inte uppfylls i min kod?  Vad ska jag göra för att uppfylla första punkten innan vi pratar om övriga punkter?  Det var hela syftet med detta PA inlägg att få förklarad första punkten och jobba med den för att sen göra ny tråd för andra punkten samt de övriga punkterna.

thedifference Online 486
Postad: 6 feb 19:42

Okej. Enligt första punkten ska du ha ett namn, inte riktigt en agenda, och det är inget krav på att ange deltagare när mötet skapas. Din People klass är helt överflödig att ha med för detta ändamål.

destiny99 8814
Postad: 6 feb 19:47 Redigerad: 6 feb 19:52
thedifference skrev:

Okej. Enligt första punkten ska du ha ett namn, inte riktigt en agenda, och det är inget krav på att ange deltagare när mötet skapas. Din People klass är helt överflödig att ha med för detta ändamål.

Så jag ska ta bort följande saker i dessa bilder? Allt under. Du får gärna specifiera vilka saker jag ska ta bort så att jag inte tar bort vad som helst.

destiny99 8814
Postad: 6 feb 21:38 Redigerad: 6 feb 21:47

Jag har inte gjort några ändringar ännu för jag vet inte exakt vad du syftar på att jag ska ta bort osv som jag skrev i #14 så jag väntar på ditt svar. Vänligen återkoppla till mig här så vi kan förstå varandra och jag kan förstå punkten bättre.

destiny99 8814
Postad: 7 feb 05:38 Redigerad: 7 feb 05:51
thedifference skrev:

Okej. Enligt första punkten ska du ha ett namn, inte riktigt en agenda, och det är inget krav på att ange deltagare när mötet skapas. Din People klass är helt överflödig att ha med för detta ändamål.

Vill du förtydliga med vad du menar så att jag kan modifiera mina ändringar? Se#15 och #14

AI säger såhär dock. Var det så du menade?

class Meeting: def __init__(self, meeting_name): self.meeting_name = meeting_name self.attendees = [] # En lista för att hålla koll på deltagarna

def add_attendee(self, participant_name): """Lägg till en deltagare till mötet.""" self.attendees.append(participant_name) print(f"{participant_name} har lagts till mötet '{self.meeting_name}'.")

def list_attendees(self): """Visa alla deltagare i mötet.""" if not self.attendees: print("Inga deltagare ännu.") else: print(f"Deltagare i mötet '{self.meeting_name}':") for attendee in self.attendees: print(f"- {attendee}")

# Skapa ett nytt mötemeeting = Meeting("Projektmöte")

# Lägg till deltagaremeeting.add_attendee("Anna")meeting.add_attendee("John")

# Visa alla deltagaremeeting.list_attendees()

# Lägg till en ny deltagaremeeting.add_attendee("Maria")

# Visa deltagare igenmeeting.list_attendees()

thedifference Online 486
Postad: 7 feb 17:22

Till resten av PA: Jag kommer inte svara mer på denna tråd, så om någon annan vill hjälpa TS så var inte rädd för att det blir för många kockar i soppan.

destiny99 8814
Postad: 7 feb 17:24 Redigerad: 7 feb 17:38
thedifference skrev:

Till resten av PA: Jag kommer inte svara mer på denna tråd, så om någon annan vill hjälpa TS så var inte rädd för att det blir för många kockar i soppan.

Tack! Får hoppas fler kan svara på denna tråd och hjälpa mig med första punkten eller komma vidare. Varit fast nu i några dagar! 😊

Svara
Close