| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 784 人关注过本帖
标题:仓库管理。这个结构体然后那个思路是什么?调用没懂。。
只看楼主 加入收藏
qq67985969
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-9-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
仓库管理。这个结构体然后那个思路是什么?调用没懂。。
#include<stdio.h>
#include<iostream>
using namespace std;
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#define max 32
int ifempty=0;//标志,判断链表是无否为空

struct dlnode    /* 定义双向链表结构体 */
{

     char name[max];      //货物名称  
     int number;           //货物编号
     int price;            //价格
     int counter;        //货物数量
     dlnode  *prior, *next;  // 定义两指针,分别指向其前驱和后继
};                     

dlnode * create(dlnode *L);
dlnode *input(dlnode *L);
dlnode *output(dlnode *L);
dlnode * outnum(dlnode *L);
dlnode * outname(dlnode *L);
dlnode *current(dlnode *L);
void   search(dlnode *L);
void   print(dlnode *L);
void   searchnum(dlnode *L);
void   searchname(dlnode *L);
void   display(dlnode *L) ;
void   shownotenough(dlnode *L);   
void main()
{
   

    int x;
    dlnode *L;
    if(!(L=(dlnode *)malloc(sizeof(dlnode)))) //分配空间
     {
       cout<<endl;
        exit(1);
     }
    create(L);///调用函数,创建头节点
    while(1)
    {////////////////////////主菜单///////////////////////////
        cout<<"              ***********************************\n";
        cout<<"                 1.    货物出库和入库\n";
        cout<<"                 2.     查找货物表\n";   
        cout<<"                 3.    显示仓库货物表\n";
        cout<<"                 4.    显示库存不足一定值的货物信息\n";
        cout<<"                 5.      输出到文件\n";
        cout<<"                 0.        退出\n";
        cout<<"              ************************************\n";
        cout<<"                选择0--4:";
        cin>>x;
        switch(x)
        {
        case 1:current(L);break;//调用入库出库函数
        case 2:search(L);break;//调用查找函数
        case 3:display(L);break;//调用显示输出函数
        case 4:shownotenough(L);break;//调用显示不足一定值的函数
        case 5:print(L);break;//调用打印函数
        case 0:cout<<endl;cout<<"--------------bye bye!-----------------"<<endl;
            getchar();exit(0);//退出程序
        default:printf("\n             Enter erreor!please input 0--5!");  
             getchar();
             cout<<"=======================请输入回车返回主菜单==================="<<endl;getchar();
        
        
        }
    }
}
dlnode  *create(dlnode *L)//创建链表头节点
{
        
        ifempty=0;
     ///////初始化头节点的值////////
        L->next=NULL;L->prior=NULL;
        L->number=L->price=L->counter=0;
        strcpy(L->name," ");   
    return L;
}

void search(dlnode *L) ///查找的主要菜单
{
    int y;
    if(ifempty==0)
    {
        cout<<"没有输入货物!\n";
        getchar();
        cout<<"=======================请按回车继续操作==================="<<endl;getchar();
        return ;
    }
    else
    {
        while(1)
        {
            cout<<"=====================\n";
            cout<<"1.按编号查询\n";
            cout<<"2.按货物名称查询\n";
            cout<<"0.返回主菜单\n";
            cout<<"====================\n";
            cout<<"选择0--2:";
            cin>>y;
            switch(y)
            {
            case 1:searchnum(L);break;//调用按编号查找的函数
            case 2:searchname(L);break;//调用按名称查找的函数
            case 0:return;//返回
            default:cout<<"enter error!Please input 0--2!\n\n";
                  getchar();
                  cout<<"=======================请输入回车返回主菜单==================="<<endl;getchar();cout<<endl<<endl;
            }
        }
    }
}

dlnode * current(dlnode *L)//货物出库入库函数
{
    int y;
    while(1)
    {
        cout<<"========================\n";
        cout<<"     1.货物入库\n";
        cout<<"     2.货物出库\n";
        cout<<"     0.返回主菜单\n";
        cout<<"========================\n";
        cout<<"     选择0--2:";
        cin>>y;
        switch(y)
        {
        case 1:input(L);break;//调用入库函数
        case 2:output(L);break;//调用出库函数
        case 0:return(L);//返回上一层
        default:cout<<"enter error!Please input 0--2!";
            getchar();
            cout<<"=======================请按回车继续操作================="<<endl;getchar();
            cout<<endl<<endl;
        }
    }
}

