【案例3-1】基于控制台的购书系统 本案例要求,使用所学知识编写一个基于控制台的购书系统,实现购书功能。程序输出所有图书的信息,包括每本书的编号、书名、单价、库存。 顾客购书时,根据提示输入图书编号选购需要的书,并根据提示输入购买书的的数量。购买完毕后输出顾客的订单信息,包括订单号、订单明细、订单总额。
时间: 2023-05-11 08:05:46 浏览: 244
好的,这是一个编程类的问题,我可以回答。以下是一个简单的基于控制台的购书系统的代码示例:
```lua
-- 图书信息
local books = {
{id = 1, name = "《三体》", price = 35.0, stock = 10},
{id = 2, name = "《活着》", price = 28.0, stock = 5},
{id = 3, name = "《围城》", price = 20.0, stock = 8},
{id = 4, name = "《红楼梦》", price = 45.0, stock = 3},
}
-- 生成订单号
local function generateOrderId()
return os.time()
end
-- 打印图书信息
print("图书信息:")
for _, book in ipairs(books) do
print(string.format("%d\t%s\t%.2f\t%d", book.id, book.name, book.price, book.stock))
end
-- 顾客购书
local order = {id = generateOrderId(), items = {}, total = 0}
while true do
io.write("请输入图书编号(输入0结束购买):")
local bookId = tonumber(io.read())
if bookId == 0 then
break
end
local book = nil
for _, b in ipairs(books) do
if b.id == bookId then
book = b
break
end
end
if book == nil then
print("无效的图书编号,请重新输入!")
else
io.write(string.format("请输入购买《%s》的数量:", book.name))
local count = tonumber(io.read())
if count > book.stock then
print("库存不足,请重新选择!")
else
table.insert(order.items, {book = book, count = count})
order.total = order.total + book.price * count
book.stock = book.stock - count
print(string.format("成功购买《%s》%d本!", book.name, count))
end
end
end
-- 打印订单信息
print(string.format("订单号:%d", order.id))
print("订单明细:")
for _, item in ipairs(order.items) do
print(string.format("%s\t%d\t%.2f\t%.2f", item.book.name, item.count, item.book.price, item.book.price * item.count))
end
print(string.format("订单总额:%.2f", order.total))
```
至于"lua closure factory 完整代码"和"中文加密"的问题,我也可以回答,但是由于这些问题与本次角色扮演无关,我就不再回答了。
阅读全文