| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 619 人关注过本帖
标题:求大神,编译没有错误,链接有一处错误!不知该如何查找?
只看楼主 加入收藏
梦幻之林夕
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-12-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
求大神,编译没有错误,链接有一处错误!不知该如何查找?
仓库管理系统支持入库,出库,库存查询以及打印!自定设置库存警戒值!
#include<stdio.h>
#include<string.h>
#define N 100
struct date
{
    int year;
    int month;
    int day;
};
struct product
{char p_name[20];
long int p_num;

struct date   in_date;
long int min_s;
long int max_s;
long int real_s;
struct product*next;
}pro[N];
int mn();
void menu();
write();
search();
searchmenu();
search_by_name();
search_by_date();
search_by_num();

insert();
rewrite();
lend();
sort();
statistics();
save(int n);
load();
input(int i);
printf_date(int i);
printf_back();
int mn()
{
    void menu();
    FILE*fp;
    fp=fopen("货物清单.txt","wb");
    fclose(fp);
        menu();
}
void menu()
{int m,n;
    do
    {
        printf("\t\t**************MENU**************\n");
            printf("\t\t**********欢迎来到仓库管理系统*******\n");
            printf("\t\t         1:商品入库                 *\n");
            printf("\t\t         2:商品出库                 *\n");
            printf("\t\t         3:库存查询                 *\n");
            printf("\t\t         4:信息修改                 *\n");
            printf("\t\t         5:排序                     *\n");
            printf("\t\t         6:统计                     *\n");
            printf("\t\t         7:退出                     *\n");
            printf("choice your number(1-7):[ ]\b\b");
            scanf("%d",&n);
            if(n<1||n>7)
            {
                m=1;
                getchar();
    }
            else m=0;
    }
    while(m==1);
    switch(n)
    {
    case 1:write();break;   
    case 2:lead();break;     
    case 3:search();break;
    case 4:rewrite();break;
    case 5:sort();break;
    case 6:statistics();break;
    case 7:exit(0);
    }
}
/***************输入函数****************/

input(int i)
 {
    printf("请输入以下信息,按TAB键分开:\n名称    编号        入库日 期        最小库存    实际库存   最大库存\n");
    scanf("%s %d  %d.%d.%d %d %d %d",&pro[i].p_name,&pro[i].p_num,&pro[i].in_date.year,&pro[i].in_date.month,&pro[i].in_date.day,&pro[i].min_s,&pro[i].real_s,&pro[i].max_s); }
/***************打印函数**********************/
main()
{
    puts("\n\n\n\t\t----------欢迎使用仓库管理系统-----");
    puts("\t\t|MAME: wangyifan                |");
    puts("\n\t\t按任意键继续\n\n\n\n\n\n");
    getch();
    menu();
}
write()
{int i,n,k;
printf("\n\n\t提示:请确定这是你第一次录入信息,因为之前保存的数据将被删除\n\n");
printf("\t\t\t是否继续!\n\n\t\t\t0*****是\n\n\t\t\t其他******否[]\b\b");
scanf("%d",&k);
if(k!=0)printf_back();
printf("\n需要录入商品数量(0-%d)?:",N-1);
scanf("%d",&n);
printf("\n现在输入信息\n\n");
for(i=0;i<n;i++)
{printf("\n现在输入第 %d个商品的信息:\n",i+1);
input(i);
}
if(i!=0)save(n);
printf_back();
}
search()
{
    searchmenu();
}
searchmenu()

{int n,w2;
do
{
    puts("\n\t\t**************查询目录**************\n\n");
    puts("\t\t\t1.以名称查询");
    puts("\t\t\t2.以日期查询");
    puts("\t\t\t3.以警戒值查询");
    puts("\t\t\t4.返回");
    puts("\n\n\t\t*************************************\n");
    printf("选择命令[1-4]:[]\b\b");
    scanf("%d",&n);
    if(n<1||n>4)
    {w2=1;getchar();}
    else w2=0;
}while(w2==1);
switch(n)
{case 1:search_by_name();break;
case 2:search_by_date();break;
case 3:search_by_num();break;
case 4:getch();menu();
}
}
/******************以名称查询函数***************/

