holyya.com
2025-09-04 11:05:32 Thursday
登录
文章检索 我的文章 写文章
C++购物系统设计
2023-07-03 01:06:42 深夜i     --     --
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++购物系统的设计。通过这个案例,我们可以更加深入地理解面向对象编程的思想,提高我们的程序设计能力和实践能力。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复