Скачиваний:
133
Добавлен:
01.05.2014
Размер:
2.7 Кб
Скачать
#include "commodity.h"

#include "string.h"
#include "stdlib.h"
#include "stdio.h"

char commodity_temp_string[100]={0};

Commodity::Commodity(){
	this->code=NULL;
	this->price=NULL;
	this->supplier=NULL;
	this->title=NULL;
    this->count=NULL;
}

Commodity::Commodity(char *t_ , char *c_, char *s_, char *p_, char *z_){
	if(title=t_)
		title=strdup(t_);
	if(code=c_)
		code=strdup(c_);
	if(supplier=s_)
		supplier=strdup(s_);
	if(price=p_)
		price=strdup(p_);
	if(count=z_)
		count=strdup(z_);
}

char *Commodity::getCode(void) const {
	return code;
}

char *Commodity::getPrice(void) const {
	return price;
}

char *Commodity::getSupplier(void) const {
	return supplier;
}

char *Commodity::getTitle(void) const {
	return title;
}

char *Commodity::getCount(void) const {
	return count;
}

void Commodity::setTitle(char *T) {
	if(title)
		free(title);
	if(title=T)
		title=strdup(T);
}

void Commodity::setCode(char *C) {
	if(code)
		free(code);
	if(code=C)
		code=strdup(C);
}

void Commodity::setSupplier(char *S) {
	if(supplier)
		free(supplier);
	if(supplier=S)
		supplier=strdup(S);
}

void Commodity::setPrice(char *P) {
	if(price)
		free(price);
	if(price=P)
		price=strdup(P);
}

void Commodity::setCount(char *Z) {
	if(count)
		free(count);
	if(count=Z){
		count=strdup(Z);
    }
}

Commodity::~Commodity() {
	if(code)
		free(code);
	if(count)
		free(count);
	if(price)
		free(price);
	if(supplier)
		free(supplier);
	if(title)
		free(title);
}

char *Commodity::operator ++(void) {
	unsigned icount;
	if(count){
		icount=atoi(count);
		free(count);
	} else {
		icount=0;
	}
	icount++;
	sprintf(commodity_temp_string,"%d",icount);
	count=strdup(commodity_temp_string);
	return count;
}

char *Commodity::operator --(void) {
	unsigned icount;
	if(count){
		icount=atoi(count);
		free(count);
	} else {
		icount=0;
	}
	if(icount){
		icount--;
		sprintf(commodity_temp_string,"%d",icount);
		count=strdup(commodity_temp_string);
	} else {
		count=NULL;
	}
	return count;
}

char *Commodity::operator +=(unsigned int val) {
	unsigned icount;
	if(count){
		icount=atoi(count);
		free(count);
	} else {
		icount=0;
	}
		icount+=val;
	sprintf(commodity_temp_string,"%d",icount);
	count=strdup(commodity_temp_string);
	return count;
}

char *Commodity::operator -=(unsigned val) {
	unsigned icount;
	if(count){
		icount=atoi(count);
		free(count);
	} else {
		icount=0;
	}
	if(icount-val){
		icount-=val;
		sprintf(commodity_temp_string,"%d",icount);
		count=strdup(commodity_temp_string);
	} else {
		count=NULL;
	}
	return count;
}
Соседние файлы в папке classes