forked from steger/pr3-sose2026
statistics stub
parent
dab8a36c8f
commit
c8a5cfa4d5
|
|
@ -0,0 +1,16 @@
|
||||||
|
# Assignment - Statistics
|
||||||
|
|
||||||
|
The file `08-statistics/data.csv` contains random data of students. It consists of the following columns:
|
||||||
|
|
||||||
|
- first name
|
||||||
|
- last name
|
||||||
|
- study subject
|
||||||
|
|
||||||
|
The rest of the columns -- and that number may vary -- contain points for different tasks. The first row is a header.
|
||||||
|
|
||||||
|
Your task is to Write a program that reads a filename from standard input. The corresponding csv-file shall be parsed and then the following statistics shall be computed and printed to standard output:
|
||||||
|
|
||||||
|
- the best student, i.e. the student with the most accumulated points (name and points shall be printed)
|
||||||
|
- the average points of all rows for each subject (subject and average points shall be printed in ascending order)
|
||||||
|
|
||||||
|
Implement your solution in the file `08-statistics/statistics.hs` and upload the file to moodle.
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
First Name,Last Name,Subject,Task1,Task2,Task3,Task4,Task5
|
||||||
|
Alice,Johnson,IB,87,45,68,92,33
|
||||||
|
Bob,Smith,CSB,56,79,42,88,12
|
||||||
|
Charlie,Williams,IMB,73,94,35,64,89
|
||||||
|
David,Brown,UIB,41,59,77,29,83
|
||||||
|
Emma,Jones,IB,99,21,48,75,56
|
||||||
|
Frank,Garcia,CSB,32,81,94,55,23
|
||||||
|
Grace,Miller,IMB,74,53,61,95,39
|
||||||
|
Henry,Davis,UIB,90,40,28,76,65
|
||||||
|
Isabella,Rodriguez,IB,57,86,72,49,100
|
||||||
|
Jack,Martinez,CSB,64,31,59,97,14
|
||||||
|
Liam,Hernandez,IMB,85,67,50,78,41
|
||||||
|
Mia,Lopez,UIB,44,92,33,56,81
|
||||||
|
Noah,Gonzalez,IB,68,39,74,82,47
|
||||||
|
Olivia,Wilson,CSB,95,20,62,53,34
|
||||||
|
Paul,Anderson,IMB,29,88,49,31,77
|
||||||
|
Sophia,Thomas,UIB,81,56,93,42,69
|
||||||
|
Ethan,Moore,IB,47,77,65,59,92
|
||||||
|
Zoe,Taylor,CSB,38,95,40,70,58
|
||||||
|
Lucas,Harris,IMB,99,45,83,62,37
|
||||||
|
Ava,Clark,UIB,53,66,91,85,29
|
||||||
|
Benjamin,Walker,IB,71,58,80,34,61
|
||||||
|
Chloe,Hall,CSB,76,23,67,47,94
|
||||||
|
Daniel,Allen,IMB,39,82,55,90,73
|
||||||
|
Ella,Young,UIB,86,32,99,60,25
|
||||||
|
James,King,IB,42,75,48,93,57
|
||||||
|
Madison,Wright,CSB,63,54,72,51,88
|
||||||
|
Nathan,Scott,IMB,91,37,79,68,45
|
||||||
|
Emma,Green,UIB,50,89,31,77,61
|
||||||
|
Jacob,Baker,IB,74,69,58,46,97
|
||||||
|
Emily,Adams,CSB,88,41,66,79,30
|
||||||
|
Samuel,Nelson,IMB,33,85,92,40,50
|
||||||
|
Sophia,Carter,UIB,69,47,71,58,94
|
||||||
|
Alexander,Mitchell,IB,57,98,36,61,82
|
||||||
|
Victoria,Perez,CSB,92,28,64,73,49
|
||||||
|
William,Roberts,IMB,45,76,89,55,31
|
||||||
|
Ella,Turner,UIB,78,59,41,96,68
|
||||||
|
Daniel,Phillips,IB,60,32,85,71,43
|
||||||
|
Natalie,Campbell,CSB,55,74,99,28,79
|
||||||
|
Mason,Parker,IMB,93,50,39,82,66
|
||||||
|
Hannah,Evans,UIB,48,69,57,95,22
|
||||||
|
Christopher,Edwards,IB,90,88,34,53,72
|
||||||
|
Lucy,Collins,CSB,31,46,81,77,56
|
||||||
|
Gabriel,Stewart,IMB,65,79,62,90,44
|
||||||
|
Avery,Morris,UIB,80,23,47,36,97
|
||||||
|
Ryan,Ross,IB,58,71,83,45,74
|
||||||
|
Sophie,Reed,CSB,99,33,60,81,51
|
||||||
|
Isaac,Adams,IMB,42,92,30,57,85
|
||||||
|
Leah,Bennett,UIB,76,64,55,89,39
|
||||||
|
Tyler,Barnes,IB,67,40,78,95,20
|
||||||
|
Scarlett,Morgan,CSB,34,84,91,47,53
|
||||||
|
John,White,IMB,89,25,72,69,98
|
||||||
|
Eleanor,James,UIB,54,58,49,87,62
|
||||||
|
Caleb,Wood,IB,31,100,37,46,81
|
||||||
|
Amelia,Hill,CSB,73,45,79,66,50
|
||||||
|
Julian,Scott,IMB,97,34,89,22,76
|
||||||
|
Charlotte,Bryant,UIB,63,92,41,88,32
|
||||||
|
Isaiah,Mitchell,IB,81,68,52,39,74
|
||||||
|
Lily,Foster,CSB,56,97,44,85,29
|
||||||
|
Elijah,Howard,IMB,70,61,36,90,99
|
||||||
|
Peyton,Washington,UIB,49,82,67,31,75
|
||||||
|
Xavier,Cook,IB,88,55,93,42,64
|
||||||
|
Nora,Bailey,CSB,37,72,57,96,47
|
||||||
|
Owen,Rivera,IMB,59,30,80,77,91
|
||||||
|
Harper,Cooper,UIB,50,99,33,28,65
|
||||||
|
Eli,Fisher,IB,78,40,85,92,53
|
||||||
|
Mila,Harrison,CSB,62,47,71,89,31
|
||||||
|
Adam,Romero,IMB,34,66,98,42,75
|
||||||
|
Stella,Patel,UIB,96,39,54,87,68
|
||||||
|
Carson,Cox,IB,42,55,79,100,27
|
||||||
|
Luna,Sanders,CSB,88,74,46,29,83
|
||||||
|
Connor,Henderson,IMB,97,32,53,60,98
|
||||||
|
Brooklyn,Bishop,UIB,45,90,61,72,31
|
||||||
|
Andrew,Griffin,IB,58,42,87,65,49
|
||||||
|
Natalia,Russell,CSB,70,23,74,56,92
|
||||||
|
Jason,Myers,IMB,81,67,35,48,79
|
||||||
|
Alexa,Hayes,UIB,37,98,55,93,42
|
||||||
|
Christian,Long,IB,64,71,82,45,57
|
||||||
|
Zoey,Gibson,CSB,90,54,38,100,73
|
||||||
|
Brayden,Graham,IMB,39,89,66,53,31
|
||||||
|
Maya,Sullivan,UIB,85,77,62,94,25
|
||||||
|
Jaxon,Ford,IB,48,35,100,71,83
|
||||||
|
Claire,Wallace,CSB,59,46,88,38,76
|
||||||
|
Dominic,Cole,IMB,78,92,44,67,50
|
||||||
|
Eva,Jenkins,UIB,100,29,53,79,61
|
||||||
|
Riley,Perkins,IB,55,97,31,84,30
|
||||||
|
Leo,Brooks,CSB,72,40,91,45,99
|
||||||
|
Hailey,Reynolds,IMB,31,58,77,90,28
|
||||||
|
Aaron,Fox,UIB,83,72,61,35,48
|
||||||
|
Kennedy,Stevens,IB,41,66,85,92,53
|
||||||
|
Sebastian,Webb,CSB,99,33,60,81,51
|
||||||
|
Melanie,Ward,IMB,76,64,55,89,39
|
||||||
|
Adrian,Bishop,UIB,67,40,78,95,20
|
||||||
|
Jasmine,Cook,IB,34,84,91,47,53
|
||||||
|
Miles,Barnes,CSB,89,25,72,69,98
|
||||||
|
Savannah,Wood,IMB,54,58,49,87,62
|
||||||
|
Hudson,Hill,UIB,31,100,37,46,81
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
import Data.List (nub, sortOn)
|
||||||
|
import System.IO
|
||||||
|
|
||||||
|
-- separator -> Input -> Separated Input
|
||||||
|
-- split :: Char -> String -> [String]
|
||||||
|
|
||||||
|
-- data Entry =
|
||||||
|
|
||||||
|
-- averages :: [Entry] -> [(String, Float)]
|
||||||
|
|
||||||
|
-- content -> Entries
|
||||||
|
-- parse :: String -> [Entry]
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = do
|
||||||
|
putStrLn "Enter a filename: "
|
||||||
|
putStrLn "..."
|
||||||
Loading…
Reference in New Issue