购物车(复合类)(szuoj)

本文探讨了在线购物车的设计与实现,包括如何处理商品添加、删除、更新数量以及计算总价等功能,同时涉及到了复合类在其中的应用。
摘要由CSDN通过智能技术生成
#include <iostream>
#include <cstring>
#include <cstdio>
#include <iomanip>
using namespace std;
class Item{
   
    char *ItemNumber,*name,*color,*Size;
    double ItemUnitprice;
    int totnum;
public:
    Item(){
   
        ItemNumber=name=color=Size=nullptr;
        ItemUnitprice=totnum=0;
    }
    Item(const Item & it){
   
        ItemNumber = new char [strlen(it.ItemNumber)+1];    strcpy(ItemNumber,it.ItemNumber);
        name = new char [strlen(it.name)+1];    strcpy(name,it.ItemNumber);
        color = new char [strlen(it.color)+1];    strcpy(color,it.ItemNumber);
        Size = new char [strlen(it.Size)+1];    strcpy(Size,it.ItemNumber);
    }
    ~Item(){
   
        if(ItemNumber!=nullptr) delete []ItemNumber;
        if(name!=nullptr) delete []name;
        if(color!=nullptr) delete []color;
        if(Size!=nullptr) delete []Size;
    }
    Item* Find(const Item & it){
   
        if((!strcmp(ItemNumber,it.ItemNumber))){
   
            return this;
        }
        else return nullptr;
    }
    char * GetItemNumber(){
    return ItemNumber;}
    double CalTotalPrice(){
   
        return ItemUnitprice * totnum;
    }
    void Updatetotnum(int x){
   
        totnum+=x;
        if(totnum==0)totnum=1;
    }
    void SetItemNumber(char *str){
   
        ItemNumber = new char [strlen(str)+1];
        strcpy(ItemNumber,str);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值