search_by_name()
{int j,n,m=0;char a[20];
n=load();
printf("\n输入你所查询信息的名称!\n name:");
scanf("%s",a);
for(j=0;j<n;j++)
 if(strcmp(a,pro[j].p_name)==1)
 {m++;
 printf_data(j);
 }
 printf("\n有%d种物资与查询相匹配!",m);
 getch();
 menu();
}
/**********************************以日期查询函数************/
struct search_date
{int year;
int month;
int day;
}s;
search_by_date()
{int j,n,m=0;
n=load();
printf("\n输入你所查询信息的日期!\ndate:");
scanf("%d%d%d",&s.year,&s.month,&s.day);
for(j=0;j<n;j++)
if((s.year==pro[j].in_date.year)&&(s.month==pro[j].in_date.month)&&(s.day==pro[j].in_date.day))
{m++;
printf_data(j);
}
printf("\n有%d种商品与查询相匹配!",m);
getch();
menu();
}
/*********************以警戒值查询函数*********************/
search_by_num()
{
    int j,n,m=0;
    long int num;
    n=load();
    printf("/n请输入库存警戒值:[   ]\b\b\b\b\b\b");
    scanf("%d",&num);
    for(j=0;j<n;j++)
        if(pro[j].real_s<num)
        {
            m++;
            printf_data(j);

        }
        printf("/n有%d种商品与查询相匹配!",m);
        getch();
        menu();
}
/**********************商品出库结构体*****************/
struct one_pro
{char p_name[20];
long int p_num;
long int total;
struct date one_date;
struct one_pro*next;
}take;
/********************商品入库函数*************/
insert()
{int n,c;
n=load();
puts("\n请输入相关信息:\n");
do
{input(n);
printf_data(n);
printf("\n\n是否确定输入\n1)是\n2)从新输入\n其他)返回[]\b\b");
scanf("%d",&c);
if(c==1)
{
    save(n+1);printf_back();
}
else if(c!=2)menu();
}while(c==2);
}
/****************信息更改函数********************/
rewrite()
{char p_name[20];
long int p_num;
int m,n,j,k=0;
n=load();
do
{
    puts("\n要更改商品的信息:\n名称 编号");
    scanf("%s%1d%s",&p_name,&p_num);
    printf("\n\n\n\n\t\t\t是否继续!\n\n\t\t\t0******是\n\n\n\t\t\t1*****退出\n\n\t\t\t其它*****重新输入[]\b\b");
    scanf("%d",&m);
    if (m==1)
        printf_back();
    else if(m==0)
        k=1;
}
while(k!=1);
for(j=0;j<n;j++)
if((strcmp(p_name,pro[j].p_name)==0)&&(p_num=pro[j].p_num)==0)
{puts("\n请重新输入信息\n");
input(j);
save(n);
printf_back();
}
puts("未找到\n按任意键返回!");
getch();
menu();
}
   
lend()
 {
 int j,n,k=0;
 n=load();
 printf("\n请输入你需要商品内容的相关信息!");
 printf("\n名称\t编号\t出库日期\t出库数量\n");
scanf("%s\t%s\t%d.%d.%d\t%d",&take.p_name,&take.one_date.year,&take.one_date.month,&take.one_date.day,&take.total);
  for(j=0;j<n;j++)
if((strcmp(take.p_name,pro[j].p_name)==0)&&(take.one_date.year==pro[j].in_date.year)&&(take.one_date.month==pro[j].in_date.month)&&(take.one_date.day==pro[j].in_date.day)&&(take.total<=pro[j].real_s))
{    pro[j].real_s=take.total;
   printf_data(j);
   k=1;  
}
  save(n);
  printf_back();
 }
