2016-04-21 27 views
1

我知道我可能会为此获得很多赞成票,但我只是在c#稍微好点,但还是有一段时间。如果有人能帮助我,我真的很感激。我的申请主要是一个名为dailyMenu的课程。这个类有以下字段:如何编写一个方法,根据用户输入打印主菜单将被投放的日期列表?

public class dailyMenu 
{ 
    private string day = ""; 
    private int date = 0; 
    public string entree { get; private set; } 
    private double price; 
    private double calories; 
    static int initalDate = 1; 
    static string[] daysOfWeek = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; 
    static string[] entrees = {"Beef Tenderloin Fresco", "Madagascar Filet Mignon", "Filet Mignon", " Lobster Ravioli", "Asian Infused Braised Beef", "New Age Chicken Cordon Bleu", "Short Ribs", " Beef Wellington", 
     "Fajitas", "Bacon Cheeseburger", " Beef Burgandy", "Spagehetti"}; 
    static double[] entreePrices = { 5.99, 7.99, 6.99, 4.50, 9.99, 10.29, 5.67, 8.99, 3.99, 4.78, 10, 79, 6.98 }; 
    static int[] entreeMealCaloricVal = { 999, 1288, 770, 699, 450, 999, 1500, 873, 911, 1011, 777, 500 }; 

这是我的属性:

public string Day 
{ 
    get { return day; } 
    set { day = value; } 
} 
public int Date 
{ 
    get { return date; } 
    set { date = value; } 
} 
public string Entree 
{ 
    get { return entree; } 
    set { entree = value; } 
} 
public double Price 
{ 
    get { return price; } 
    set { price = value; } 
} 
public double Calories 
{ 
    get { return calories; } 
    set { calories = value; } 
} 

接下来,我在我的主要方法创建我dailymenu类的对象。

public static void Main(string[] args) 
{ 
    dailyMenu[,] daysOfMonth = new dailyMenu[4, 5]; 
    for (int column = 0; column < daysOfMonth.GetLength(0); column++) 
    { 
     for (int row = 0; row < daysOfMonth.GetLength(1); row++) 
     { 
      dailyMenu dm = new dailyMenu(); 
      daysOfMonth[column, row] = dm; 
      Console.WriteLine(dm.ToString()); 
     } 
    } 
} 

而现在,我试图想出一个功能,用户在上面的主菜之一进入后,控制台会打印出所有的日子在其中输入的主菜将送达。它也需要一个二维数组作为参数。 这就是我到目前为止所提出的。

static void entreeSearch(dailyMenu[,] daysOfMonth) 
{ 
    Console.WriteLine("PLease enter the entree you'd like to search for today :)"); 
    string response = Console.ReadLine(); 
    response = response.ToUpper(); 

    for (int column = 0; column < daysOfMonth.GetLength(0); column++) 
    { 
     for (int row = 0; row < daysOfMonth.GetLength(1); row++) 
     { 
      if (response ==) 
      { 
       dailyMenu dm = new dailyMenu(); 
       daysOfMonth[column, row] = dm; 
       Console.WriteLine(dm.ToString()); 
      } 

     } 
    } 

回答

3

那么你需要填写哪一天有什么主菜。目前您正在初始化为默认值,因此每一天的主菜都是null。但一旦你解决这个问题,这应该工作:

static void entreeSearch(dailyMenu [,] daysOfMonth) 
    { 
     Console.WriteLine ("PLease enter the entree you'd like to search for today :)"); 
     string response = Console.ReadLine(); 
     response = response.ToUpper(); 

     for (int column = 0; column < daysOfMonth.GetLength(0); column++) 
     { 
      for (int row = 0; row < daysOfMonth.GetLength(1); row++) 
      { 
       dailyMenu dailyMenuAtThisRowAndColumn = daysOfMonth[column, row]; 
       if (dailyMenuAtThisRowAndColumn.Entree.ToUpper() == response) 
       { 
        Console.WriteLine($"Entree {response} was found on day {daysOfMonth[column, row].Day}"); 
       } 

      } 
     } 
+0

看到它很有趣现在,我认为它是有道理的,但你能向我解释它是如何工作的? –

+0

你不知道它是如何工作的?你没有写过你发布的代码吗? 'daysOfMonth'是'dailyMenu'对象的数组。你用这一行填入数组,'daysOfMonth [column,row] = dm'。要设定每一天的主菜,你可以在该行之前做,'dm.Entree =“Spagehetti”;'。每个'dailyMenu'对象都有一个名为'Entree'的字符串属性,所以我们只需将当天的Entree与响应进行比较,如我的答案所示。我将对其进行编辑,以使“daysOfMonth”数组包含“dailyMenu”对象。 – Quantic

+0

我明白,这是我的代码,我只是想看看事情的一个很好的解释,但非常感谢你 –

相关问题