2012-02-28 3 views
1

私は4つのクラスprogram.cs、athlete.cs、event.cs、およびvenue.csを持つデータベースを作成しています。彼らが私に含める方法の1つは、アスリートを検索することと、イベント名と会場名を表示することです。これはすべての変数をプライベートにして行う必要があります。同じクラスだが異なるクラスの2つの変数を接続する方法は?

イベントクラスにイベント名に接続するアスリートクラスにイベント名の変数を持っているとにかくがあるのであれば、私は思っていました。

アスリートクラス

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 
+0

ですか?もしそうなら、そのようにタグ付けされるべきです。 – bschultz

+0

'connect'とはどういう意味ですか? –

+0

宿題があることを知らなかった。 – user1073429

答えて

0

です。彼らが新しいアスリートを追加するとき、{event1、event2 ... etc}のようなイベントのリストをコンソールに追加できるはずです。あなたの検索では、Athleteオブジェクト、Athlete.GetEventsList()を呼び出して、この選手に関連する各イベントを出力するだけです。私は擬似コードを行い、あなた自身で学ぶでしょう。

まず、各競技者のイベントを保存する必要があります。そのため、特定のアスリートのためにコンソールから着信イベントを保存するには、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 
} 
+0

よく、アスリートは現在のところ1つのイベントにのみ割り当てることができます。はい、アスリートを追加すると、イベントに1または2を入力します。 – user1073429

+0

編集を参照してください。イベントを保存する必要があります。そうでなければ、アスリートのイベントにはどのようにアクセスしますか? – EKet

+0

私は上記のコードで設定されたメソッドを取得しました – user1073429

関連する問題