Написать программу "Библиотека": пользователь вводит и сохраняет список собственных книг - C#
Формулировка задачи:
Написать программу:
«Библиотека»: пользователь вводит и сохраняет список собственных книг, может его просматривать, дополнять, осуществлять поиск.
в Microsoft Visual Studio должна быть написана, в Консольное приложение.
Решение задачи: «Написать программу "Библиотека": пользователь вводит и сохраняет список собственных книг»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Xml.Serialization;
- namespace Library
- {
- class Program
- {
- private static List<Book> books;
- static void Main(string[] args)
- {
- books = !File.Exists("lib.xml") ? new List<Book>() : DeserializeFromXML();
- bool flag = true;
- while (flag)
- {
- switch (Console.ReadLine())
- {
- case "add":
- Console.WriteLine("Что бы добавить книгу введите через запятую\n" +
- "Имя автора, название книги, название издательства");
- string readLine = Console.ReadLine();
- if (readLine != null)
- {
- string[] temp = readLine.Split(',');
- Add(temp[0], temp[1], temp[2]);
- }
- break;
- case "exit":
- flag = false;
- break;
- case "print":
- Print();
- break;
- case "delete":
- Console.WriteLine("Введите название книги которую вы хотите удалить");
- Delete(Console.ReadLine());
- break;
- case "save":
- SerializeToXML(books);
- break;
- case "load":
- books = DeserializeFromXML();
- break;
- default:
- Console.WriteLine("Нет такой команды");
- break;
- }
- }
- }
- private static void Delete(string name)
- {
- foreach (Book book in books.Where(b => b.Name == name))
- {
- Console.WriteLine("Удаление...");
- Console.WriteLine("Название: {0}, Автор: {1}, Издательство: {2}", book.Name, book.Author, book.Publisher);
- books.Remove(book);
- break;
- }
- }
- private static void Print()
- {
- foreach (Book book in books)
- {
- Console.WriteLine("Название: {0}, Автор: {1}, Издательство: {2}", book.Name, book.Author, book.Publisher);
- }
- }
- private static void Add(
- string author,
- string name,
- string publisher)
- {
- books.Add(new Book(author, name, publisher));
- }
- static public void SerializeToXML(List<Book> lib)
- {
- XmlSerializer serializer = new XmlSerializer(typeof(List<Book>));
- TextWriter textWriter = new StreamWriter(@"lib.xml");
- serializer.Serialize(textWriter, lib);
- textWriter.Close();
- }
- static List<Book> DeserializeFromXML()
- {
- XmlSerializer deserializer = new XmlSerializer(typeof(List<Book>));
- TextReader textReader = new StreamReader(@"lib.xml");
- List<Book> lib = (List<Book>)deserializer.Deserialize(textReader);
- textReader.Close();
- return lib;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д