Välkommen till detta prov i Programmering i C! Din uppgift är att skriva ett program som läser in provresultat, analyserar statistik och presenterar data för läraren.
För att din inlämning ska fungera och rättas korrekt måste du följa dessa regler:
- Rör ej systemfiler: Du får inte göra ändringar i mappen
.github,test.shellermakefile. Om du ändrar dessa filer kan ditt prov ogiltigförklaras. - Registrering: Du måste fylla i ditt ID i
student.jsoninnan du börjar (se nedan). - Inlämningsstatus: Du styr själv när du är "klar" genom en inställning i
student.json.
Innan du börjar koda måste du ställa in ditt projekt. Om du inte gör detta kommer inga av dina tester att köras.
Så här hittar du ditt ID:
- Logga in på antagningssidan (yh-antagning.se).
- Under "Inlämnade ansökningar", klicka på rutan för denna utbildning.
- Scrolla längst ner på sidan till sektionen "Mina personuppgifter" (klicka på pilen för att fälla ut om det behövs).
- Kopiera koden som står vid Ansökningsnummer (t.ex.
FSAEFSAD).
Så här ställer du in repot:
- Öppna filen
student.jsoni din kodeditor. - Byt ut texten
"SKRIV_DITT_ID_HÄR"mot ditt ID. - Låt
"submitted": falsevara kvar. Detta betyder att du jobbar på ett utkast. - Spara filen.
{
"student_id": "SKRIV_DITT_ID_HÄR",
"submitted": false
}
Fil att arbeta i: main.c
Du ska skapa ett system som hanterar 5 elever och deras resultat från 13 olika prov under ett läsår. Programmet ska läsa in namn och poäng, räkna ut medelvärden och filtrera ut specifika resultat.
Specifikation i korthet:
- Indata: 5 rader. Varje rad har formatet:
Namn p1 p2 p3 ... p13. - Namn: Engelska förnamn (a-z), max 10 tecken.
- Poäng: Heltal 0-10.
Totalt kan du få 100 poäng på den automatiska rättningen.
För att det automatiska rättningssystemet ska fungera måste du följa dessa regler strikt:
- Ingen extra text: Programmet får INTE skriva ut text som "Mata in namn:" eller "Resultatet är:". Endast namnen på eleverna ska skrivas ut.
- Exakt utskrift: Varje namn ska skrivas ut på en egen rad.
- Versaler: Alla namn ska skrivas ut med Stor Begynnelsebokstav (t.ex. "Alice"), oavsett hur de matades in.
- Inläsning: Använd med fördel
scanf()för att hantera inmatningen.
Din kod rättas i steg. Även om du har småfel (t.ex. fel stor bokstav) kan du få poäng för logiken.
- (20p) Koden ska kompilera och köra utan att krascha när testdata matas in.
- (15p) Logik: Programmet identifierar korrekt vilken elev som har högst medelpoäng (oavsett stor/liten bokstav).
- (15p) Format: Namnet skrivs ut korrekt med stor begynnelsebokstav (t.ex. "Charlie").
- (15p) Logik: Programmet räknar ut totala medelvärdet och identifierar vilka elever som ligger under detta (oavsett stor/liten bokstav).
- (15p) Format: Namnen skrivs ut med stor begynnelsebokstav och i samma ordning som de matades in (t.ex. "Bob" och "Dave").
Förutom koden ska du spela in en kort skärminspelning där du demonstrerar din lösning.
- Spela in när du visar din lösning och berättar om hur den fungerar.
- Döp filen till exakt:
videoprov.mp4. - Lägg filen i rotmappen (samma ställe som denna README).
- OBS: Filen får inte vara större än 100MB.
Detta projekt använder automatisk rättning. Du har två sätt att se dina poäng:
Du kan köra exakt samma tester som GitHub använder direkt i din terminal. Detta ger dig snabbast feedback.
- Öppna en terminal i mappen.
- Skriv följande kommando:
make test
Detta kommer att kompilera din kod och köra alla deltester. Du ser direkt vilka delar som är "Pass" eller "Fail".
Om du vill felsöka och mata in egna värden manuellt:
- Kompilera:
gcc main.c -o main.out - Kör:
./main.out - Klistra in följande testdata:
alice 8 9 7 6 10 9 8 7 10 10 9 10 8
Bob 5 5 6 4 5 6 5 5 4 6 5 5 4
Charlie 10 9 9 10 10 9 9 10 9 10 10 9 10
david 4 3 5 4 4 5 4 5 4 3 5 4 4
Eve 7 6 7 8 7 6 7 7 6 7 8 7 6
Förväntat resultat:
Charlie
Bob
David
(Ingen annan text får förekomma!)
När du gör en git push kommer GitHub att köra testerna. Resultatet syns under fliken Actions eller som en kommentar i din Pull Request.
OBS: Så länge
submittedärfalsekommer GitHub visa ett Rött Kryss (Failed) på inlämningen för att visa att den ej är inlämnad. Detta är normalt.
När du känner dig klar och har fått de poäng du satsar på:
- Öppna
student.json. - Ändra
"submitted": falsetill"submitted": true. - Spara, committa och pusha till GitHub.
{
"student_id": "SKRIV_DITT_ID_HÄR",
"submitted": true
}
Nu (om du klarat alla obligatoriska krav) ska du få en Grön Bock ✅ på GitHub och botten kommer skriva "INLÄMNING MOTTAGEN".