江湖救急,请教各路大虾这是什么原因导致的错误!

来源:互联网 发布:案例推理编程 编辑:程序博客网 时间:2024/04/27 17:31

Linking...
cc.obj : error LNK2001: unresolved external symbol _display
Debug/cc.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

cc.exe - 1 error(s), 0 warning(s)
这是我在编写一个人事档案管理系统是链接时提示的错误。本人是一个刚接触c语言不久的菜鸟,希望江湖上各路大虾指点一下小子导致这个错误的原因。谢谢啦!

源代码如下:#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#define N 100
#define LEN sizeof(struct staff)
#define NAME "0901.dat"
struct staff                 /*结构体*/
{
 char name[20];                 /*员工姓名*/
 char num[20];                  /*员工序号*/
 char sex[20];              /*性别*/
 char age[20];               /*年龄*/
 char remarks[20];               /*备注*/
}member[N];

/*函数声明*/
void menu();
void input();
void modify();
void search();
void del();
void save();
void display();
int load();
void save(int n);
void browse(int n);
void choice(int p);

/*主函数*/
void main()
{
 printf("                          欢迎使用人事档案管理系统/n");
 menu();
}


/*主菜单*/
void menu()
{
 int n,w;
 printf("/t/t/t/t  **菜单功能**/n");
 printf("                                  1 输入数据                                /n");
 printf("                                  2 修改数据                                /n");
 printf("                                  3 查询数据                                /n");
 printf("                                  4 删除数据                                /n");               
 printf("                                  5 保存数据                                /n");
 printf("                                  6 显示数据                                /n");
 printf("                                  7 退出系统                                /n");
 do
 {
  printf("选择你要的操作序号(1-7):[ ]/b/b");
 scanf("%d",&n);
 if(n<1||n>7)
 {
  w=1;
  printf("输入错误请从新输入!/n");
 }
 else w=0;
 } while(w==1);
 switch(n)
 {
 case 1:input();break;                  /*调用输入函数*/
 case 2:modify();break;                 /*调用修改函数*/
 case 3:search();break;                 /*调用查询函数*/
 case 4:del();break;                    /*调用删除函数*/
 case 5:save(0);break;                   /*调用保存函数*/
 case 6:display();break;                    /*调用显示函数*/
 case 7:exit(0);break;                  /*退出系统*/
 }
}


/*信息输入*/
void input()                                  
{
 int i,n,m;
 printf("准备输入多少员工(1-%d)?:",N);
 scanf("%d",&n);
 printf("/n开始录入数据/n");
 for(i=0;i<n;i++)
 {
  printf("第%d个员工的信息:/n",i+1);         
  printf("员工姓名:");
  scanf("%s",&member[i].name);
  printf("员工序号:");
  scanf("%s",&member[i].num);
  printf("性别:");
  scanf("%s",&member[i].sex);
  printf("年龄:");
  scanf("%s",&member[i].age);
  printf("备注:");
  scanf("%s",&member[i].remarks);
 }
 printf("你输入员工信息为:/n");
 browse(n);
 save(n);
 printf("是否返回主菜单?(1是 2否):");
 scanf("%d",&m);
 choice(m);
}

 


/*信息修改*/
void modify_1()
{
 int i,n;
 char name[20];
 n=load();
 printf("输入你要修改的员工姓名:");
 scanf("%s",name);
 for(i=0;i<n;i++)
  if(strcmp(member[i].name,name)==0)
  {
   printf("输入修改后的姓名:");
   scanf("%s",&member[i].name);
   printf("输入修改后的员工序号:");
   scanf("%s",&member[i].num);
   printf("输入修改后的性别:");
   scanf("%s",&member[i].sex);
   printf("输入修改后的年龄:");
   scanf("%s",&member[i].age);
   printf("输入修改后的备注:");
   scanf("%s",&member[i].remarks);
  }
  save(n);
}


void modify()                                 
{
 int c,n,m;
 do
 {
  modify_1();
  printf("是否继续修改?(1是 2否):");
  scanf("%d",&c);
 }while(c==1);
 printf("修改后的数据为:/n");
 n=load();
 browse(n);
 printf("是否返回主菜单?(1是 2否):");
 scanf("%d",&m);
 choice(m);
}

 

/*信息查询*/

void search_1(char M[20])
{
 int i,n;
 n=load();
 for(i=0;i<n;i++)
  
  if(strcmp(member[i].name,M)==0)
   printf("员工姓名:%s/t员工序号:%s/t性别:%s/t年龄:%s/t备注:%s/n",member[i].name,member[i].num,member[i].sex,member[i].age,member[i].remarks);
}
void search_2(char M[20])
{ int i,n;

n=load();
for(i=0;i<n;i++)

if(strcmp(member[i].num,M)==0)
printf("员工姓名:%s/t员工序号:%s/t性别:%s/t年龄:%s/t备注:%s/n",member[i].name,member[i].num,member[i].sex,member[i].age,member[i].remarks);
}
void search()
{
 int c,m,w,p;
 char name[20];
 char num[20];
// char sex[20];              /*性别*/
// char age[20];               /*年龄*/
 printf("选择排序方式:");
 printf("1姓名/t2序号/t3性别/t4年龄/n");
 do{
  printf("选择你要操作的序号:[  ]/b/b");
  scanf("%d",&p);
  if(p<1||p>4)
  {
   w=1;printf("输入错误!请重新输入:/n");}
  else w=0;
  
  switch(p)
  {
  case 1: {printf("输入你要查询员工的姓名:");scanf("%s",name);search_1(name);};break;
  case 2: {printf("输入你要查询员工的序号:");scanf("%s",num);search_2(num);};break;
 // case 3: {printf("输入你要查询员工的性别:");scanf("%s",sex);search_3(sex);};break;
 // case 4: {printf("输入你要查询员工的年龄:");scanf("%s",age);search_4(age);};break;
  }
  printf("是否继续?(1是 2否):");
  scanf("%d",&c);} while(c==1);
  printf("是否返回主菜单?(1是 2否):");
  scanf("%d",&m);
  choice(m);
}

 

/*信息删除*/
void del_1(char M[20])
{
 int n,j,k;
 n=load();
 for(j=0;j<n;j++)
 {
  if(1)
  {
   if((strcmp(member[j].name,M)==0)&&(j!=(n-1)))
   {
    for(k=j+1;k<n;k++)
     member[k-1]=member[k];
    n--;
   }
   if((strcmp(member[j].name,M)==0)&&(j==(n-1)))
    n--;}
  else printf("你要删除的员工不存在!/n");
 }
 save(n);
}

void del()
{
 int n,c,p;
 char name[20];
 do{
  printf("输入你要删除员工姓名:");
  scanf("%s",name);
  del_1(name);
  printf("是否继续?(1是 2否):");
  scanf("%d",&c);
 }while(c==1);
 printf("删除后的信息为:/n");
 n=load();
 browse(n);
 printf("是否返回主菜单?(1是 2否):");
 scanf("%d",&p);
 choice(p);
}


/*保存文件*/
void save( int n)
{
 FILE *fp;
 int i;
 if((fp=fopen(NAME,"wb"))==NULL)
  printf("不能打开文件!/n");
 for(i=0;i<n;i++)
  if(fwrite(&member[i],LEN,1,fp)!=1)
   printf("文件写入错误!/n");
  fclose(fp);
}


/*信息添加*/
void add_1()
{
 FILE *fp;
 struct staff New;
 if((fp=fopen(NAME,"ab"))==NULL)                       /*以追加方式打开文件*/
 {
  printf("不能打开文件");
  return;
 }
 printf("输入员工姓名:");
 scanf("%s",New.name);
 printf("输入员工序号:");
 scanf("%s",New.num);
 printf("输入性别:");
 scanf("%s",New.sex);
 printf("输入年龄:");
 scanf("%s",New.age);
 printf("输入备注:");
 scanf("%s",&New.remarks);
 if(fwrite(&New,LEN,1,fp)!=1)                
  printf("添加出错!/n");
 fclose(fp);
}

void add()
{
 int n,c,p;
 do
 {
  printf("输入你要添加员工的信息:/n");
  add_1();
  printf("是否继续?(1是 2否):");
  scanf("%d",&c);
 }while(c==1);
 printf("添加后的数据为:/n");
 n=load();
 browse(n);
 printf("是否返回主菜单?(1 是2 否):");
 scanf("%d",&p);
 choice(p);
}

/*打开文件*/
int load()
{
 FILE *fp;
 int i;
 if((fp=fopen(NAME,"rb"))==NULL)
  printf("不能打开文件!/n");
 for(i=0;!feof(fp);i++)
  fread(&member[i],LEN,1,fp);
 fclose(fp);
 return (i-1);
}

/*浏览函数*/
void browse(int n)
{
 int i;
 printf("员工姓名/t员工序号/t性别/t年龄/t/t备注/n");
 for(i=0;i<n;i++)
  printf("%-s/t/t%-s/t/t%-s/t/t%-s/t/t%-s/n",member[i].name,member[i].num,member[i].sex,member[i].age,member[i].remarks);
}

/*判断函数*/

void choice(int p)
{
    if(p==1)
     menu();
    else {printf("按任意键退出系统!/n");exit(0);
    }
}
 

原创粉丝点击