/*************打印***********/
printf()
{int i,n;
    n=load();
    for(i=0;i<n;i++)
    printf_data(i);
    puts("\n\n\t\t\t任意键返回");
    getch();  
    menu();
}
/*************常调用的函数****************/
#include<stdio.h>
save(int n)                          /*********保存函数***********/
{
    FILE*fp;
    int k;
    if((fp=fopen("仓库货物清单.txt","w"))==NULL)   
    {printf("\n文件打开失败!\n");
    return NULL;
    }
    for(k=0;k<n;k++)
        fwrite(&pro[k],sizeof(struct product),1,fp);
    fclose(fp);
 }
   load()
       /*****************从文件处读入***************/
   {
       FILE*fp;
       int k;  
       if((fp=fopen("仓库货物清单.txt","rb"))==NULL)
       {printf("\n文件打开失败!\n");    return NULL;  
   }
       for(k=0;!feof(fp);k++)
           fread(&pro[k],sizeof(struct product),1,fp);
       fclose(fp);  
       return(k-1);
   }
   

printf_data(int i)
{
    printf("\n名称\t\t编号\t日期\t\t库存最小-实际-最大\n");
    printf("%s\t\t%d\t%d.%d.%d\t\t%d %d %d",pro[i].p_name,pro[i].p_num,pro[i].in_date.year,pro[i].in_date.month,pro[i].in_date.day,pro[i].min_s,pro[i].real_s,pro[i].max_s);
}   
 
printf_back()   
   {
    printf("\n\n操作完成\n\n按任意键返回!\n");
    getch();
    menu();
}
搜索更多相关主题的帖子: 仓库管理 include product search insert 
2014-01-05 13:53
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:7 
链接错误?  会不会EXE已经打开了?最好把错误提示贴上来吧

三十年河东,三十年河西,莫欺少年穷!
2014-01-05 15:37
梦幻之林夕
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-12-23
收藏
得分:0 
#include<stdio.h>
#include<string.h>
#define N 100
struct date
{
    int year;
    int month;
    int day;
};
struct product
{char p_name[20];
long int p_num;

struct date   in_date;
long int min_s;
long int max_s;
long int real_s;
struct product*next;
}pro[N];
int mn();
void menu();
write();
search();
searchmenu();
search_by_name();
search_by_date();
search_by_num();

insert();
rewrite();
lend();
sort();
statistics();
save(int n);
load();
input(int i);
printf_date(int i);
printf_back();
int mn()
{
    void menu();
    FILE*fp;
    fp=fopen("货物清单.txt","wb");
    fclose(fp);
        menu();
}
void menu()
{int m,n;
    do
    {
        printf("\t\t**************MENU**************\n");
            printf("\t\t**********欢迎来到仓库管理系统*******\n");
            printf("\t\t         1:商品入库                 *\n");
            printf("\t\t         2:商品出库                 *\n");
            printf("\t\t         3:库存查询                 *\n");
            printf("\t\t         4:信息修改                 *\n");
            printf("\t\t         5:排序                     *\n");
            printf("\t\t         6:统计                     *\n");
            printf("\t\t         7:退出                     *\n");
            printf("choice your number(1-7):[ ]\b\b");
            scanf("%d",&n);
            if(n<1||n>7)
            {
                m=1;
                getchar();
    }
            else m=0;
    }
    while(m==1);
    switch(n)
    {
    case 1:write();break;   
    case 2:lead();break;     
//    case 3:search();break;
//    case 4:rewrite();break;
//    case 5:sort();break;
  //  case 6:statistics();break;
//    case 7:exit(0);
    }
}
/***************输入函数****************/

input(int i)
 {
    printf("请输入以下信息,按TAB键分开:\n名称    编号    入库日 期    最小库存  实际库存  最大库存\n");
    scanf("%s %d  %d.%d.%d %d %d %d",&pro[i].p_name,&pro[i].p_num,&pro[i].in_date.year,&pro[i].in_date.month,&pro[i].in_date.day,&pro[i].min_s,&pro[i].real_s,&pro[i].max_s); }
/***************打印函数**********************/
main()
{
    puts("\n\n\n\t\t----------欢迎使用仓库管理系统-----");
    puts("\t\t|MAME: wangyifan                |");
    puts("\n\t\t按任意键继续\n\n\n\n\n\n");
    getch();
    menu();
}
write()
{int i,n,k;
printf("\n\n\t提示:请确定这是你第一次录入信息,因为之前保存的数据将被删除\n\n");
printf("\t\t\t是否继续!\n\n\t\t\t0*****是\n\n\t\t\t其他******否[]\b\b");
scanf("%d",&k);
if(k!=0)printf_back();
printf("\n需要录入商品数量(0-%d)?:",N-1);
scanf("%d",&n);
printf("\n现在输入信息\n\n");
for(i=0;i<n;i++)
{printf("\n现在输入第 %d个商品的信息:\n",i+1);
input(i);
}
if(i=0)save(n);
printf_back();
}
//search()
//{
//    searchmenu();
//}
//searchmenu()

