21xrx.com
2025-06-19 05:01:18 Thursday
登录
文章检索 我的文章 写文章
C++购物系统设计
2023-07-03 01:06:42 深夜i     14     0
C++ 购物系统 设计 编程 数据库

作为计算机专业的学生,我们需要掌握计算机语言,其中C++往往被广泛应用于商业开发。本文将介绍如何使用C++设计购物系统。

首先,我们需要创建一个商品类,包括商品名称,售价,库存等。这里我们用结构体表示:

struct commodity
  string name;
  double price;
  int stock;
;

接着,我们需要设计购物车类,可以添加、删除商品,计算总价等:

class cart {
public:
  cart()
    total_price = 0;
    amount = 0;
  
  void add(commodity& c, int num) {
    if(c.stock < num)
      cout << "库存不足
    for(auto& i : items) {
      if(i.name == c.name) {
        i.amount += num;
        i.total_price += c.price * num;
        total_price += c.price * num;
        amount += num;
        c.stock -= num;
        return;
      }
    }
    cart_item item;
    item.name = c.name;
    item.price = c.price;
    item.amount = num;
    item.total_price = c.price * num;
    total_price += c.price * num;
    amount += num;
    c.stock -= num;
    items.push_back(item);
  }
  void remove(string name, int num) {
    for(auto i = items.begin(); i != items.end(); i++) {
      if(i->name == name) {
        if(num >= i->amount) {
          total_price -= i->total_price;
          amount -= i->amount;
          i->amount = 0;
          i->total_price = 0;
          i = items.erase(i);
        } else {
          i->amount -= num;
          i->total_price -= num * i->price;
          total_price -= num * i->price;
        }
        return;
      }
    }
    cout << "购物车中不存在该商品" << endl;
  }
  double get_total_price()
    return total_price;
  
  void display() {
    cout << "商品名称\t\t\t单价\t\t\t数量\t\t\t总价" << endl;
    for(auto& i : items) {
      cout << i.name << "\t\t\t" << i.price << "\t\t\t" << i.amount << "\t\t\t" << i.total_price << endl;
    }
    cout << "总价:" << total_price << endl;
  }
private:
  struct cart_item
    string name;
    double price;
    int amount;
    double total_price;
  ;
  vector<cart_item> items;
  double total_price;
  int amount;
};

接着,我们需要创建一个商品列表,可以添加、删除商品:

class commodity_list {
public:
  void add(commodity& c) {
    for(auto& i : items) {
      if(i.name == c.name) 无法添加" << endl;
        return;
      
    }
    items.push_back(c);
  }
  void remove(string name) {
    for(auto i = items.begin(); i != items.end(); i++) {
      if(i->name == name) {
        if(i->stock == 0) {
          i = items.erase(i);
        } else
          cout << "商品库存不为0
        return;
      }
    }
    cout << "商品不存在" << endl;
  }
  commodity* find(string name) {
    for(auto& i : items) {
      if(i.name == name)
        return &i;
      
    }
    return nullptr;
  }
  void display() {
    cout << "商品名称\t\t\t单价\t\t\t库存" << endl;
    for(auto& i : items) {
      cout << i.name << "\t\t\t" << i.price << "\t\t\t" << i.stock << endl;
    }
  }
private:
  vector<commodity> items;
};

最后,我们可以使用这些类创建一个购物系统:

int main() {
  commodity_list cl;
  cart ct;
  commodity c1"iPhone12";
  commodity c2 29999.0;
  commodity c3 50;
  cl.add(c1);
  cl.add(c2);
  cl.add(c3);
  while(true) {
    int choice;
    cout << "请选择操作:1.浏览商品;2.添加商品至购物车;3.从购物车删除商品;4.查看购物车;5.退出" << endl;
    cin >> choice;
    if(choice == 1) {
      cl.display();
    } else if(choice == 2) {
      string name;
      int num;
      cout << "请输入商品名称和数量:" << endl;
      cin >> name >> num;
      commodity* p = cl.find(name);
      if(p == nullptr)
        cout << "商品不存在" << endl;
       else {
        ct.add(*p, num);
      }
    } else if(choice == 3) {
      string name;
      int num;
      cout << "请输入商品名称和数量:" << endl;
      cin >> name >> num;
      ct.remove(name, num);
    } else if(choice == 4) {
      ct.display();
    } else if(choice == 5) {
      break;
    } else {
      cout << "请重新输入选项" << endl;
    }
  }
  return 0;
}

这样,我们就完成了一个简单的C++购物系统的设计。通过这个案例,我们可以更加深入地理解面向对象编程的思想,提高我们的程序设计能力和实践能力。

  
  

评论区