Как соединить две переменные, которые одинаковы, но в разных классах? - PullRequest
0 голосов
/ 29 февраля 2012

Хорошо, я делаю какую-то базу данных, где у меня есть 4 класса program.cs, athlete.cs, event.cs и venue.cs. Один из методов, которые они хотят, чтобы я включил, - это поиск спортсмена, а также отображение названия события и места проведения. Это должно быть сделано со всеми частными переменными.

Поэтому мне было интересно, есть ли в любом случае переменная имени события в классе спортсмена, подключенная к имени события в классе события.

Атлет класса

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class Athlete
{
    private string firstname, lastname, address, phonenumber;
    private List<Event> eventlist = new List<Event>();
    private Event athleteEvent;

    public string athleteFirstname
    {
        get
        {
            return firstname;
        }
        set
        {
            firstname = value;
        }
    }

    public string athleteLastname
    {
        get
        {
            return lastname;
        }
        set
        {
            lastname = value;
        }
    }
    public string athleteAddress
    {
        get
        {
            return address;
        }
        set
        {
            address = value;
        }
    }
    public string athletePhonenumber
    {
        get
        {
            return phonenumber;
        }
        set
        {
            phonenumber = value;
        }
    }

    public Event eventA
    {
        get
        {
            return athleteEvent;
        }
        set
        {
            athleteEvent = eventlist[0].eventName;
        }

    }
}

Класс события

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class Event
{
    private string name, date, time, venueEvent;
    private double fee;
    private List<Athlete> athletes = new List<Athlete>();


    public void addAthlete(Athlete a)
    {
        athletes.Add(a);// adds the athletes towards this class
    }

    public void displayAthletes()// method used for displaying athlete when requested
    {
        foreach (Athlete a in athletes) //Constructor
        {
            Console.WriteLine(a.athleteFirstname);
            Console.WriteLine(a.athleteLastname);
        }
    }

    public string eventName
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
    public string eventDate
    {
        get
        {
            return date;
        }
        set
        {
            date = value;
        }
    }

    public string eventTime
    {
        get
        {
            return time;
        }
        set
        {
            time = value;
        }
    }

    public double eventFee
    {
        get
        {
            return fee;
        }
        set
        {
            fee = value;
        }
    }

    public string eventVenue
    {
        get
        {
            return venueEvent;
        }
        set
        {
            venueEvent = value;
        }
    }
}

Это мой метод поиска

#region Search Athlete
    static void searchAthlete()
    {
        Console.WriteLine("Please enter which athlete you would like to find");
        string searchChoice = Convert.ToString(Console.ReadLine());

        for(int i = 0; i < athleteClass.ToArray().Length;i++) // goes through the athletes class to the end
        {
            if (searchChoice == athleteClass[i].athleteFirstname) // checks to see what has been entered matches any of the data in the athlete class
            {
                Console.WriteLine("Athlete First Name: " + athleteClass[i].athleteFirstname);
                Console.WriteLine("Athlete Last Name:  " + athleteClass[i].athleteLastname);
                Console.WriteLine("Event Name: " + athleteClass[i].eventA);
                Console.WriteLine("Venue Name: " + eventClass[i].eventVenue);
            }
            else
            {
                Console.WriteLine("No record was found");
            }
            //for (int e = 0; e < 2; e++)
            //{
            //    if (athleteClass[e].eventA == eventClass[e].eventName) // checks 
            //    {
            //        Console.WriteLine("Event name: " + eventClass[e].eventName);
            //    }
            //    for (int v = 0; v < 2; v++)
            //    {
            //        if (eventClass[v].eventVenue == venueClass[v].venueName)
            //        {
            //            Console.WriteLine("Venue Name: " + venueClass[v].venueName);
            //        }
            //    }
            //}

        } 
    }
    #endregion

1 Ответ

0 голосов
/ 29 февраля 2012

Для каждого спортсмена у вас есть список событий, обозначенный вашим кодом.Когда они добавляют нового спортсмена, они должны иметь возможность добавлять список событий, таких как {event1, event2 ... и т. Д.}, В консоли.При поиске вам просто нужно вызвать объект Athlete, Athlete.GetEventsList () и распечатать каждое событие, связанное с этим Athlete.Я сделаю псевдокод, чтобы вы учились самостоятельно.

Редактировать Прежде всего вам необходимо сохранить события для каждого спортсмена.Поэтому вам нужен метод Set / Get для сохранения входящих событий из консоли для конкретного спортсмена.Когда у вас есть список событий для спортсмена, вы можете сделать это.

for each Athlete a in ListOfAthletes
{
  get eventList for a
  for each event in eventList
   get event Name
   //print out athlete Name and event Name
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...