Guest User

Untitled

a guest
Nov 24th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.84 KB | None | 0 0
  1. Labb 4 kommer att handla om klasser. I och med att projekten börjar nästa vecka, och där förväntas ni kunna principerna för objektorienterad programmering och redovisa dessa, så blir denna labb helt klassfokuserad. För att kunna göra bonusuppgifterna måste du göra ett formulär.
  2.  
  3. Denna labb har en förlängd deadline och den är på onsdag den 14/9 kl. 23.55.
  4.  
  5. Om ni arbetar ihop så måste ni specificera det i en blockkommentar högst upp i filen.
  6.  
  7. Konstruera en människa
  8.  
  9. I den här labben ska du konstruera en människa med hjälp av klasser. Det finns olika nivåer den här gången, utifrån din ambitionsnivå.
  10.  
  11. Utöver att labben såklart måste vara inlämnad i tid för att följande poäng ska gälla, så ska du även uppfylla alla krav på "lägre" nivåer för att få poäng på en högre nivå. Satsar du på högre poäng så kan det vara lämpligt att läsa igenom kraven på den högre nivån också, innan du börjar arbeta, så kan du välja lämpliga klasser och bygga vidare på dem.
  12.  
  13. För 6 poäng
  14. Du ska ha konstruerat två klasser (t.ex. huvud och hand, men det är valfritt vilka delar du väljer på människan).
  15. Dessa klasser ska innehålla minst tre metoder och funktioner som vid anrop skriver ut någonting på skärmen. Det räcker alltså med att metoden innehåller en echo "Jag skakar på huvudet"; om metoden heter shakeHead().
  16. I en separat fil ska du skapa en instans av varje klass, och anropa några metoder på den klassen. Dvs. så att det skrivs ut på skärmen.
  17. Du ska använda minst tre variabler (t.ex. strängar).
  18. Exempel:
  19.  
  20. head.inc innehåller metoderna blink, eat och swallow. När man anropar exempelvis blink från index.php så ska det skrivas ut "I'm blinking my eyes" på skärmen. Uppgiften är alltså helt textbaserad och statisk.
  21.  
  22. För 7 poäng
  23. Du ska utöver kriterierna för 6 poäng
  24. Skicka med variabler till funktionerna i klasserna, t.ex. namn.
  25. Du ska använda return istället för att skriva ut resultatet på skärmen vid metodanrop. Dvs. klassen ska vara så "clean" som möjligt och hanteringen av information ska ske i din index.php eller motsvarande.
  26. Du ska få med en "felkontroll" (if-sats/switch-case-sats), en for-loop och en array.
  27. För 8 poäng
  28. Kommentera din kod enligt principerna för kommentarer. Varje metod ska innehålla information om vilka parametrar den tar emot. Hela klassen ska innehålla en beskrivning av klassen, versionsnummer och författarnamn.
  29. Du ska lägga till ett formulär på sidan, och när man skickar formuläret så ska instanserna skapas med värden från formuläret. Formuläret ska alltså innehålla namn, telefonnummer, personnummer och annan lämplig information om personen som du kan använda i klasserna.
  30. För 9 poäng
  31. Räkna ut hur gammal personen är i dagar från födelsedatumet. Skriv ut det på skärmen.
  32. Manipulera födelsedatumet så att den visar vilken veckodag personen är född.
  33. För 10 poäng
  34. Rita ut en människa med kod, ungefär som julgransövningen. Se till att färglägga ögonen med rätt vald färg i formuläret. Människan behöver inte bestå av stjärnor/asterisk, men rita ut någonting (ungefär som ASCII art). Det räcker med t.ex. huvudet, det behöver inte vara hela människan.
  35.  
  36.  
  37. Bonusuppgifter (totalt 14 poäng)
  38.  
  39. Välj och vraka fritt mellan följande uppgifter, ange i en snygg blockkommentar högst upp i klassen där du anger vilka uppgifter du har implementerat.
  40.  
  41. Uppgift 1337: Strängmanipulation - 2 poäng
  42.  
  43. Med hjälp av substr, lagra de sex första siffrorna av ett personnummer i en separat variabel.
  44. Med hjälp av substr_replace(), ersätt de fyra sista siffrorna i ett personnummer med asterisk.
  45. Gör en "säkerhetsfunktion" som kastar om personnummersiffrorna i omvänd ordning (det finns en inbyggd metod för det i PHP).
  46. Kontrollera om personen är inom två veckor från dagens datum. Om så, så ska du skriva ut ett grattismeddelande till personen.
  47. Manipulera personens e-postadress så att den bara innehåller gemener innan du sparar den i en variabel.
  48. Uppgift 1338: Regular expressions - 6 poäng
  49. Regular expressions handlar också om strängmanipulation men framför allt att kunna söka och analysera information.
  50. Ta reda på om personen i telefonnummerfältet har matat in ett mobilnummer eller ett hemtelefonnummer med hjälp av regular expressions. Lagra telefonnumret i rätt variabel (dvs. antingen $mobilnummer eller $hemtelefon).
  51. Kontrollera med hjälp av regular expressions att e-postfältet endast innehåller för e-post tillåtna tecken.
  52. Validera att personnumret är korrekt. Kontrollera att om personen är en man, så ska näst sista siffran vara udda, och om det är en kvinna så ska siffran vara jämn. Använd radio buttons för att avgöra kön. Om personen är över hundra år ska man ha matat in personnumret med ett plus-tecken istället för -. Om man inte har gjort det ska du påpeka det för användaren.
  53. Kontrollera att sista siffran är korrekt. Det finns en uträkningsalgoritm för personnummer. På Skatteverkets hemsida finns det information om hur man gör.
  54. Uppgift 1339: Arv (inheritance) - 2 poäng
  55. Arv (inheritance) är en annan objektorienterad programmeringsprincip.
  56. Gör en klass som ärver från en annan människokomponent, och gör en muterad version av denna. Tänk dig ett scenario 2050 där japans kärnkraftverk har fått effekt. Exempel på vad du kan göra är en hand som istället för fem fingrar har 10 fingrar, eller ett huvud som har tre ögon. Tänk på att du ska få med någon slags output på mutationen, som när katten säger någonting (vuff istället för purr).
  57. Uppgift 1339: Filhantering - 4 poäng
  58. I den här bonuspoängsuppgiften ska du även lägga till en funktion som läser in innehållet från en textfil till formuläret, och visar informationen i formuläret. Ev. ändringar som du gör ska sedan sparas ner i den filen. Ungefär som en ID-fil för en person.
Add Comment
Please, Sign In to add comment