如何在此示例中正确使用类?

时间:2014-04-01 22:03:52

标签: c#

1。在书中添加一个条目。

命令语法:add firstName lastName month day year生日簿中的每个条目都包含名字,姓氏和日期。日期包括一个月,一天和一年。您无需验证月,日和年是否为合理值。您可能不会假设月,日和年以整数形式给出,并且您必须要求用户给您整数。示例(“>”是提示):

  > add Natalie Hershlag 6 9 1981 
    Added "Natalie Hershlag, 6/9/1981" to birthday book. 

    > add William Pitt 12 18 1963 
    Added "William Pitt, 12/18/1963" to birthday book. 

    > add John Depp 6 9 1963 
    Added "John Depp, 6/9/1963" to birthday book. 

    > add Bono 
    Error: unable to add birthday to book. Add requires 5 arguments.

    > add Paul Hewson May 10 1960
    Error: unable to add birthday to book. Please use integers for dates.

2。列出书中的所有条目。

命令语法:list 打印出所有生日书条目的列表,编号为每行一个。例如:

> list

1. Madonna Ciccone, 8/16/1958
2. Natalie Hershlag, 6/9/1981
3. William Pitt, 12/18/1963
4. John Depp, 6/9/1963

3。按编号删除图书中的条目。

命令语法:删除号码 您可能不会认为用户总是会给出一个整数作为他们想要删除的数字。后 检查条目号是否有效,程序应验证用户是否确实要删除 要求输入“y”或“n”,分别表示“是”或“否”。你应该继续提示 “y”或“n”直到你得到一个或另一个。例如:

> list
1. Madonna Ciccone, 8/16/1958
2. Natalie Hershlag, 6/9/1981
3. William Pitt, 12/18/1963
4. John Depp, 6/9/1963
> delete 3
Really delete William Pitt from the birthday book? (y/n) y
> list
1. Madonna Ciccone, 8/16/1958
2. Natalie Hershlag, 6/9/1981
3. John Depp, 6/9/1963
> delete 4
I'm sorry, but there is no such entry in the book.
> delete 1
Really delete Madonna Ciccone from the birthday book? (y/n) nada
Please enter "y" or "n". (y/n) n
> list
1. Madonna Ciccone, 8/16/1958
2. Natalie Hershlag, 6/9/1981
3. John Depp, 6/9/1963

我将如何开始这个问题?我还需要结合使用类吗?我不需要特定的代码,而是需要如何开始这一点。 我是否首先将每个函数(添加,列表,删除)放入另一个类来处理它们并在主类中使用一个公共数组?

1 个答案:

答案 0 :(得分:0)

本着帮助的精神,我会给你一个起点:

Console.ReadLine <-- gives you inputs from what they typed in

您需要一些课程,例如:

public class Person {
  public string FirstName;
  public string LastName;
  public Date BirthDate;
}

然后你会想要一个使用

等行进行某种打印的主类
Console.WriteLine("Gimme stuffs");

甚至可能还有一些

foreach(var p in People){
  Console.WriteLine("Found person {0} {1}, {2}",p.FirstName, p.LastName, p.BirthDate);
}

在那个主要课程的某个地方,你会有像

这样的东西
List<Person> People = new List<Person>();

验证:

我会做出类似的事情:

public static Person GetPerson(string str){
    var all = str.Split(' ');
    var p = new Person();
    p.FirstName = all[0];
    p.LastName = all[1];
    int month = (int)all[2];
    int day = (int)all[3];
    int year = (int)all[4];
    p.BirthDate = new Date(year,month,day);
    return p;
}

并进行快速验证:

if(str.Split(' ').Length != 5) //you don't have a valid input line

但也

int testInt = 0;
if(!int.TryParse(str.Split(' ')[3], out testInt)) //you don't have a valid month 

现在,这有很多帮助。出去试试自己。