//{int n,w2;
//do
//{
//    puts("\n\t\t**************查询目录**************\n\n");
//    puts("\t\t\t1.以名称查询");
//    puts("\t\t\t2.以日期查询");
//    puts("\t\t\t3.以警戒值查询");
//    puts("\t\t\t4.返回");
//    puts("\n\n\t\t*************************************\n");
//    printf("选择命令[1-4]:[]\b\b");
//    scanf("%d",&n);
//    if(n<1||n>4)
//    {w2=1;getchar();}
//while(w2==1);
//switch(n)
//{case 1:search_by_name();break;
//case 2:search_by_date();break;
//case 3:search_by_num();break;
//case 4:getch();menu();
//}
//}
/******************以名称查询函数***************/

//search_by_name()
//{int j,n,m=0;char a[20];
//n=load();
//printf("\n输入你所查询信息的名称!\n name:");
//scanf("%s",a);
//for(j=0;j<n;j++)
 //if(strcmp(a,pro[j].p_name)==0)
 //{m++;
 //printf_data(j);
 //}
 //printf("\n有%d种物资与查询相匹配!",m);
 //getch();
 //menu();
//}
/**********************************以日期查询函数************/
//struct search_date
//{int year;
//int month;
//int day;
//}s;
//search_by_date()
//{int j,n,m=0;
//n=load();
//printf("\n输入你所查询信息的日期!\ndate:");
//scanf("%d%d%d",&s.year,&s.month,&s.day);
//for(j=0;j<n;j++)
//if((s.year==pro[j].in_date.year)&&(s.month==pro[j].in_date.month)&&(s.day==pro[j].in_date.day))
//{m++;
//printf_data(j);
//}
//printf("\n有%d种商品与查询相匹配!",m);
//getch();
//menu();
//}
/*********************以警戒值查询函数*********************/
//search_by_num()
//{
//    int j,n,m=0;
//    long int num;
//    n=load();
//    printf("/n请输入库存警戒值:[   ]\b\b\b\b\b\b");
//    scanf("%d",&num);
//    for(j=0;j<n;j++)
//        if(pro[j].real_s<num)
//        {
//            m++;
//            printf_data(j);
//
//        }
//        printf("/n有%d种商品与查询相匹配!",m);
//        getch();
//        menu();
//}
/**********************商品出库结构体*****************/
struct one_pro
{char p_name[20];
long int p_num;
long int total;
struct date one_date;
struct one_pro*next;
}take;
/********************商品入库函数*************/
insert()
{int n,c;
n=load();
puts("\n请输入相关信息:\n");
do
{input(n);
printf_data(n);
printf("\n\n是否确定输入\n1)是\n2)从新输入\n其他)返回[]\b\b");
scanf("%d",&c);
if(c==1)
{
    save(n+1);printf_back();
}
else if(c!=2)menu();
}while(c==2);
}
/****************信息更改函数********************/
//rewrite()
//{char p_name[20];
//long int p_num;
//int m,n,j,k=0;
//n=load();
//do
//{
//    puts("\n要更改商品的信息:\n名称 编号");
//    scanf("%s%1d%s",&p_name,&p_num);
//    printf("\n\n\n\n\t\t\t是否继续!\n\n\t\t\t0******是\n\n\n\t\t\t1*****退出\n\n\t\t\t其它*****重新输入[]\b\b");
//    scanf("%d",&m);
//    if (m==1)
//        printf_back();
//    else if(m==0)
//        k=1;
//}
//while(k!=1);
//for(j=0;j<n;j++)
//if((strcmp(p_name,pro[j].p_name)==0)&&(p_num=pro[j].p_num)==0)
//{puts("\n请重新输入信息\n");
//input(j);
//save(n);
//printf_back();
//}
//puts("未找到\n按任意键返回!");
//getch();
//menu();
//}
   
