c语言 商店购物车系统
#ifndef customFile_h
#define customFile_h
#include <stdio.h>
#endif /* customFile_h */
typedef struct Goods{//声明结构体:商品
int code;//商品编号
char name[20];//商品名字
double price;//价格
double discount;//折扣
int number;//数量
double totalAccount;//总金额
}Goods;
void mainInterface(Goods *goods);
void menu();//显示主菜单
void goodList();//显示商品列表
void addToCart(Goods *goods);
void removeFromCart(Goods *goods);
int payTheBill(Goods *goods);
void showTheCart(Goods *goods);
#include "customFile.h"
void menu(){//显示主菜单
printf("请选择数字进行操作\n");
printf("1:显示所有商品");
printf("\t\t\t4:从购物车移除商品\n");
printf("2:查看购物车");
printf("\t\t\t5:结算\n");
printf("3:添加商品到购物车");
printf("\t\t0:退出\n");
printf("*******************************************\n");
}
void goodlist(){//打印商品清单
printf("商品列表如下*\n");
printf("编号\t\t\t名称\t\t\t价格\t\t\t折扣\n\n");
printf("101\t\t\t书本\t\t\t25\t\t\t0.8\n");
printf("102\t\t\t茶杯\t\t\t10\t\t\t0.3\n");
printf("103\t\t\t钢笔\t\t\t20\t\t\t0.6\n");
printf("***************************************************************\n");
}
void mainInterface(Goods *goods){
//主界面实现
int select = 0;
do{
menu();
printf("请选择对应数字0--5:");
scanf("%d",&select);
switch (select) {
case 1:
goodlist();
break;
case 5:
select = payTheBill(goods);
break;
case 4:
removeFromCart(goods);
break;
case 3:
addToCart(goods);
break;
case 2:
showTheCart(goods);
break;
case 0:
break;
default:
printf("error!!\n请重新选择:\n");
break;
}
}
while (select != 0) ;
}
void addToCart(Goods *goods){//实现添加商品到购物车功能
//goodList();
int code = 0, number = 0;
printf("请选择商品编号:");
scanf("%d",&code);
printf("请输入购买数量:");
scanf("%d",&number);
int flag = 0;
for (int i = 0; i < 3; i ++) {
if (goods[i].code == code) {
goods[i].number +=number;
flag = 1;
printf("商品添加成功!!\n");
printf("*****************************\n");
break;
}
}
if (flag == 0) {
printf("对不起,我们没有您要购买的商品\n");
}
}
void removeFromCart(Goods *goods){ //从购物车移除商品
//goodList();
int code = 0,number = 0;
printf("请输入您要移除的商品编号:");
scanf("%d",&code);
printf("请输入您要移除的数量:");
scanf("%d",&number);
int flag = 0;
for (int i = 0; i < 3; i ++) {
if (goods[i].code == code && goods[i].number - number > 0) {
goods[i].number -=number;
flag = 1;
printf("修改成功!\n");
printf("*****************************\n");
break;
}
}
if (flag == 0) {
printf("购物车里没有足够的该商品。\n");
}
}
int payTheBill(Goods *goods){//结算功能
printf("****当前购物车的商品\n");
double sum = 0;
for (int i = 0; i < 3; i++) {
if (goods[i].number > 0) {
printf("商品ID: %d,商品名称: %s,价格: %.2lf元,折扣率: %.2lf%%,库存数量: %d件,总金额: %.2lf元", goods.code, goods.name, goods.price, goods.discount * 100, goods.number, goods.number * goods.discount * goods.price);
sum += goods[i].numbergoods[i].discountgoods[i].price;
}
}
printf("当前总额为%.2f\n",sum);
printf("***************************************************************\n");
return 0;
}
void showTheCart(Goods *goods){//显示购物车
printf("****当前购物车的商品\n");
double sum = 0;
for (int i = 0; i < 3; i++) {
if (goods[i].number > 0) {
按格式输出各项目详细信息,请您查看以下具体数据:
包括商品编号、商品名称、价格(含折扣)、总金额及数量。
sum += goods[i].numbergoods[i].discountgoods[i].price;
}
}
printf("\n\t\t当前总额为%.2f\n",sum);
printf("***************************************************************\n");
}
#include <stdio.h>
#include "customFile.h"
int main(int argc, const char * argv[]) {
// insert code here...
Goods goods[3] = {
{101,"书本",20,0.8,0,0},
{102,"茶杯",10,0.3,0,0},
{103,"钢笔",15,0.6,0,0}
};
printf("\n\t\tXX超市购物车管理系统\n\n");
printf("*******************************************\n");
mainInterface(goods);
printf("谢谢您的光临,祝您生活愉快\n");
return 0;
}
