📅  最后修改于: 2023-12-03 15:37:34.867000             🧑  作者: Mango
这是一个使用C++语言实现的交互式在线购物程序。该程序允许用户通过控制台输入商品编号和数量,并根据用户的需求展示您数据库中的商品信息。用户可以选择将商品加入购物车并结账,程序会自动计算商品总金额。
该程序的实现思路如下:
struct Product {
string name; // 商品名称
int id; // 商品编号
double price; // 商品单价
int stock; // 商品库存
};
struct Cart {
int id; // 商品编号
int count; // 商品数量
};
vector<Product> products;
//读取数据文件
void initProducts(const string &path) {
ifstream infile(path);
if (!infile.is_open()) {
cerr << "Product information file not found!" << endl;
}
string line;
while (getline(infile, line)) {
istringstream iss(line);
Product product;
iss >> product.id >> product.name >> product.price >> product.stock;
products.push_back(product);
}
}
// 商品列表页面
void showProductList() {
cout << " 商品编号 商品名称 商品单价 库存数量\n";
for (auto &product: products) {
cout << setw(6) << product.id << " " << setw(10) << product.name << " " << setw(4) << product.price << " " << setw(4)
<< product.stock << endl;
}
}
// 加入购物车
void addProductToCart(int id, int count, vector<Cart> &cart) {
for (auto &item: cart) {
if (item.id == id) {
item.count += count;
return;
}
}
Cart t;
t.id = id;
t.count = count;
cart.push_back(t);
}
// 购物车页面
void showCart(const vector<Cart> &cart) {
cout << " 购物清单" << endl;
cout << "商品编号 商品名称 数量 单价 总价" << endl;
double total = 0;
for (auto &item: cart) {
Product p = getProductById(item.id);
if (p.stock > 0) {
double sum = item.count * p.price;
total += sum;
cout << setw(6) << p.id << " " << setw(10) << p.name << " " << setw(4) << item.count << " " << setw(4) << p.price << " " << setw(4) << sum << endl;
}
}
cout << "总计: " << total << " 元" << endl;
}
// 结账页面
void checkout(const vector<Cart> &cart) {
time_t t = time(0);
char tmp[64];
strftime(tmp, sizeof(tmp), "%Y/%m/%d %X %A", localtime(&t));
cout << tmp << endl;
cout << "商品编号 商品名称 数量 单价 总价" << endl;
double total = 0;
for (auto &item: cart) {
Product p = getProductById(item.id);
if (p.stock > 0) {
double sum = item.count * p.price;
total += sum;
cout << setw(6) << p.id << " " << setw(10) << p.name << " " << setw(4) << item.count << " " << setw(4) << p.price << " " << setw(4) << sum << endl;
}
updateProductStock(p.id, p.stock - item.count);
}
cout << "总计: " << total << " 元" << endl;
}
该程序通过C++语言实现了一个简单的在线购物系统。程序中使用了结构体、vector等基本数据类型,并通过文件输入、控制台输出、菜单选项等方式实现了基本的程序交互。此外,该程序仅供学习交流使用,不可用于商业用途。