📄 goodstore.cpp
字号:
#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 + -