简单的网上购物系统c语言代码
时间: 2023-11-01 22:06:25 浏览: 410
好的,我可以给您提供一个简单的网上购物系统的C语言代码示例,但是需要注意的是,这个示例只能作为参考,实际开发中需要根据自己的需求进行定义和实现。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 商品信息
typedef struct {
int id; // 商品编号
char name[20]; // 商品名称
double price; // 商品价格
} Product;
// 购物车中的商品信息
typedef struct {
int id; // 商品编号
int count; // 商品数量
} CartItem;
// 订单信息
typedef struct {
int id; // 订单编号
char customer[20]; // 客户名称
CartItem cart[10]; // 购物车
int cart_count; // 购物车中的商品数量
double total; // 订单总价
} Order;
// 商品列表
Product products[] = {
{1, "商品1", 10.0},
{2, "商品2", 20.0},
{3, "商品3", 30.0},
{4, "商品4", 40.0},
};
// 购物车
CartItem cart[10];
int cart_count = 0;
// 订单列表
Order orders[10];
int order_count = 0;
// 显示商品列表
void show_products() {
printf("商品列表:\n");
printf("编号\t名称\t价格\n");
for (int i = 0; i < sizeof(products) / sizeof(products[0]); i++) {
printf("%d\t%s\t%.2lf\n", products[i].id, products[i].name, products[i].price);
}
}
// 将商品添加到购物车
void add_to_cart(int product_id, int count) {
// 查找商品
Product *product = NULL;
for (int i = 0; i < sizeof(products) / sizeof(products[0]); i++) {
if (products[i].id == product_id) {
product = &products[i];
break;
}
}
if (product == NULL) {
printf("没有找到商品\n");
return;
}
// 添加到购物车
for (int i = 0; i < cart_count; i++) {
if (cart[i].id == product_id) {
cart[i].count += count;
return;
}
}
cart[cart_count].id = product_id;
cart[cart_count].count = count;
cart_count++;
}
// 显示购物车
void show_cart() {
printf("购物车:\n");
printf("编号\t名称\t价格\t数量\n");
double total = 0.0;
for (int i = 0; i < cart_count; i++) {
for (int j = 0; j < sizeof(products) / sizeof(products[0]); j++) {
if (cart[i].id == products[j].id) {
printf("%d\t%s\t%.2lf\t%d\n", products[j].id, products[j].name, products[j].price, cart[i].count);
total += products[j].price * cart[i].count;
}
}
}
printf("总价:%.2lf\n", total);
}
// 生成订单
void generate_order(char *customer) {
if (cart_count == 0) {
printf("购物车为空\n");
return;
}
// 计算总价
double total = 0.0;
for (int i = 0; i < cart_count; i++) {
for (int j = 0; j < sizeof(products) / sizeof(products[0]); j++) {
if (cart[i].id == products[j].id) {
total += products[j].price * cart[i].count;
}
}
}
// 生成订单
Order order;
order.id = order_count + 1;
strcpy(order.customer, customer);
for (int i = 0; i < cart_count; i++) {
order.cart[i] = cart[i];
}
order.cart_count = cart_count;
order.total = total;
orders[order_count] = order;
order_count++;
// 清空购物车
cart_count = 0;
printf("订单生成成功,订单编号:%d,客户:%s,总价:%.2lf\n", order.id, order.customer, order.total);
}
// 显示订单列表
void show_orders() {
printf("订单列表:\n");
printf("编号\t客户\t总价\n");
for (int i = 0; i < order_count; i++) {
printf("%d\t%s\t%.2lf\n", orders[i].id, orders[i].customer, orders[i].total);
}
}
// 主菜单
void main_menu() {
while (1) {
printf("\n1. 查看商品列表\n");
printf("2. 加入购物车\n");
printf("3. 查看购物车\n");
printf("4. 生成订单\n");
printf("5. 查看订单列表\n");
printf("6. 退出\n");
printf("请输入选项编号:");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
show_products();
break;
case 2:
printf("请输入商品编号和数量(空格分隔):");
int product_id, count;
scanf("%d %d", &product_id, &count);
add_to_cart(product_id, count);
break;
case 3:
show_cart();
break;
case 4:
printf("请输入客户名称:");
char customer[20];
scanf("%s", customer);
generate_order(customer);
break;
case 5:
show_orders();
break;
case 6:
exit(0);
default:
printf("无效的选项编号\n");
}
}
}
int main() {
main_menu();
return 0;
}
```
这个示例实现了商品列表、购物车、订单生成和订单列表等基本功能。当然,这个示例还有很多不足之处,比如没有对输入进行错误处理、没有持久化数据等,需要根据实际情况进行改进。
阅读全文