C++的结构体在销售问题中的应用

  1. 商店里有一些商品,它们的售价和库存数量不同。(1)如果给你一笔钱 m,最多可以买到多少件商品;100 元最多能买 16 件
    #include<iostream>
    #include<cmath> 
    #include<stdlib.h>
    #include<iomanip>
    using namespace std;
    int main()
    {
    	cout<<"输入商品编号、商品价格、商品库存"<<endl; 
    	struct shangping
    	{
    		int ID; 
    		int Price;
    		int number; 
    	}sh[11];//定义结构体 
    	for (int i=1;i<=6;i++)
    	{
    		cin>>sh[i].ID>>sh[i].Price>>sh[i].number;//输入结构体 
    	}
    	shangping t;
    	for(int i=1;i<=5;i++)
    	{
    		for(int j=i+1;j<=6;j++)
    		{
    			if(sh[i].Price>sh[j].Price)
    			{
    				t=sh[i];
    				sh[i]=sh[j];
    				sh[j]=t;
    			}
    		}
    	}//排序 
    	int a,b,a_1,b_1,a_2,a_3,b_2,b_3,a_4,b_4,a_5,b_5,sum;
    	cout<<"输入价格:";
    	cin>>a;
    	b=a/sh[1].Price;
    	if(b<=sh[1].number)
    	{
    		sum=b;
    		cout<<a<<"元最多能买"<<sum<<"件" ; 
    	}//判断是否可以全部购买第一种商品 
    	else
    	{
    		a_1=a-sh[1].Price*sh[1].number;
    	    b_1=a_1/sh[2].Price;
    	    if(b_1<=sh[2].number)
    	{
    		sum=b_1+sh[1].number;
    		cout<<a<<"元最多能买"<<sum<<"件" ;
    	}//判断剩余的钱是否可以购买第二种商品 
    	else
    	{
    		a_2=a_1-sh[2].Price*sh[2].number;
    		b_2=a_2/sh[3].Price;
    		if(b_2<=sh[3].number)
    		{
    			sum=b_2+sh[1].number+sh[2].number;
    			cout<<a<<"元最多能买"<<sum<<"件" ;
    		}
    		else
    		{
    			a_3=a_2-sh[3].Price*sh[3].number;
    			b_3=a_3/sh[4].Price;
    			if(b_3<=sh[4].number)
    			{
    				sum=b_3+sh[1].number+sh[2].number+sh[3].number;
    				cout<<a<<"元最多能买"<<sum<<"件" ;
    			}
    			else
    			{
    				a_4=a_3-sh[4].Price*sh[4].number;
    				b_4=a_4/sh[5].Price;
    				if(b_4<=sh[5].number)
    				{
    					sum=b_4+sh[1].number+sh[2].number+sh[3].number+sh[4].number;
    					cout<<a<<"元最多能买"<<sum<<"件" ;
    				}
    				else
    				{
    					a_5=a_4-sh[5].Price*sh[5].number;
    					b_5=a_5/sh[6].Price;
    					if(b_5<=sh[6].number)
    					{
    						sum=b_5+sh[1].number+sh[2].number+sh[3].number+sh[4].number+sh[5].number;
    						cout<<a<<"元最多能买"<<sum<<"件" ;
    					}
    					else
    					cout<<a<<"元最多能买"<<sum+sh[6].number<<"件" ;
    				}//可以购买全部商品 
    			}
    		}
    	}
    	}
    	return 0;
    }
    

    (2)如果从中挑选 n 件商品,商品总价值最大有多少元。10 件商品最多价值 182 元

    #include<iostream>
    #include<cmath> 
    #include<stdlib.h>
    #include<iomanip>
    using namespace std;
    int main()
    {
    	cout<<"输入商品编号、商品价格、商品库存"<<endl; 
    	struct shangping
    	{
    		int ID; 
    		int Price;
    		int number; 
    	}sh[11];
    	for (int i=1;i<=6;i++)
    	{
    		cin>>sh[i].ID>>sh[i].Price>>sh[i].number;
    	}//定义并输入结构体 
    	shangping t;
    	for(int i=1;i<=5;i++)
    	{
    		for(int j=i+1;j<=6;j++)
    		{
    			if(sh[i].Price<sh[j].Price)
    			{
    				t=sh[i];
    				sh[i]=sh[j];
    				sh[j]=t;
    			}
    		}
    	}//排序 
    	int n,d,sum=0;
    	cout<<"输入件数:";
    	cin>>n;
    	d=n;
    	for(int c=1;c<=6;c++)//历遍整个结构体 
    	{
    		if(n>0)
    		{
    			if(n<sh[c].number)//判断输入n与每种商品的个数 
    			{
    				sum=sum+sh[c].Price*n;
    			}
    			else
    			sum=sum+sh[c].number*sh[c].Price;//价格相加	
    			n=n-sh[c].number;
    		}
    	}
    	cout<<d;
    	cout<<"件商品最高价值"<<sum<<"元";
    	return 0;
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的C++护肤品自动销售机系统的示例代码,仅供参考: ```c++ #include <iostream> #include <string> #include <vector> using namespace std; // 商品结构 struct Product { string name; // 商品名称 double price; // 商品价格 int stock; // 商品库存 }; // 自动售货机类 class VendingMachine { private: vector<Product> products; // 商品列表 double balance; // 余额 public: VendingMachine() { balance = 0; } // 添加商品 void addProduct(Product product) { products.push_back(product); } // 显示商品列表 void showProductList() { cout << "商品列表:" << endl; for (int i = 0; i < products.size(); i++) { cout << i + 1 << ". " << products[i].name << " - " << products[i].price << "元 - 库存:" << products[i].stock << endl; } } // 投币 void insertCoin(double coin) { balance += coin; } // 购买商品 void buyProduct(int index) { if (index >= 1 && index <= products.size()) { Product product = products[index - 1]; if (product.stock > 0 && balance >= product.price) { // 减少库存 products[index - 1].stock--; // 减少余额 balance -= product.price; cout << "购买成功!您购买了" << product.name << ",找零" << balance << "元。" << endl; } else { cout << "购买失败!请检查商品库存或余额。" << endl; } } else { cout << "购买失败!商品编号不存在。" << endl; } } // 显示余额 void showBalance() { cout << "当前余额为:" << balance << "元。" << endl; } }; int main() { // 初始化自动售货机 VendingMachine vendingMachine; // 添加商品 Product product1 = {"雅诗兰黛肌透修护精华露", 899.00, 5}; vendingMachine.addProduct(product1); Product product2 = {"兰蔻新粉水", 299.00, 10}; vendingMachine.addProduct(product2); Product product3 = {"SKII小灯泡面膜", 129.00, 3}; vendingMachine.addProduct(product3); // 显示商品列表 vendingMachine.showProductList(); // 投币 vendingMachine.insertCoin(100.00); vendingMachine.insertCoin(50.00); // 显示余额 vendingMachine.showBalance(); // 购买商品 vendingMachine.buyProduct(2); // 显示商品列表 vendingMachine.showProductList(); return 0; } ``` 此代码仅作演示用途,实际应用还需要考虑更多的功能和异常情况处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值