c++编程求大神...

2025-01-03 18:31:36
推荐回答(3个)
回答1:

哥给你写了一个:

#include
#include
#include
using namespace std;
const int N=3;
class Store{
char flag;
float price[N];
int num[N];
public:
Store (char c='\0'); //构造函数,(商店标志缺省为'\0',数组清零)
Store (const Store & t); //拷贝构造函数
void setdata(float b[], int c[]);//修改价格和数量(为数组赋值)
void display(); //输出商店标志、商品价格、数量和总价值
int find( float p); //根据价格参数p查找对应商品的数量(若找到与p相等的价格,返回数量;否则显示"Not find! ")
};
Store::Store(char c):flag(c)//default constructor
{
int i=0;
while(i {
price[i]=.0f;
num[i] = 0;
i++;
}
};
//因为没有用到指针和动态内存分配,所以可以不用写拷贝构造函数
//用默认的拷贝构造函数就可以正常工作
Store::Store(const Store& t) //copy constructor
{
flag=t.flag;
for (int i=0;i {
price[i] = t.price[i];
num[i] = t.num[i];
}
}
void Store::setdata( float b[], int c[] )
{
for(int i=0;i {
price[i] = b[i];
num[i] = c[i];
}
}
void Store::display()
{
float sum=0;
cout<<"商店"< for (int i=0;i {
cout<<"商品#"< sum+=price[i]*num[i];
}
cout<<"商品总价值:"<}
int Store::find( float p )
{
for (int i=0;i {
if(fabs(p-price[i])<1e-6) return num[i];
}
cout<<"Not found!"< return 0;
}
//测试函数
int main(void)
{
float price[2][N]={{12, 25.8,14},{42.5,35, 60}};
int num[2][N] ={{100,200,300},{150, 300,450}};
Store A('P'), B('Q');
A.setdata((float*)price,(int *)num);
B.setdata((float *)(price+1),(int *)(num+1));
Store C(A);
A.display();
B.display();
C.display();

cout< cout< return 0;
}

回答2:

你妹的,自己写,谁有工夫帮你搞作业啊

回答3:

累死了,不写