dlnode *input(dlnode *L)//定义入库函数
{
    dlnode *in,*head;
    head=in=(dlnode *)malloc(sizeof(dlnode));//分配空间
    head=L;

    cout<<"\n请输入货物数据:\n";
    cout<<"编号:";cin>>in->number;
    cout<<"名称:";cin>>in->name;
    cout<<"价格:";cin>>in->price;
    cout<<"数量:";cin>>in->counter;
   
    if(L->next==NULL)   //如果只有头节点,
    {                   //把刚输入的in节点
        L->next=in;     //跟在头节点后面
        L->prior=in;    //
        in->next=L;     //
        in->prior=L;    //
        ifempty++; //ifempty加1
    }
    else
    {                    
      
   
        while((L=L->next)!=head)//如果当前L的下一个节点不是头节点
        {                                
            if(L->number<in->number)//如果输入的数大于L->number,则插到L的前面
            {
                in->next=L;
                in->prior=L->prior;        
                L->prior->next=in;
                L->prior=in;
                ifempty++; //ifempty加1
                return(head);
            }            
        }
        
//输入的编号比其它编号都小,则插到最后个节点,并首尾相连
         head->prior->next=in;
         in->prior=head->prior;
         head->prior=in;
         in->next=head;
         ifempty++; //ifempty加1
    }         
    return head;
}

dlnode *output(dlnode *L)//出库的函数
{
    int y;
    dlnode *head=L;
    if(ifempty==0)//检测是否有货物输入
    {
        cout<<"没有货物输入系统\n";
        getchar();
        cout<<"=======================请按回车继续操作================="<<endl;getchar();
        return(head);
    }   
    while(1)
    {
        cout<<"=============\n";
        cout<<"1.按编号出库\n";
        cout<<"2.按名称出库\n";
        cout<<"0.返回上一层\n";
        cout<<"==============\n";
        cout<<"选择0--2:";cin>>y;
        switch(y)
        {
        case 1:outnum(L);break;//调用按编号出库函数
        case 2:outname(L);break;//调用按名称出库函数
        case 0:return(L);
        default:cout<<"enter error!Please input 0--2!";
            getchar();
            cout<<"=======================请按回车继续操作================="<<endl;getchar();cout<<endl<<endl;
        }
    }
}        
dlnode *outnum(dlnode *L)//按编号出库函数
{         
    int num;
    dlnode *head=L;

    cout<<"请输入出库货物的编号:";
    cin>>num;
    while((L=L->next)!=head)
    {//如果找到就删除节点
        if(L->number==num)
        {
            L->prior->next=L->next;
            L->next->prior=L->prior;
            ifempty--; //ifempty减1   
        cout<<"编号为"<<num<<"的货物成功出库\n";   
        getchar();
        cout<<"=======================请按回车继续操作==================="<<endl;getchar();
        return head;        
        }   
    }
    cout<<"没有此编号的货物,请查看是否还有货物。\n\n";
    getchar();
    cout<<"=======================请按回车继续操作================="<<endl;getchar();
    return (head);
}
            
dlnode *outname(dlnode *L)//按名称出库函数
{
    char na[32];
    dlnode *head=L;

    cout<<"请输入出库货物的名称:";
    cin>>na;
    while((L=L->next)!=head)
    {//如果找到就删除节点
        if(strcmp(L->name,na)==0)
        {
            L->prior->next=L->next;
            L->next->prior=L->prior;
            ifempty--; //ifempty减1            
        cout<<"名称为%s的货物成功出库",na;
        getchar();
        cout<<"=======================请按回车继续操作================="<<endl;getchar();
        return (head);
        }
    }
    cout<<"没有此名称的货物,请查看是否还有货物。\n\n";
    getchar();getchar();
    return(head);
}        



