我必须创建一个Library类,其中包含一个包含Title,Author和ID#的Books列表。我必须制作方法来添加书籍,按标题查找书籍,显示所有书籍以及删除书籍。
我的addBook()方法是否正确?
我的findBook()方法有一个错误,就是在Book类中创建一个构造函数但是已经有了一个构造函数。
此外,我真的不知道从列表中删除书籍的位置...我已经查找了从列表中删除项目的解决方案,但我真的不知道如何在我的程序中实现它。< / p>
我不了解很多东西,因为我的第一个大学课程CSE 1301很糟糕,我在1302年必须学习基本的东西以及更复杂的东西。
public class Library
{
public string name;
public List<Book> books = new List<Book>();
public void addBook(string title, string author)
{
int bookQuantity;
string btitle;
string bauthor;
bookQuantity = int.Parse(Console.ReadLine());
for (int x = 0; x <= bookQuantity; x++)
{
Console.WriteLine("Enter Title:");
btitle = Console.ReadLine();
Console.WriteLine("Enter Author:");
bauthor = Console.ReadLine();
books.Add(new Book(btitle, bauthor));
}
}
public void findBook()
{
var obj = new Book();
obj.ID = "xy";
string id = obj.ID;
Book result = books.Find(x => x.ID == "xy");
}
public void displayBooks()
{
foreach (Book b in books)
{
Console.WriteLine(b.ToString());
}
}
public void removeBook()
{
}
public Library()
{
}
}
public class Book
{
public string title;
public string author;
public int id;
static int isbn;
public string ID { get; set; }
public void assignID()
{
id = isbn;
isbn++;
}
public Book(string title, string author)
{
this.title = title;
this.author = author;
}
public override string ToString()
{
return string.Format("Title: " + title, "\nAuthor: " + author, "\nISBN: " + id);
}
}
答案 0 :(得分:1)
方法不正确。它有一些缺陷: 1.它调用I / O方法从用户获取信息。但这不是这个功能应该做的。它的工作是为图书馆添加一本书。应该通过参数给出有关该书的信息,然后使用该信息构建一本新书并将其添加到内部列表中。没有其他的。你实际上拥有大部分代码,因此解决问题的方法就是删除一堆代码并重新编写剩下的代码。 2.函数说“添加书”,但实际上它根据用户输入添加了多本书,并忽略了传递给它的参数。一个函数应该说它做了什么,然后实际做到了。
同样适用于你的findBook()
代码,它既不接受任何参数(它如何知道要查找的内容?)也不返回任何内容(无论它发现什么都被忽略,任何其他代码都不能使用)
您的代码还有许多其他问题,但我关注的是您提出的关于addBook()
的问题。但是,一般情况下,如果你创建的函数可以执行他们所说的内容,获取参数并返回内容,不执行额外的工作或执行I / O操作,那么您可能可以自行改进代码。如果您有跟进问题,请告诉我。
答案 1 :(得分:-1)
你的构造函数必须是第一种方法......你有&#34; public void AssignId()&#34;作为第一种方法......编译器没有看到你的构造函数...在构造函数下面移动assignID,你的程序将编译...
至于remove方法,只需使用标题或isbn(您的选择或两者)遍历列表然后list.remove ...