开发基于控制台的购书系统(BuyBookSys)。具体要求如下: (1)输出所有图书的信息:包括每本图书的图书编号、图书名称、图书单价和库存数量。 (2)顾客购买图书:根据提示输入图书编号来购买图书,并根据提示输入购买图书数量(用户必须连续购书三次)。 (3)购书完毕后输出顾客的订单信息:包括订单号、订单明细、订单总额和订单日期。
时间: 2023-12-04 12:06:05 浏览: 46
好的,这是一个比较简单的控制台程序开发任务,我可以帮你解答。以下是程序实现的基本思路:
1. 定义一个Book类,包含图书编号、图书名称、图书单价和库存数量等信息。
2. 定义一个Order类,包含订单号、订单明细、订单总额和订单日期等信息。
3. 在程序中定义一个Book数组,存储所有的图书信息。
4. 输出所有图书的信息,遍历Book数组,输出每本图书的信息。
5. 提示用户输入图书编号和购买数量,根据用户输入的图书编号查找对应的图书信息,判断库存是否充足,如果充足则将购买的图书信息添加到订单明细中。
6. 用户连续购书三次后,计算订单总额,生成订单号和订单日期,并输出订单信息。
以下是一个简单的实现代码,你可以参考一下:
```csharp
using System;
class Book
{
public string id; // 图书编号
public string name; // 图书名称
public double price; // 图书单价
public int stock; // 库存数量
}
class Order
{
public string id; // 订单号
public string date; // 订单日期
public string detail; // 订单明细
public double total; // 订单总额
}
class BuyBookSys
{
static Book[] books = new Book[3]; // 存储所有图书信息的数组
static Order order = new Order(); // 存储订单信息的对象
static int count = 0; // 记录用户购买的图书数量
static void Main(string[] args)
{
// 初始化图书信息
books[0] = new Book() { id = "001", name = "C#程序设计", price = 29.9, stock = 100 };
books[1] = new Book() { id = "002", name = "Java程序设计", price = 28.0, stock = 80 };
books[2] = new Book() { id = "003", name = "Python程序设计", price = 26.5, stock = 120 };
// 输出所有图书信息
Console.WriteLine("所有图书信息如下:");
foreach (var book in books)
{
Console.WriteLine("编号:{0},名称:{1},单价:{2},库存:{3}", book.id, book.name, book.price, book.stock);
}
// 循环购买图书
while (count < 3)
{
Console.WriteLine("请输入要购买的图书编号:");
string id = Console.ReadLine();
Console.WriteLine("请输入购买数量:");
int quantity = int.Parse(Console.ReadLine());
// 查找对应图书信息
Book book = Array.Find(books, b => b.id == id);
if (book == null)
{
Console.WriteLine("没有找到对应的图书,请重新输入!");
continue;
}
// 判断库存是否充足
if (book.stock < quantity)
{
Console.WriteLine("库存不足,请重新输入!");
continue;
}
// 更新订单明细和库存数量
order.detail += string.Format("{0} x {1},", book.name, quantity);
book.stock -= quantity;
count++;
}
// 计算订单总额,生成订单号和订单日期
order.total = books.Sum(b => b.price * (3 - b.stock));
order.id = Guid.NewGuid().ToString("N");
order.date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
// 输出订单信息
Console.WriteLine("订单号:{0}", order.id);
Console.WriteLine("订单日期:{0}", order.date);
Console.WriteLine("订单明细:{0}", order.detail.TrimEnd(','));
Console.WriteLine("订单总额:{0}", order.total);
}
}
```