void searchnum(dlnode *L)///按编号查找的函数
{
    int num,flag=0;//flag为是否找到的标志
    dlnode *head=L;
    if(ifempty==0)
    {
        cout<<"没有货物被输入\n";
            getchar();
            cout<<"=======================请输入回车返回主菜单==================="<<endl;getchar();
            return;
    }
    cout<<"输入你要查找的货物编号:\n";
    cin>>num;
    while((L=L->next)!=head)
    {
        if(L->number==num)
        {   flag=1;//flag为1时表示找到
            cout<<"找到指定编号货物 \n";      
            cout<<"\n编号:"<<L->number<<endl;
            cout<<"名称:"<<L->name<<endl ;
            cout<<"价格"<<L->price<<endl;
            cout<<"数量:"<<L->counter<<endl<<endl;                  
        }      
    }
    if(flag==0)//flag为0时表示没有找到
        cout<<"没有找到指定编号货物,请查看是否还有货物。\n";
    getchar();
    cout<<"=======================请按回车继续操作================="<<endl;getchar();
}

void searchname(dlnode *L)//按名称查找的函数
{
    int flag=0;//flag为是否找到的标志
    char na[32];
    dlnode *head=L;
    if(ifempty==0)
    {
        cout<<"没有货物被输入\n";
            getchar();
            cout<<"=======================请按回车继续操作==================="<<endl;getchar();
            return;
    }
    printf("输入你要查找的货物名称\n");
    cin>>na;
    while((L=L->next)!=head)
    {
        if(strcmp(L->name,na)==0)
        {   flag=1;//flag为1时表示找到
            cout<<"找到指定名称货物 \n";      
            cout<<"\n编号:"<<L->number<<endl;
            cout<<"名称:"<<L->name<<endl ;
            cout<<"价格"<<L->price<<endl;
            cout<<"数量:"<<L->counter<<endl<<endl;                  
        }        
    }

    if(flag==0)//flag为0时表示没有找到
      cout<<"没有找到指定编号货物,请查看是否还有货物。\n\n";
    getchar();
    cout<<"=======================请按回车继续操作================="<<endl;getchar();
}
   

void display(dlnode *L)//显示货物清单
{
    dlnode *head=L;
    if(ifempty==0)
    {
        cout<<"没有货物可显示\n";
        getchar();getchar();
            return;
    }
    L=L->next;
    do
    {        
         cout<<"\n编号:"<<L->number<<endl;
         cout<<"名称:"<<L->name<<endl ;
         cout<<"价格"<<L->price<<endl;
         cout<<"数量:"<<L->counter<<endl<<endl;
    }while((L=L->next)!=head);
    getchar();
    cout<<"=======================请按回车继续操作================="<<endl;getchar();               
}




void shownotenough(dlnode *L)
{
   
    int flag=0;
    dlnode *head=L;
    if(ifempty==0)
    {
        cout<<"没有货物被输入\n";
            getchar();
            cout<<"=======================请输入回车返回主菜单==================="<<endl;getchar();
            return;
    }
    int toShow;
    cout<<"请输入货物数量:";
    cin>>toShow;
    while((L=L->next)!=head)
    {   
        if(toShow>L->counter)
        {
            cout<<"货物数量不足"<<toShow<<"的货物信息:"<<endl;
            cout<<"\n编号:"<<L->number<<endl;
            cout<<"名称:"<<L->name<<endl ;
            cout<<"价格"<<L->price<<endl;
            cout<<"数量:"<<L->counter<<endl<<endl;
            flag=1;
        }
    }
    if(flag==0)
        cout<<"没有数量不足"<<toShow<<"的货物!"<<endl;
       getchar();
       cout<<"=======================请输入回车返回主菜单==================="<<endl; getchar();
}


void print(dlnode *L)
{
    dlnode *head=L;
    L=L->next;
    char filename[max];
    FILE *out;
    if(ifempty==0)
    {
        cout<<"没有货物可输出\n";
        getchar();getchar();
            return;
    }
    cout<<"请输入文件名称:";
    cin>>filename;
    if((out=fopen(filename,"w"))==NULL)
    {
        cin>>"打开文件失败!\n";
        getchar();
        cout<<"=======================请按回车继续操作================="<<endl;getchar();
        return;
    }
    do{
       fprintf(out,"编号:%d\n名称:%s\n数量:%d\n\n",L->number,L->name,L->counter);
       }while((L=L->next)!=head);
    cout<<"输出成功\n";getchar();
    cout<<"=======================请按回车继续操作================="<<endl;getchar();
    fclose(out);
}
搜索更多相关主题的帖子: 价格 counter 仓库管理 include number 
2011-12-21 18:49
qq67985969
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-9-21
收藏
得分:0 
大侠们啊。尤其是那个head跟L 的关系啊 。。
2011-12-21 19:54
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:10 
这是比较规范的代码。优点如下:
1、采用数据bus操作,函数可重入性增强;
2、方便对外接口开放;

