⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 goods.h

📁 一个不错库存管理算法
💻 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 + -