#include <iostream.h>
//#include <process.h>
//#include <stdlib.h>
//#include <iomanip.h>
#include <string.h>
struct goods{
int code;
char name;
int num;
};
typedef goods ElemType;
struct Lnode{
ElemType data;
Lnode* next;
};
typedef Lnode* Linklist;
int ListLength(Linklist L)
{
Lnode* p=L;
int k=0;
while(p)
{
k++;p=p->next;
}//while
return k;
}
//void Createlist(Linklist &L)
//{
// L=NULL;
//}
void Ordinsert(Linklist &L,ElemType e)
{
Lnode* p=L;
int i=ListLength(p);
if(i==0 )
{
Lnode* node=new Lnode;
node->data=e;
// node->data.code=e.code;
//node->data.name=e.name;
//node->data.num=e.num;
node->next=NULL;
L=node;
}
else if(i==1)
{
Lnode* node=new Lnode;
node->data=e;
node->next=NULL;
L->next=node;
}
else
{
while(p->next && e.code>p->next->data.code)
{
p=p->next;
}
Lnode* node=new Lnode;
node->data=e;
// node->data.code=e.code;
//node->data.name=e.name;
// node->data.num=e.num;
node->next=p->next;
p->next=node;
}
}
///
Lnode* LocateElem(Linklist L,int e)
{
Lnode* p=L;
while(p&&p->data.code!=e) p=p->next;
return p;
}//LocateElem
void main()
{
Linklist list;
list=NULL;
char a='s';
int code;
while(a!='q')
{
cout<<"-------提货: T -------进货: J -------所有货物:A 退出:q"<<endl;
cin>>a;
//cout<<a<<endl;
if(a=='t')
{
cout<<"请输入货物编码 code:";
cin>>code;
Lnode* result= LocateElem(list,code);
cout<<"货物编码 code:" <<result->data.code<<endl;
cout<<"货物名称 name:"<<result->data.name<<endl;
cout<<"货物数量 num:"<<result->data.num<<endl;
cout<<"--提货完毕"<<endl;
}
else if(a=='j')
{
cout<<"请输入货物编码 code:";
int a;
cin>>a;
cout<<"请输入货物名称 name:";
char b;
cin>>b;
cout<<"请输入货物数量 num:";
int c;
cin>>c;
ElemType g={a,b,c};
//g.code=a;
//g.name=b;
// g.num=c;
Ordinsert(list,g);
//cout<<a<<b<<c;
cout<<"--所进货物一入库"<<endl;
}
else if(a=='a')
{
Lnode* p=list;
cout<<" 货物编码 " <<" 货物名称 "<<" 货物数量 "<<endl;
while(p)
{
cout<<" "<<p->data.code<<" "<<p->data.name<<" "<<p->data.num<<endl;
cout<<"-----------------------------------"<<endl;
p=p->next;
}
}
else if(a=='q')
{
break;
}
else
{
cout<<"请选择正确的操作符"<<endl;
}
}
}