Kontaktförmedling


Denna uppgift går ut på att skriva ett program som ska kunna användas på en kontaktförmedling.

Man har datafiler med data om ett antal personer i. Formatet på dessa filer får du själv bestämma, men följande data lagras i varje datafil:

Observera att alla dessa data ska lagras i datafilen och inte i programmet. Du får alltså inte i programmet förutsätta att man har ett visst antal attribut, el.dyl. Du får själv skriva ihop en eller flera datafiler (minst 20 personer).

Programmet ska be användaren gradera vikten av de olika attributen som heltal mellan 0 och 5, samt ange önskat kön (man eller kvinna). Därefter ska programmet ta fram de fem bästa personerna sorterade i ordning med den bästa först. Programmet ska kunna läsa data från filer som användaren anger och man ska kunna göra flera sökningar varje programkörning.

För att gradera personerna i filen används följande formel, som för varje person ger en poäng, ju högre poäng desto bättre:

    grading = weight1 * (attrib1/norm1) + weight2 * (attrib2/norm2) + ...

Här är attrib1, attrib2, ... värden på personens attribut, norm1, norm2, ... är de normvärden som angivits och weight1, weight2, ... är de vikter användaren givit.

Exempel

Exempel på attibut och normvärden (för de attibut som har normvärdet 5 är det tänkt att attributen ska vara tal i intervallet 0--10):

    ålder		30
    skönhet		5
    intelligens		100
    humor		5
    förmögenhet		50000
    sexighet		5
    utbildning		5

Exempel på några personer:

    Hubert	man	35	3	110	1	100000	7	8
    Erika	kvinna	24	5	90	4	20000	8	4

Exempel på gradering som användaren ger:

    ålder		2
    skönhet		5
    intelligens		3
    humor		4
    förmögenhet		2
    sexighet		5
    utbildning		3

Med denna gradering får t.ex. Hubert poängen:

    2*(35/30) + 5*(3/5) + 3*(110/100) + 4*(1/5)
        + 2*(100000/50000) + 5*(7/5) + 3*(8/5) = 25.2333