head就是一个临时变量,没有什么特殊意义。
我更喜欢用
void print(void *L)
{
    dlnode *head=(dlnode *)L;
}
这种方式便于数据结构隐藏及封闭。
2011-12-22 12:36
liao06550107
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:111
专家分:696
注 册:2011-10-2
收藏
得分:10 
回复 3楼 silent_world
该代码中head保存的是L链表的头结点,而L作为指针遍历整个双向循环链表。
我觉得该函数设计有两大问题:
一是:链表设计用个单链表或单循环就行,没必要运用双向循环;
二是:函数的设计,指针传值和函数返回值混合使用,还不如直接用引用来传值,也就不会出现head和L之间的关系表示不清。

听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2011-12-22 21:18
liao06550107
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:111
专家分:696
注 册:2011-10-2
收藏
得分:0 
程序代码:
//仓库管理(用单链表结构)
#include<stdio.h>
#include<iostream>
using namespace std;
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#define MAX 32

typedef int Status;
#define OK 1
#define ERROR 0

typedef struct LNode    /* 定义单链表结构体 */
{

     char name[MAX];      //货物名称 
     int number;           //货物编号
     int price;            //价格
     int counter;        //货物数量
     LNode  *next; 
}LNode,*Link;  

typedef struct LinkList
{
    Link head, tail;  //表头和表尾指针
    int len; //链表长度
}LinkList;                   

Status InitList(LinkList &L);
Status Input(LinkList &L);
Status Output(LinkList &L);
Status OutNum(LinkList &L);
Status OutName(LinkList &L);
Status Current(LinkList &L);
void   Search(LinkList L);
void   Print(LinkList L);
Status   SearchNum(LinkList L);
Status   SearchName(LinkList L);
void   Display(LinkList L) ;
void   ShowNotEnough(LinkList L);
  
int main(void)
{
   

    int x;
    LinkList L;
    InitList(L);//调用函数,创建头节点
    while(1)
    {//主菜单显示的内容
        cout<<"              ***********************************\n";
        cout<<"                 1.    货物出库和入库\n";
        cout<<"                 2.     查找货物表\n";   
        cout<<"                 3.    显示仓库货物表\n";
        cout<<"                 4.    显示库存不足一定值的货物信息\n";
        cout<<"                 5.      输出到文件\n";
        cout<<"                 0.        退出\n";
        cout<<"              ************************************\n";
        cout<<"                选择0--4:";
        cin>>x; //输入所选择项目的序号
        switch(x)
        {
        case 1:Current(L);break;//调用入库出库函数
        case 2:Search(L);break;//调用查找函数
        case 3:Display(L);break;//调用显示输出函数
        case 4:ShowNotEnough(L);break;//调用显示不足一定值的函数
        case 5:Print(L);break;//调用打印函数
        case 0:cout<<endl;cout<<"--------------bye bye!-----------------"<<endl;
            getchar();exit(0);//退出程序
        default:printf("\n             Enter erreor!please input 0--5!"); 
             getchar();
             cout<<"=======================请输入回车返回主菜单==================="<<endl;getchar();
       
       
        }
    }
    return 0;
}


Status InitList(LinkList &L)//初始化创建链表头节点
{           
        Link p = (Link)malloc(sizeof(LNode));
        if( p )
        {
            p->counter = p->number = p->price = 0;
            strcpy(p->name, " ");
            p->next = NULL;
            L.head = L.tail = p;
            L.len = 0;
            return OK;
        }
        else
            return ERROR;
}

