C++Test

#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;
  }
 }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值