C语言购物车程序设计:商品选购、添加、删除、结算功能实现
C语言实现简单购物车程序
本程序使用C语言实现了一个简单的购物车程序,包含商品列表浏览、商品选购、购物车商品数量添加和删除、结算等功能,并利用结构体和指针实现数据存储和操作。
程序代码
#include <stdio.h>
#include <stdlib.h>
// 商品结构体
typedef struct {
char name[50];
char size[10];
int price;
} Product;
// 购物车结构体
typedef struct {
Product* products[10];
int count;
} ShoppingCart;
// 初始化商品列表
void initProducts(Product* products) {
strcpy(products[0].name, '雅诗兰黛粉水');
strcpy(products[0].size, '400m');
products[0].price = 350;
strcpy(products[1].name, '小棕瓶精华');
strcpy(products[1].size, '50ml');
products[1].price = 420;
strcpy(products[2].name, '雅诗智妍面霜');
strcpy(products[2].size, '50ml');
products[2].price = 750;
strcpy(products[3].name, '小棕瓶眼霜');
strcpy(products[3].size, '15ml');
products[3].price = 500;
strcpy(products[4].name, '红石榴洁面');
strcpy(products[4].size, '150ml');
products[4].price = 280;
strcpy(products[5].name, 'DW粉底液(1w1)');
strcpy(products[5].size, '30ml');
products[5].price = 380;
strcpy(products[6].name, '沁水粉底液(1c0)');
strcpy(products[6].size, '30ml');
products[6].price = 450;
strcpy(products[7].name, '雅诗气垫');
strcpy(products[7].size, '15ml');
products[7].price = 420;
strcpy(products[8].name, '雅诗防晒隔离');
strcpy(products[8].size, '30ml');
products[8].price = 280;
strcpy(products[9].name, '雅诗樱花水');
strcpy(products[9].size, '200ml');
products[9].price = 580;
}
// 显示商品列表
void displayProducts(Product* products) {
printf('商品列表:\n');
int i;
for (i=0; i < 10; i++) {
printf('%d %s %s %d元\n', i + 1, products[i].name, products[i].size, products[i].price);
}
}
// 选购商品
void selectProduct(Product* products, ShoppingCart* cart) {
int choice;
printf('请输入要选购的商品编号:');
scanf('%d', &choice);
if (choice < 1 || choice > 10) {
printf('无效的选择!\n');
return;
}
Product* selectedProduct = &products[choice - 1];
cart->products[cart->count] = selectedProduct;
cart->count++;
printf('已将商品 %s 添加到购物车。\n', selectedProduct->name);
}
// 显示已选商品
void displaySelectedProducts(ShoppingCart* cart) {
printf('已选商品:\n');
int i;
for (i=0; i < cart->count; i++) {
printf('%d %s %s %d元\n', i + 1, cart->products[i]->name, cart->products[i]->size, cart->products[i]->price);
}
}
// 对已选商品进行添加或删除
void modifySelectedProducts(ShoppingCart* cart) {
int choice;
printf('请输入要进行操作的商品编号:');
scanf('%d', &choice);
if (choice < 1 || choice > cart->count) {
printf('无效的选择!\n');
return;
}
printf('请选择操作:\n');
printf('1. 添加数量\n');
printf('2. 删除商品\n');
int operation;
scanf('%d', &operation);
if (operation == 1) {
printf('请输入要添加的数量:');
int quantity;
scanf('%d', &quantity);
cart->products[choice - 1]->price *= quantity;
} else if (operation == 2)
{
int i;
for (i=choice - 1; i < cart->count - 1; i++) {
cart->products[i] = cart->products[i + 1];
}
cart->count--;
printf('已删除商品。\n');
} else {
printf('无效的选择!\n');
}
}
// 结算
void checkout(ShoppingCart* cart) {
int total = 0;
printf('结算清单:\n');
int i;
for (i=0; i < cart->count; i++) {
printf('%s %s %d元\n', cart->products[i]->name, cart->products[i]->size, cart->products[i]->price);
total += cart->products[i]->price;
}
printf('总计:%d元\n', total);
}
int main() {
Product products[10];
initProducts(products);
ShoppingCart cart;
cart.count = 0;
int choice;
while (1) {
printf('\n菜单:\n');
printf('1. 选购商品\n');
printf('2. 显示已选商品\n');
printf('3. 对已选商品进行添加或删除\n');
printf('4. 结算\n');
printf('0. 退出\n');
printf('请输入菜单选项:');
scanf('%d', &choice);
switch (choice) {
case 1:
displayProducts(products);
selectProduct(products, &cart);
break;
case 2:
displaySelectedProducts(&cart);
break;
case 3:
modifySelectedProducts(&cart);
break;
case 4:
checkout(&cart);
break;
case 0:
exit(0);
default:
printf('无效的选择!\n');
}
}
return 0;
}
程序功能
- 商品列表浏览: 显示所有商品的名称、尺寸和价格。
- 商品选购: 用户可以选择商品,并将所选商品添加到购物车。
- 购物车商品添加和删除: 用户可以对购物车中的商品进行数量添加或删除操作。
- 结算: 计算购物车中所有商品的总价并显示。
程序设计要点
- 使用结构体
Product和ShoppingCart来存储商品信息和购物车信息。 - 使用指针来操作结构体和数组,提高程序效率。
- 使用
switch语句来实现菜单功能,使程序结构更加清晰。 - 使用
strcpy函数来复制字符串,使用exit函数来退出程序。
总结
本程序通过实现一个简单的购物车程序,练习和巩固了C语言的基本语法和结构体的使用,并学习了指针的应用、菜单功能的实现等编程技巧。通过这次实践,我更加深入地理解了C语言的特点,并提高了自己的编程能力和解决问题的能力。
原文地址: https://www.cveoy.top/t/topic/oOX7 著作权归作者所有。请勿转载和采集!