void Search(LinkList L) //查找的主要菜单
{   
    int y;
    if( L.len == 0 )
    {
        cout<<"没有输入货物!\n";
        getchar(); //该函数吃掉的是主菜单中所选项即输入的2后面的回车符号
        cout<<"=======================请按回车继续操作==================="<<endl;
        getchar(); //该函数作用是使屏幕暂停同时吃掉你输入的回车符号
        return ;
    }
    else
    {
        while(1)
        {
            cout<<"=====================\n";
            cout<<"1.按编号查询\n";
            cout<<"2.按货物名称查询\n";
            cout<<"0.返回主菜单\n";
            cout<<"====================\n";
            cout<<"选择0--2:";
            cin>>y;
            switch(y)
            {
            case 1:SearchNum(L);break;//调用按编号查找的函数
            case 2:SearchName(L);break;//调用按名称查找的函数
            case 0:return;//返回
            default:cout<<"enter error!Please input 0--2!\n\n";
                  getchar(); //吃掉前面所输入选择序号后面的回车符
                  cout<<"=======================请输入回车返回主菜单==================="<<endl;
                  getchar(); //同上
                  cout<<endl<<endl;
            }
        }
    }
}

Status  Current(LinkList &L)//货物出库入库函数
{   
    int y;
    while(1)
    {
        cout<<"========================\n";
        cout<<"     1.货物入库\n";
        cout<<"     2.货物出库\n";
        cout<<"     0.返回主菜单\n";
        cout<<"========================\n";
        cout<<"     选择0--2:";
        cin>>y;
        switch(y)
        {
        case 1:Input(L);break;//调用入库函数
        case 2:Output(L);break;//调用出库函数
        case 0:return ERROR ;//返回上一层
        default:cout<<"enter error!Please input 0--2!";
            getchar();
            cout<<"=======================请按回车继续操作================="<<endl;
            getchar();
            cout<<endl<<endl;
        }
    }
}

Status Input(LinkList &L)//定义入库函数
{   
    Link p, q;
    Link s = (Link)malloc(sizeof(LNode));//分配空间
    if(!s)
    {
        return ERROR;
    }
   
    p = q = L.head;
    while( p && p->number < s->number )
    {
        q = p;
        p = p->next;   
    }
    cout<<"\n请输入货物数据:\n";
    cout<<"编号:";cin>>s->number;
    cout<<"名称:";cin>>s->name;
    cout<<"价格:";cin>>s->price;
    cout<<"数量:";cin>>s->counter;
    s->next = q->next ;
    q->next = s;
    if( q == L.tail )
        L.tail = s;
    L.len++;
    return OK;
}

Status Output(LinkList &L)//出库的函数
{
    int y;
    if( L.len == 0 )//检测是否有货物输入
    {
        cout<<"没有货物输入系统\n";
        getchar();
        cout<<"=======================请按回车继续操作================="<<endl;getchar();
        return ERROR;
    }   
    while(1)
    {
        cout<<"=============\n";
        cout<<"1.按编号出库\n";
        cout<<"2.按名称出库\n";
        cout<<"0.返回上一层\n";
        cout<<"==============\n";
        cout<<"选择0--2:";cin>>y;
        switch(y)
        {
        case 1:OutNum(L);break;//调用按编号出库函数
        case 2:OutName(L);break;//调用按名称出库函数
        case 0:return ERROR;
        default:cout<<"enter error!Please input 0--2!";
            getchar();
            cout<<"=======================请按回车继续操作================="<<endl;getchar();cout<<endl<<endl;
        }
    }
}       
Status OutNum(LinkList &L)//按编号出库函数
{         
    int num;
    Link p, q;

    cout<<"请输入出库货物的编号:";
    cin>>num;

     p = q = L.head;
    while( p && p->number <= q->number )
    {
        if( p->number == q->number )
        {
            q->next = p->next;
            cout<<"出库的货物编号为:"<<p->number<<endl;
            free(p);
            if(p == L.tail )
                L.tail = q;
            L.len--;
            return OK;
        }
        q = p;
        p = p->next;
    }
     return ERROR;
}
           
Status OutName(LinkList &L)//按名称出库函数
{
    char na[32];
    Link p, q;

    cout<<"请输入出库货物的名称:";
    cin>>na;

    p = q =L.head ;
    while(p)
    {
        if(strcmp(p->name,na)==0)
        {
           q->next = p->next;
           cout<<"出库的货物名称为:"<<p->name<<endl;
           free(p);
           return ERROR;
        }
        q = p;
        p = p->next;
    }
    return ERROR;
}        