lend()
{
 int j,n,k=0;
 n=load();
 printf("\n请输入你需要商品内容的相关信息!");
 printf("\n名称\t编号\t出库日期\t出库数量\n");
scanf("%s\t%s\t%d.%d.%d\t%d",&take.p_name,&take.one_date.year,&take.one_date.month,&take.one_date.day,&take.total);
  
for(j=0;j<n;j++)
if((strcmp(take.p_name,pro[j].p_name)==0)&&(take.one_date.year==pro[j].in_date.year)&&(take.one_date.month==pro[j].in_date.month)&&(take.one_date.day==pro[j].in_date.day)&&(take.total<=pro[j].real_s))
{    pro[j].real_s=take.total;
   printf_data(j);
   k=1;  
}
  save(n);
  printf_back();
 }
/*************打印***********/
//printf()
//{int i,n;
   // n=load();
   // for(i=0;i<n;i++)
   // printf_data(i);
    //puts("\n\n\t\t\t任意键返回");
   // getch();  
   // menu();
//}
/*************常调用的函数****************/
#include<stdio.h>
save(int n)                          /*********保存函数***********/
{
    FILE*fp;
    int k;
    if((fp=fopen("仓库货物清单.txt","w"))==NULL)   
    {printf("\n文件打开失败!\n");
    return NULL;
    }
    for(k=0;k<n;k++)
        fwrite(&pro[k],sizeof(struct product),1,fp);
    fclose(fp);
 }
   load()
       /*****************从文件处读入***************/
   {
       FILE*fp;
       int k;  
       if((fp=fopen("仓库货物清单.txt","rb"))==NULL)
       {printf("\n文件打开失败!\n");    return NULL;  
   }
       for(k=0;!feof(fp);k++)
           fread(&pro[k],sizeof(struct product),1,fp);
       fclose(fp);  
       return(k-1);
   }
   

printf_data(int i)
{
    printf("\n名称\t\t编号\t日期\t\t库存最小-实际-最大\n");
    printf("%s\t\t%d\t%d.%d.%d\t\t%d %d %d",pro[i].p_name,pro[i].p_num,pro[i].in_date.year,pro[i].in_date.month,pro[i].in_date.day,pro[i].min_s,pro[i].real_s,pro[i].max_s);
}   
 
printf_back()   
   {
    printf("\n\n操作完成\n\n按任意键返回!\n");
    getch();
    menu();
}






void menu 的那个switch中case2好像出错了!

----------Configuration: 1 - Win32 Debug--------------------
Linking...
1.obj : error LNK2001: unresolved external symbol _lead
Debug/1.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

1.exe - 1 error(s), 0 warning(s)
2014-01-05 15:43
梦幻之林夕
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-12-23
收藏
得分:0 
回复 2楼 韶志
-------------------Configuration: 1 - Win32 Debug--------------------
Linking...
1.obj : error LNK2001: unresolved external symbol _lead
Debug/1.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

1.exe - 1 error(s), 0 warning(s)
是这么提示的,详细在楼下呢!
2014-01-05 15:45
liubl123
Rank: 1
等 级:新手上路
帖 子:1
专家分:7
注 册:2010-11-5
收藏
得分:7 
好像函数名拼错了,应该是lend,而不是lead
2014-01-05 19:40
梦幻之林夕
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-12-23
收藏
得分:0 
回复 5楼 liubl123
改过只后还是错误
2014-01-05 19:56
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
收藏
得分:7 
int mn();
 void menu();
 write();
 search();
 searchmenu();
 search_by_name();
 search_by_date();
 search_by_num();

 insert();
 rewrite();
 lend();
 sort();
 statistics();
 save(int n);
 load();
 input(int i);
 printf_date(int i);
 printf_back();
申明的函数没有实现,把不要的去掉,需要的实现下

好好学习,天天想上
2014-01-05 22:16
快速回复:求大神,编译没有错误,链接有一处错误!不知该如何查找?
数据加载中...
 
   



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

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