Flashback bygger pepparkakshus!
2013-10-09, 12:06
  #1
Medlem
Hejsan!

Här är kraven för uppgiften:

Skapa ett program som innehåller ett interface för personer. Innehåll ska vara namn, födelsedatum och en Dictionary med strängar och år som beskriver vad personen gjorde ett visst år. Alltså t.ex. för 2010: ”Jag läste på universitet och var i Spanien under sommaren på semester.”

Under tiden programmet körs ska det gå att växla mellan olika personer (och alltså få olika implementationer av interfacet). Observera att programmet bara ska använda en och samma personvariabel för att visa informationen (variabeln ska alltså vara av interfacets typ).

Programmet ska också hantera rimlighetskontroll av år. D.v.s. det ska inte gå att välja år i framtiden och det ska inte vara möjligt att välja år innan den aktuella personen föddes.


Jag har valt att göra uppgiften i windows forms. Jag har gjort 2st interface, ett för personer med properties "namn" och "födelsedatum" samt ett interface för dictionaryt.

Jag har även en klass som implementerar dictionary interfacet som i sin tur implementerar person-interfacet.




Såhär ser ser koden ut:

IPerson

public interface Iperson
{
string Name { get; set; }
int BirthDate { get; set; }
}



IPersonDictionary:

public interface IPersonDictionary
{

Iperson getPerson();
Dictionary<string, Iperson> getPerson();


}



Personklassen:

class Person :IPersonDictionary
{


public Iperson getObject()
{
throw new NotImplementedException();
}

Dictionary<string, Iperson> IPersonDictionary.getPerson()
{
throw new NotImplementedException();
}
}




Problemet för mig är inte vet om det är rätt att ha två interface för dictionary respektive person eller om allt bör ligga i samma klass.

Undrar också om jag ev tolkat uppgiften fel att jag bara borde göra endast ETT interface med en metod som sedan implementeras i klassen där både dictionary och person properties kodas.

Tips någon?

Tack på förhand
Citera
2013-10-09, 12:46
  #2
Medlem
Här är en annan variant:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ExtraV39
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}



public interface IPerson
{
public string Name { get; set; }
public DateTime BirthDate { get; set; }
public Dictionary<string, DateTime> Events {get; set;}
}




public class Person1 : IPerson
{


public string Name
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}

public DateTime BirthDate
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}

public Dictionary<string, DateTime> Events
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
}



public class person2 : IPerson
{
public string Name
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}

public DateTime BirthDate
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}

public Dictionary<string, DateTime> Events
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
}


}
}
Citera
2013-10-13, 21:45
  #3
Medlem
Denna sidan kan hjälpa dig med hur Dictionary funkar.
http://www.dotnetperls.com/dictionary

Gällande interface så skulle jag nog tänka GUI, snarare än bemärkelsen en klass som innehåller definitioner av metoder. Skulle vara ett dictionary interface isf.
Citera
2013-10-13, 22:29
  #4
Medlem
det finns något som heter [code]tag
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in