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

本文关键字:何正确 | 更新日期: 2023-09-27 17:55:54

1. 为图书添加条目。

命令语法:添加名字姓氏 月日 年 生日簿中的每个条目都由名字、姓氏和日期组成。日期由月、日和年组成。您无需验证月、日和年是否为合理值。您不能假设月、日和年是作为整数给出的,您必须要求用户为您提供整数。示例(">"是提示符):

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

我将如何开始这个问题?我也需要合并类的使用吗?我不需要特定的代码,而是关于如何开始的一般要点。我会从将每个函数(添加、列出、删除)放入不同的类来处理它们并在主类中拥有一个公共数组开始吗?

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

本着

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

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 

现在,这是很大的帮助。去吧,自己尝试一下。