Я пытаюсь сделать программу о книгах, и для этого нужна система идентификации. Я хочу получить доступ к информации о конкретном объекте с идентификатором книги. Например:
Console.Write("What ID is the book ")
//tempId = **ID**
int tempId = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(book**ID**.title); //.title = the title of the book
Как я могу сделать что-то подобное?
Я думал сделать это со статическим атрибутом класса, но я почти уверен, что это невозможно.
Что бы я сделал, так это создать класс «книга», содержащий необходимые вам атрибуты (идентификатор, имя, дата публикации...) и сохранить все эти книги в массиве карты типов с идентификатором в качестве первичного ключа. Не знаю, решу ли я этим ваш вопрос, если ваш вопрос был не этот, задайте мне еще раз вопрос и я постараюсь вам помочь.
Это будет пример класса "книга":
#include <string>
class Book {
public:
Book(int id, std::string name, std::string publicationDate)
: id_(id), name_(name), publicationDate_(publicationDate) {}
int id() const { return id_; }
std::string name() const { return name_; }
std::string publicationDate() const { return publicationDate_; }
private:
int id_;
std::string name_;
std::string publicationDate_;
};
Итак, вы можете создать карту, о которой я вам говорил:
int main() {
std::map<int, Book> library;
library[123] = Book(123, "El Quijote", "1605-01-01");
library[456] = Book(456, "Cien años de soledad", "1967-05-01");
library[789] = Book(789, "Don Juan Tenorio", "1844-01-01");
int bookId = 456;
auto it = library.find(bookId);
return 0;
}
Приведенный выше код создает карту с тремя книгами и извлекает из нее одну с идентификатором 456.
Ваша идея использовать массив для хранения книг действительно помогла мне, но код, который вы только что опубликовали, написан на C++ в соответствии с ChatGPT (я использовал его для объяснения кода, так как я новичок). Спасибо в любом случае!
Вам это нужно в c без ++? Вы правы, я сделал это на С++, всякий раз, когда я слышу С, я обычно пишу это на С++. Вам все еще нужна помощь?
Вам нужно было бы где-то иметь магазин книг с поиском по ID. Если вы пытаетесь сделать это в памяти, дизайн хэш-таблицы будет наиболее подходящим для поиска по идентификатору. В .NET одной из реализаций этого является словарь.