📄 goods.h
字号:
#include "string_con.h"
#include <string.h>
#include <stdlib.h>
class Goods{
string name;
int value;
public:
Goods():name(""),value(0){}
Goods(string &na,int va):name(na),value(va){}
Goods(const Goods &g):name(g.name),value(g.value){}
string GetName()const{
return name;
}
int GetValue()const{
return value;
}
void operator=(Goods &v){
name=v.name;
value=v.value;
}
Goods operator+(int cnt){//只有数量相加减才有意义
int x=value+cnt;
Goods temp(name,x);
return temp;
}
Goods operator-(int cnt){
int x=value-cnt;
Goods temp(name,x);
return temp;
}
int operator==(string &na){//只需要判断货物名称
return name==na;
}
int operator!=(string &na){
return name!=na;
}
int operator==(Goods &g){
return name==g.name;
}
int operator!=(Goods &g){
return name!=g.name;
}
friend istream& operator>>(istream& in, Goods &g);
friend ostream& operator<<(ostream& out, Goods &g);
};
istream& operator>>(istream& in, Goods &g){
char digit[20];
int num;
cout<<"货品名称:"; in>>g.name;
do {//容错控制
cout<<"货品数量(输入不超过6位的数字字符,数值>0):"; in>>digit;
if (strlen(digit)>6) cout<<"对不起,数位太长,数据将溢出,请重输;"<<endl;
else {
num=atoi(digit);
if (num>0) {
g.value=num; return in;
}
else cout<<"对不起,数据小于或等于0,请重输;"<<endl;
}
}while(1);
}
ostream& operator<<(ostream& out, Goods &g){
out<<"货品名称:"<<g.name<<" ";
out<<"货品数量:"<<g.value<<endl;
return out;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -