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

📄 goodstore.cpp

📁 货物的管理
💻 CPP
📖 第 1 页 / 共 3 页
字号:
#include<iostream>
#include<fstream>
#include<string.h>

#define maxSize 20

using namespace std;

struct Good               //用来存放货物信息的结构体数据类型
{
	char num[maxSize];
	char name[maxSize];
	char amount[maxSize];
    char loc[maxSize];
};  

struct LinkNode
{
    Good info;              //数据域
    LinkNode * link;       //链指针域
};

int n;

LinkNode * p;
LinkNode * first;

ofstream outfile;
ifstream infile;

int movebynum(char a[maxSize], char b[maxSize], LinkNode * p, LinkNode * first){
	                 //根据货物的num来移动货物,改变货物在仓库中存放的位置
    ofstream outfile("Inventory management forms.txt");
    p=first->link;
	int i;
	while(p!=first){
		if(strcmp(p->info.num,a)==0){
			cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
            strcpy(p->info.loc,b);
			cout<<"the result is:"<<endl;
			cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			i=0;
		}
        p=p->link; 
		}
    outfile<<n<<endl;
    p=first->link;
    while(p!=first){
        outfile<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
		p=p->link;
	  }
	if(i==0)
	    return 1;
	else
		return 0;
}

int movebyname(char a[maxSize], char b[maxSize], LinkNode * p, LinkNode * first){
	                  //根据货物的name来移动货物,改变货物在仓库中存放的位置
    ofstream outfile("Inventory management forms.txt");
	p=first->link;
	int i;
	while(p!=first){
		if(strcmp(p->info.name,a)==0){
		   cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
           strcpy(p->info.loc,b);
		   cout<<"the result is:"<<endl;
		   cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
		   i=0;
		}
        p=p->link;
	}
    outfile<<n<<endl;
    p=first->link;
    while(p!=first){
        outfile<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
		p=p->link;
	  }
	if(i==0)
	    return 1;
	else
		return 0;
}

int movebyamount(char a[maxSize], char b[maxSize], LinkNode * p, LinkNode * first){
	                   //根据货物的amount来移动货物,改变货物在仓库中存放的位置
    ofstream outfile("Inventory management forms.txt");
	p=first->link;
	int i;
	while(p!=first){
		if(strcmp(p->info.amount,a)==0){
		   cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
           strcpy(p->info.loc,b);
		   cout<<"the result is:"<<endl;
		   cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
           i=0;
		}
        p=p->link;
	}
    outfile<<n<<endl;
    p=first->link;
    while(p!=first){
        outfile<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
		p=p->link;
	  }
	if(i==0)
	    return 1;
	else
		return 0;
}

int movebyloc(char a[maxSize], char b[maxSize], LinkNode * p, LinkNode * first){
	                    //根据货物的loc来移动货物,改变货物在仓库中存放的位置
    ofstream outfile("Inventory management forms.txt");
	p=first->link;
	int i;
	while(p!=first){
		if(strcmp(p->info.loc,a)==0){
		   cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
           strcpy(p->info.loc,b);
		   cout<<"the result is:"<<endl;
		   cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
		   i=0;
		}
        p=p->link;
	}
    outfile<<n<<endl;
    p=first->link;
    while(p!=first){
        outfile<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
		p=p->link;
	  }
	if(i==0)
	    return 1;
	else
		return 0;
}

int findbynum(char a[maxSize], LinkNode * p, LinkNode * first){
	       //根据所给定的num来查找相应的货物的信息
    p=first->link;
	int i;
	while(p!=first){
		if(strcmp(p->info.num,a)==0){
			cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			i=0;
		}
        p=p->link; 
		}
	if(i==0)
	    return 1;
	else
		return 0;
}

int findbyname(char a[maxSize], LinkNode * p, LinkNode * first){
	       //根据所给定的name来查找相应的货物的信息
    p=first->link;
	int i;
	while(p!=first){
		if(strcmp(p->info.name,a)==0){
			cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			i=0;
		}
        p=p->link; 
		}
	if(i==0)
	    return 1;
	else
		return 0;
}

int findbyamount(char a[maxSize], LinkNode * p, LinkNode * first){
	       //根据所给定的amount来查找相应的货物的信息
    p=first->link;
	int i;
	while(p!=first){
		if(strcmp(p->info.amount,a)==0){
			cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			i=0;
		}
        p=p->link; 
		}
	if(i==0)
	    return 1;
	else
		return 0;
}

int findbyloc(char a[maxSize], LinkNode * p, LinkNode * first){
	       //根据所给定的loc来查找相应的货物的信息
    p=first->link;
	int i;
	while(p!=first){
		if(strcmp(p->info.loc,a)==0){
			cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			i=0;
		}
        p=p->link; 
		}
	if(i==0)
	    return 1;
	else
		return 0;
}

int deletebynum(char a[maxSize], LinkNode * p, LinkNode * first){
	     //将具有所给定的num的货物移出仓库,并删除它(们)的相应信息
    ofstream outfile("Inventory management forms.txt");
    p=first->link;
	int i;
    LinkNode * c;
    LinkNode * q;
	while(p!=first){
		if(strcmp(p->info.num,a)==0){
			if(p==first->link){
			   cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			   q=p;
			   first->link=p->link;
			   p=p->link;
			   delete q;
			}
			else{
               cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			   q=p;
			   c->link=q->link;
			   p=p->link;
			   delete q;
			}
			i=0;
			n--;
		}
		else{
		    c=p;
            p=p->link;
		}  
	}
	outfile<<n<<endl;
    p=first->link;
    while(p!=first){
        outfile<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
		p=p->link;
	  }
	if(i==0)
	    return 1;
	else
		return 0;
}

int deletebyname(char a[maxSize], LinkNode * p, LinkNode * first){
	     //将具有所给定的name的货物移出仓库,并删除它(们)的相应信息
    ofstream outfile("Inventory management forms.txt");
    p=first->link;
	int i;
    LinkNode * c;
    LinkNode * q;
	while(p!=first){
		if(strcmp(p->info.name,a)==0){
			if(p==first->link){
			   cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			   q=p;
			   first->link=p->link;
			   p=p->link;
			   delete q;
			}
			else{
               cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			   q=p;
			   c->link=q->link;
			   p=p->link;
			   delete q;
			}
			i=0;
			n--;
		}
		else{
		    c=p;
            p=p->link;
		}  
	}
	outfile<<n<<endl;
    p=first->link;
    while(p!=first){
        outfile<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
		p=p->link;
	  }
	if(i==0)
	    return 1;
	else
		return 0;
}

int deletebyamount(char a[maxSize], LinkNode * p, LinkNode * first){
	     //将具有所给定的amount的货物移出仓库,并删除它(们)的相应信息
    ofstream outfile("Inventory management forms.txt");
    p=first->link;
	int i;
    LinkNode * c;
    LinkNode * q;
	while(p!=first){
		if(strcmp(p->info.amount,a)==0){
			if(p==first->link){
			   cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			   q=p;
			   first->link=p->link;
			   p=p->link;
			   delete q;
			}
			else{
               cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			   q=p;
			   c->link=q->link;
			   p=p->link;
			   delete q;
			}
			i=0;
			n--;
		}
		else{
		    c=p;
            p=p->link;
		}  
		}
	outfile<<n<<endl;
    p=first->link;
    while(p!=first){
        outfile<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
		p=p->link;
	  }
	if(i==0)
	    return 1;
	else
		return 0;
}

int deletebyloc(char a[maxSize], LinkNode * p, LinkNode * first){
	     //将具有所给定的loc的货物移出仓库,并删除它(们)的相应信息
    ofstream outfile("Inventory management forms.txt");
    p=first->link;
	int i;
    LinkNode * c;
    LinkNode * q;
	while(p!=first){
		if(strcmp(p->info.loc,a)==0){
			if(p==first->link){
			   cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			   q=p;
			   first->link=p->link;
			   p=p->link;
			   delete q;
			}
			else{
               cout<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
			   q=p;
			   c->link=q->link;
			   p=p->link;
			   delete q;
			}
			i=0;
			n--;
		}
		else{
		    c=p;
            p=p->link;
		}  
		}
	outfile<<n<<endl;
    p=first->link;
    while(p!=first){
        outfile<<p->info.num<<" "<<p->info.name<<" "<<p->info.amount<<" "<<p->info.loc<<endl;
		p=p->link;
	  }
	if(i==0)
	    return 1;
	else
		return 0;
}

int addbynum(char a[maxSize], char b[maxSize], char c[maxSize],char d[maxSize],
			     char e[maxSize], LinkNode * p, LinkNode * first){
	   //将具有所给定的相应信息且仓库中并不含有的货物放入仓库中,并将它
	//放在有给定num值的仓库管理表格文本中第一个出现的货物的前面
    ofstream outfile("Inventory management forms.txt");
    p=first->link;
	int i;
    LinkNode * k;
    LinkNode * q;
	while(p!=first){
			if(strcmp(p->info.name,b)==0){
				cout<<"wrong!!!"<<endl;
				cout<<"the good of the name is exist!!!"<<endl;
				i=1;
				goto label;
			}
			if(strcmp(p->info.num,a)==0){
				cout<<"wrong!!!"<<endl;
				cout<<"the good of the num is exist!!!"<<endl;
				i=1;
				goto label;
			}
		p=p->link;
	}
    p=first->link;
    while(p!=first){
        if(strcmp(p->info.num,e)==0){
          if(p==first->link){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -