文章目录
一、简介
简单的C#控制台应用程序,用于管理书籍信息。这个程序将允许用户添加、编辑、查看和删除书籍信息,并将每本书籍的信息保存到一个文本文件中。这是一个实用的工具,适用于需要管理书籍信息的用户。
二、程序功能
我们的程序将包含以下功能:
当然,以下是程序中每个功能和对应方法的详细解释:
2.1 Book类
这个类代表了一个书籍对象,包含了书籍的所有属性。
属性:
Title
:书名。Author
:作者。Publisher
:出版社。PublishDate
:出版日期。Price
:定价。
方法:
Book()
:默认构造函数,用于创建一个没有任何信息的书籍对象。Book(string title, string author, string publisher, DateTime publishDate, decimal price)
:参数化构造函数,用于创建一个包含所有信息的书籍对象。SaveToFile(string filePath)
:将书籍信息保存到指定的文件路径。这个方法使用File.WriteAllText
来写入文件,文件内容以特定的格式保存(书名、作者、出版社、出版日期和定价)。LoadFromFile(string filePath)
:从指定的文件路径加载书籍信息。这个方法使用File.ReadAllLines
来读取文件,并解析每一行来设置书籍对象的属性。DeleteBookFile(string filePath)
:删除指定文件路径的书籍文件。这个方法首先检查文件是否存在,如果存在,则使用File.Delete
来删除文件。
2.2 Program 类
这个类包含程序的入口点和用户界面逻辑。
三、方法:
Main(string[] args)
:程序的入口点。这个方法设置控制台标题,显示主菜单,并根据用户的选择调用不同的方法来执行操作。AddEditBook()
:添加或编辑书籍信息。这个方法提示用户输入书籍的详细信息,并保存到用户指定的文件路径。ViewBook()
:查看书籍信息。这个方法提示用户输入书籍文件的路径,然后加载并显示书籍的详细信息。DeleteBook()
:删除书籍信息。这个方法提示用户输入要删除的书籍文件路径,然后调用Book.DeleteBookFile
方法来删除文件。
四、用户界面流程:
- 程序启动后,显示主菜单,用户可以选择添加/编辑书籍、查看书籍、删除书籍或退出程序。
- 根据用户的选择,程序调用相应的方法来执行操作。
- 每个方法都通过控制台输入输出与用户交互,获取必要的信息或显示结果。
五、程序代码
以下是程序的完整代码:
csharp
using System;
using System.IO;
namespace pages_211_编程题3_2_书籍信息的查看与编辑
{
public class Book
{
public string Title { get; set; }
public string Author { get; set; }
public string Publisher { get; set; }
public DateTime PublishDate { get; set; }
public decimal Price { get; set; }
public Book() { }
public Book(string title, string author, string publisher, DateTime publishDate, decimal price)
{
Title = title;
Author = author;
Publisher = publisher;
PublishDate = publishDate;
Price = price;
}
public void SaveToFile(string filePath)
{
File.WriteAllText(filePath, $"书名: {Title}\n作者:{Author}\n出版社: {Publisher}\n出版日期: {PublishDate}\n定价: {Price}");
}
public static Book LoadFromFile(string filePath)
{
string[] lines = File.ReadAllLines(filePath);
return new Book
{
Title = lines[0].Split(new char[] { ':' }, 2)[1].Trim(),
Author = lines[1].Split(new char[] { ':' }, 2)[1].Trim(),
Publisher = lines[2].Split(new char[] { ':' }, 2)[1].Trim(),
PublishDate = DateTime.Parse(lines[3].Split(new char[] { ':' }, 2)[1].Trim()),
Price = decimal.Parse(lines[4].Split(new char[] { ':' }, 2)[1].Trim())
};
}
public static void DeleteBookFile(string filePath)
{
if (File.Exists(filePath))
{
File.Delete(filePath);
Console.WriteLine("书籍文件删除成功。");
}
else
{
Console.WriteLine("书籍文件不存在。");
}
}
}
class Program
{
static void Main(string[] args)
{
Console.Title = "书籍管理器";
bool exit = false;
while (!exit)
{
Console.WriteLine("\n书籍管理器");
Console.WriteLine("1. 添加/编辑书籍");
Console.WriteLine("2. 查看书籍");
Console.WriteLine("3. 删除书籍");
Console.WriteLine("4. 退出");
Console.Write("请选择一个选项:");
int option = Convert.ToInt32(Console.ReadLine());
switch (option)
{
case 1:
AddEditBook();
break;
case 2:
ViewBook();
break;
case 3:
DeleteBook();
break;
case 4:
exit = true;
break;
default:
Console.WriteLine("选项无效,请再试一次");
break;
}
}
}
static void AddEditBook()
{
Console.Write("请输入书名:");
string title = Console.ReadLine();
Console.Write("请输入作者:");
string author = Console.ReadLine();
Console.Write("请输入出版社:");
string publisher = Console.ReadLine();
Console.Write("请输入出版日期(格式为yyyy-MM-dd):");
DateTime publishDate = DateTime.Parse(Console.ReadLine());
Console.Write("请输入定价:");
decimal price = decimal.Parse(Console.ReadLine());
Book book = new Book(title, author, publisher, publishDate, price);
Console.Write("请输入保存书籍的文件路径:");
string filePath = Console.ReadLine();
book.SaveToFile(filePath);
Console.WriteLine("书籍保存成功。");
}
static void ViewBook()
{
Console.Write("请输入要查看书籍的文件路径:");
string filePath = Console.ReadLine();
Book book = Book.LoadFromFile(filePath);
Console.WriteLine($"书名: {book.Title}");
Console.WriteLine($"作者: {book.Author}");
Console.WriteLine($"出版社: {book.Publisher}");
Console.WriteLine($"出版日期: {book.PublishDate.ToShortDateString()}");
Console.WriteLine($"定价: {book.Price}");
}
static void DeleteBook()
{
Console.Write("请输入要删除书籍的文件路径:");
string filePath = Console.ReadLine();
Book.DeleteBookFile(filePath);
}
}
}
六、运行效果
- 添加书籍
-
修改书籍
-
删除书籍