_Phoebe__ 2022-03-15 16:30 采纳率: 96.9%
浏览 22
已结题

只能写成这样了 想知道怎么改

  1. 某公司销售某一商品,允许销售人员在销售时灵活掌握售价(price),现已知当天3个销售人员的销售情况如下:
    销货员号(num) 销货件数(quantity) 销货单价(price)
    101 5 23.5
    102 12 22.5
    103 100 21.5
    (1)定义销货员类CSaler,包含成员函数sale(int x),每次调用该函数,则把销货件数加x;
    (2)编写程序,计算当日此商品的总销售款(sum),以及每件商品的平均售价,要求用静态数据成员和静态成员函数;
    (3)提示:静态成员是为了解决数据共享问题,将总销售款(sum)和售出商品总件数(n)声明为静态数据成员,再定义静态成员函数average(求平均售价);
    (4)编写函数main(),测试并截图运行结果。
    class CSaler{
    int num; //销货员号
    int quantity; //销货件数
    double price; //销货单价
    static double sum; //总销售款
    static int n; //售出商品总件数
    public:
    void sale(int x); //售出商品x件
    static void average(); //求平均售价
    …… //其他成员函数、构造函数……
    };

#include<bits/stdc++.h>
using namespace std;
 
class CSaler{
    int num;        //销货员号
    int quantity;    //销货件数
    double price;  //销货单价
    static double sum;     //总销售款
    static double ave;//平均售价 
    static int n;           //售出商品总件数
public:
    void sale(int x);   //售出商品x件 每次调用该函数,则把销货件数加x
    static void average(); //求平均售价
    void total();
};
void CSaler::sale(int x){
     CSaler(){
         quantity+=x;
     }
     ~CSaler(){
         quantity-=x;
     }
}
double CSaler::sum=0;
double CSaler::ave=0;
void CSaler::total(){
    double val=quantity*price;
    sum+=val;
}
void CSaler::average(){
    ave=sum/n;
}

int main(){
    CSaler saler1,saler2,saler3;
    saler1.num=101;
    saler1.quantity=5;
    saler1.price=23.5;
    saler1.num=102;
    saler1.quantity=12;
    saler1.price=22.5;
    saler1.num=103;
    saler1.quantity=100;
    saler1.price=21.5;
    int CSaler::n+=quantity;
    total();
    average();
    
}
  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-03-15 16:39
    关注

    17到24行你要整构造和析构函数吗?头文件加申明啊
    大概修改如下:

    class CSaler{
        int num;        //销货员号
        int quantity;    //销货件数
        double price;  //销货单价
        static double sum;     //总销售款
        static int n;           //售出商品总件数
    public:
        CSaler() {}
        CSaler(int n,int q,double p) {num = n;quantity = q;price = p;sale(q);total(n,p);}
        void sale(int x);   //售出商品x件 每次调用该函数,则把销货件数加x
        static double average(); //求平均售价
        static void total(int q,double p);
    };
    void CSaler::sale(int x){
        n+=x;
    }
    double CSaler::sum=0;
    int CSaler::n=0;
    
    void CSaler::total(int q,double p)
    {
        sum += q*p;
    }
    
    double CSaler::average()
    {
        return sum/n;
    }
     
    int main(){
        CSaler saler1(101,5,23.5),saler2(102,12,22.5),saler3(103,100,21.5);
        cout<<"平均售价为:"<< CSaler::average()<<endl;
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月15日

悬赏问题

  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?