Status SearchNum(LinkList L)///按编号查找的函数
{
    int num;
    Link p;
    if( L.len == 0 )
    {
        cout<<"没有货物被输入\n";
            getchar();
            cout<<"=======================请输入回车返回主菜单==================="<<endl;
            getchar();
            return ERROR;
    }
    cout<<"输入你要查找的货物编号:\n";
    cin>>num;

    p = L.tail;
    while(p)
    {
        if( p->number == num )
        {
            cout<<"找到指定编号货物 \n";      
            cout<<"\n编号:"<<p->number<<endl;
            cout<<"名称:"<<p->name<<endl ;
            cout<<"价格"<<p->price<<endl;
            cout<<"数量:"<<p->counter<<endl<<endl;
            return OK;
        }      
    }
    cout<<"没有找到指定编号货物,请查看是否还有货物。\n";
    getchar();
    cout<<"=======================请按回车继续操作================="<<endl;
    getchar();
    return ERROR;
}

Status SearchName(LinkList L)//按名称查找的函数
{
    char na[32];
    if( L.len == 0 )
    {
            cout<<"没有货物被输入\n";
            getchar();
            cout<<"=======================请按回车继续操作==================="<<endl;
            getchar();
            return ERROR;
    }
    printf("输入你要查找的货物名称\n");
    cin>>na;

    Link p = L.head ;
    while(p)
    {
        if(strcmp(p->name,na)==0)
        { 
            cout<<"找到指定名称货物 \n";      
            cout<<"\n编号:"<<p->number<<endl;
            cout<<"名称:"<<p->name<<endl ;
            cout<<"价格"<<p->price<<endl;
            cout<<"数量:"<<p->counter<<endl<<endl;
            return OK;
        }
        p = p->next ;
    }
    cout<<"没有找到指定编号货物,请查看是否还有货物。\n\n";
    getchar();
    cout<<"=======================请按回车继续操作================="<<endl;
    getchar();
    return ERROR;
}
    

void Display(LinkList L)//显示货物清单
{
    if( L.len == 0 )
    {
        cout<<"没有货物可显示\n";
        getchar();
        getchar();
        return;
    }

    Link p = L.head->next ;
    while(p)
    {       
         cout<<"\n编号:"<<p->number<<endl;
         cout<<"名称:"<<p->name<<endl ;
         cout<<"价格"<<p->price<<endl;
         cout<<"数量:"<<p->counter<<endl<<endl;
         p = p->next ;
    }
    getchar();
    cout<<"=======================请按回车继续操作================="<<endl;
    getchar();               
}




void ShowNotEnough(LinkList L)
{
   
    if( L.len == 0 )
    {
            cout<<"没有货物被输入\n";
            getchar();
            cout<<"=======================请输入回车返回主菜单==================="<<endl;
            getchar();
            return;
    }
    int toShow;
    cout<<"请输入货物数量:";
    cin>>toShow;

    Link p = L.head->next;
    while(p)
    {   
        if(toShow > p->counter)
        {
            cout<<"货物数量不足"<<toShow<<"的货物信息:"<<endl;
            cout<<"\n编号:"<<p->number<<endl;
            cout<<"名称:"<<p->name<<endl ;
            cout<<"价格"<<p->price<<endl;
            cout<<"数量:"<<p->counter<<endl<<endl;
            return;
        }
        p = p->next;
    }
       cout<<"没有数量不足"<<toShow<<"的货物!"<<endl;
       getchar();
       cout<<"=======================请输入回车返回主菜单==================="<<endl;
       getchar();
}


void Print(LinkList L)
{
    Link p;
    p = L.head->next;
    char filename[MAX];
    FILE *out;
    if(L.len == 0)
    {
        cout<<"没有货物可输出\n";
        getchar();getchar();
            return;
    }
    cout<<"请输入文件名称:";
    cin>>filename;
    if((out=fopen(filename,"w"))==NULL)
    {
        cin>>"打开文件失败!\n";
        getchar();
        cout<<"=======================请按回车继续操作================="<<endl;
        getchar();
        return;
    }
    while(p)
    {
       fprintf(out,"编号:%d\n名称:%s\n数量:%d\n\n",p->number,p->name,p->counter);
       p = p->next;
    }
    cout<<"输出成功\n";getchar();
    cout<<"=======================请按回车继续操作================="<<endl;
    getchar();
    fclose(out);
}


[ 本帖最后由 liao06550107 于 2011-12-23 14:59 编辑 ]

听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2011-12-22 23:18
快速回复:仓库管理。这个结构体然后那个思路是什么?调用没懂。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042592 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved