求问这个源程序要读取的文件应该放在哪
#include"stdio.h"#include <stdlib.h>
#include"string.h"
#define header1 "|--------------电话簿------------------|\n"
#define header2 "| name | phonenum | adress | \n"
#define header3 "|----------|----------------|----------|\n"
#define end "|-----------------结束------------------|"
typedef struct _CStudent
{
char szName[20]; /* 学生姓名 */
double number; /*电话*/
char adress[100]; /*地址*/
}CStudent;
void menu();
int duqu(int *len);
int zengjia(int *k,int *len);
int chaxun(int *len);
int xiugai(int *len);
int shanchu(int *len);
int input(CStudent* p); /* 从键盘输入 */
int output(int *len); /* 向屏幕输出 */
int search(CStudent p,int *j,CStudent c[3],int *len);
int sname(CStudent p,int *len); /*姓名查询*/
int snumber(CStudent p,int *len); /*电话查询*/
void xname(CStudent q[100],int i); /*姓名修改*/
void xnumber(CStudent q[100],int i); /*号码修改*/
void xadress(CStudent q[100],int i); /*地址修改*/
int sput(int *len,CStudent q[100]);/*删除的处理模块*/
main( )
{
static int len=0;
int i,j=0,k=0;
while(j==0)
{
menu();
do
{
printf("请选择你需要的服务:\n");
scanf("%d",&i);
}
while(i<0||i>5);
switch(i)
{
case 1:{j=zengjia(&k,&len);break;}/*增加*/
case 2:{j=duqu(&len);break;} /*读取*/
case 3:{j=chaxun(&len);break;} /*查找*/
case 4:{j=xiugai(&len);break;} /*修改*/
case 5:{j=shanchu(&len);break;}/*删除*/
default:{printf(" |**欢迎下次使用电话薄管理系统!**|\n");j=1;break;}
}
}
}
void menu()
{
system("cls");
system("color 1F");
printf("\n\n\n"); /*输出主菜单*/
printf("\t\t|* **** 欢迎进入电话薄管理系统! **** *|\n");
printf("\t\t|********************menu********************|\n");
printf("\t\t| |\n");
printf("\t\t| 1 增加 2 读取 |\n");
printf("\t\t| |\n");
printf("\t\t| 3 查找 4 修改 |\n");
printf("\t\t| |\n");
printf("\t\t| 5 删除 0 退出 |\n");
printf("\t\t| |\n");
printf("\t\t|********************************************|\n");
}
int output(int *len) /*向屏幕输出*/
{
CStudent p[100];
int i;
FILE *fp;
if((fp=fopen("e://file3","r"))==NULL)
{
printf("error!\n");
return -1;
}
printf("%s%s%s",header1,header2,header3);
for(i=0;i<*len;i++)
{
fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);
printf("| %s | %.0lf | %s |\n",p[i].szName,p[i].number,p[i].adress);
}
printf("%s",end);
printf("\n");
system("pause");
return 0;
}
int zengjia(int *k,int *len)
{
CStudent p[100];
int i,j;
FILE *fp;
system("cls");
printf("\n\t\t|***** 欢迎进入删除联系人界面! *****|\n\n");
printf("请输入增加的个数:\n");
scanf("%d",&j);
k=&j;
(*len)+=j;
//system("cls");
if((fp=fopen("e://file3","a+"))==NULL)
{
printf("error!\n");
return -1;
}
for(i=0;i<j;i++)
{
printf("姓名:");
scanf("%s",&p[i].szName);
printf("电话:");
scanf("%lf",&p[i].number);
printf("地址:");
scanf("%s",p[i].adress);
}
for(i=0;i<j;i++)
fprintf(fp,"\n%s %lf %s ",p[i].szName,p[i].number,p[i].adress);
fclose(fp);
system("cls");
output(len);
return 0;
}
int chaxun(int *len)
{
int i;
CStudent aa,cc;
system("cls");
printf("\n\t\t|***** 欢迎进入删除联系人界面! *****|\n\n");
do
{
printf(" |-------查找功能------|\n");
printf(" | |\n");
printf(" | 1 按电话号码查找 |\n");
printf(" | |\n");
printf(" | 2 按姓名查找 |\n");
printf(" | |\n");
printf(" | 0 退出 |\n");
printf(" | |\n");
printf("请输入:\n");
scanf("%d",&i);
}
while(i>2||i<0);
if(i==2)
{
printf("请输入姓名:\n");
scanf("%s",&aa.szName);
sname(aa,len);
}
else if(i==1)
{
printf("请输入号码:\n");
scanf("%lf",&cc.number);
snumber(cc,len);
}
else
printf("欢迎下次使用电话薄管理系统!\n");
return 0;
}
int sname(CStudent p,int *len)
{
CStudent c[100];
int i,flag;
flag=search(p,&i,c,len);
if (flag==1)
{
printf("%s%s%s",header1,header2,header3);
printf("| %s | %.0lf | %s |\n",c[i].szName,c[i].number,c[i].adress);
printf("%s",end);
printf("\n");
}
else
printf("Not Found\n");
system("pause");
return 0;
}
int snumber(CStudent p,int *len)
{
CStudent c[100];
int i,flag;
flag=search(p,&i,c,len);
if (flag==2)
{
printf("%s%s%s",header1,header2,header3);
printf("| %s | %.0lf | %s |\n",c[i].szName,c[i].number,c[i].adress);
printf("%s",end);
printf("\n");
}
else
printf("Not Found\n");
system("pause");
return 0;
}
search(CStudent p,int *j,CStudent c[100],int *len) /*查询*/
{
FILE *fp;
int i,flag=0;
if((fp=fopen("e:\\file3","r"))==NULL)
{
printf("cannot write file\n");
return -1;
}
for(i=0;i<*len;i++)
{
fscanf(fp,"%s%lf%s",c[i].szName,&c[i].number,c[i].adress);
if(strcmp(c[i].szName,p.szName)==0)
{flag=1;break;}
if(c[i].number==p.number)
{flag=2;break;}
}
*j=i;
fclose(fp);
return flag;
}
int xiugai(int *len)
{
CStudent p[100],q[100],a;
int i,j,b;
FILE *fp;
system("cls");
printf("\n\t\t|* **** 欢迎进入修改联系人界面! **** *|\n\n");
printf("请输入修改人的姓名:\n");
scanf("%s",a.szName);
if((fp=fopen("e://file3","r+"))==NULL)
{
printf("error!\n");
return -1;
}
for(i=0;i<*len;i++)
fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);
for(i=0;i<*len;i++)
{
strcpy(q[i].szName,p[i].szName);
strcpy(q[i].adress,p[i].adress);
q[i].number=p[i].number;}
for(i=0;i<*len;i++)
{
if(strcmp(p[i].szName,a.szName)==0)
{
j=1;
break;
}
}
if(j==1)
{
printf(" |-------修改功能------|\n");
printf(" | |\n");
printf(" | 1 修改姓名 |\n");
printf(" | |\n");
printf(" | 2 修改号码 |\n");
printf(" | |\n");
printf(" | 3 修改地址 |\n");
printf(" | |\n");
do
{
printf("请输入:\n");
scanf("%d",&b);
if(b==1)
xname(q,i);
if(b==2)
xnumber(q,i);
if(b==3)
xadress(q,i);}
while(b>3||b<1);
printf("修改的联系人重新保存!\n");
sput(len,q);
}
else
{
printf(" |*****通讯录中没有该人的信息!******|\n");
system("pause");
}
fclose(fp);
output(len);
return 0;
}
int sput(int *len,CStudent q[100])
{
int i;
FILE *fp;
if((fp=fopen("e://file3","w"))==NULL)
{
printf("error!\n");
return -1;
}
for(i=0;i<*len;i++)
fprintf(fp,"%s %lf %s ",q[i].szName,q[i].number,q[i].adress);
fclose(fp);
return 0;
}
void xname(CStudent q[100],int i)
{
printf("姓名重置:");
scanf("%s",q[i].szName);
}
void xnumber(CStudent q[100],int i)
{
printf("电话重置:");
scanf("%lf",&q[i].number);
}
void xadress(CStudent q[100],int i) /*地址修改*/
{
printf("地址重置:");
scanf("%s",q[i].adress);
}
int shanchu(int *len)
{
CStudent p[100],q[100],a;
int i,j;
FILE *fp;
system("cls");
printf("\n\t\t|***** 欢迎进入删除联系人界面! *****|\n\n");
printf("请输入删除人的姓名:\n");
scanf("%s",a.szName);
if((fp=fopen("e://file3","r+"))==NULL)
{
printf("error!\n");
return -1;
}
for(i=0;i<*len;i++)
fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);
for(i=0;i<*len;i++)
{
strcpy(q[i].szName,p[i].szName);
strcpy(q[i].adress,p[i].adress);
q[i].number=p[i].number;}
for(i=0;i<*len;i++)
{
if(strcmp(p[i].szName,a.szName)==0)
{
j=1;
break;
}
}
if(j==1)
{
for(;i<*len-1;i++)
{
strcpy(q[i].szName,q[i+1].szName);
strcpy(q[i].adress,p[i].adress);
q[i].number=q[i+1].number;
}
printf("删除成功!\n");
(*len)--;
sput(len,q);
for(i=0;i<*len;i++)
fscanf(fp,"%s%lf%s",q[i].szName,&q[i].number,q[i].adress);
output(len);
}
else
printf(" |*****通讯录中没有该人的信息!******|\n");
fclose(fp);
return 0;
}
执行时显示--------------------Configuration: TXL - Win32 Debug--------------------
Linking...
TXL.obj : error LNK2001: unresolved external symbol _duqu
Debug/TXL.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
TXL.exe - 1 error(s), 0 warning(s)