首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

学校让编一个通讯录系统,哪位高手能帮小弟我检查下

2012-05-27 
学校让编一个通讯录系统,谁能帮我检查下#include stdio.h#include stdlib.h#include string.hstruct

学校让编一个通讯录系统,谁能帮我检查下
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct person
{
char name[10];
char num[15];
char email[20];
int age;
char adds[20];
};
typedef struct person Person;
Person pe[80];
int menu_select() 

char c; 
do{ 
system("cls"); 
printf("\t\t *****通讯录***** \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│0. 退出程序 │\n"); 
printf("\t\t└───────┘\n"); 
printf("\t\t请您选择(0-6):"); 
c=getchar();  
}while(c<'0'||c>'6'); 
return(c-'0'); 
}
int Input(Person per[],int n) 
{
printf("输入记录");
if(n>=80)
printf("\t***错误***\n");
int i=1,y=1;
char a='Y';
while(y)
{
printf("编号:%d",n);
printf("\t姓名:\n");
gets(per[n+i].name);
printf("\t号码:\n");
gets(per[n+i].num);
printf("\t电子邮箱地址:\n");
gets(per[n+i].email);
printf("\t年龄:\n");
scanf("%d",per[n+i].age);
printf("\t地址:\n");
gets(per[n+i].adds);
i++;
printf("是否继续添加 (Y/N):\n");
scanf("%c",a);
if(a=='N')
break;
if((n+1)==80)
printf("\t***错误,通讯录已满将溢出***\n");
}
system("pause");
return (n+i);

void Display(Person per[],int n)  

 
printf("显示所有联系人\n"); 
int i;
for(i=1;i<n;i++)
{
printf("\t\t通讯录记录表\n");
printf("---------------------------\n");
printf("编号 姓名 年龄 电话号码 通讯地址 电子邮箱\n");
printf("---------------------------\n");
printf("%4d%8s%6d%13d%13s%13s",i,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email);
}
printf("----------------------------\n");

  system("pause");  




int Delete_a_record(Person per[],int n) 

char name[10];
int i,sign;
printf("根据输入的联系人名,删除相应的记录!\n");
printf("请输入想删除记录中的名字\n");
puts(name);
for(i=1;i<n;i++)
{
if(strcmp(name,per[i].name)>0)
{
sign=i;
break;
}
}
if(sign==0)
printf("很抱歉,没有这个人\n");
else
for(i=sign;i<n-1;i++)
per[i]=per[i+1];
return (n-1);



   


void Query_a_record(Person per[],int n) 
{
int i=0,sign=0;
char *p;
printf("请选择:\n");
printf("请选择查询方式\n");
printf("\t┌───────┐\n");
printf("\t丨1、-----姓名 丨\n");
printf("\t丨2、-----电话 丨\n");
printf("\t丨3、-----地址 丨\n");
printf("\t丨4、-----返回 丨\n");
printf("\t└───────┘\n");
switch(i)
{
case 1:
printf("\t请输入想查询的姓名:\n");
puts(p);
for(i=1;i<n;i++)
{
if(strcmp(p,per[i].name)>0)
sign=i;
}
free(p);
if(sign==0)
{
printf("错误,没有此人记录\n");
break;
}


printf("\t此人编号:%d\n",sign);
printf("\t此人年龄:%d\n",per[sign].age);
printf("\t电话号码:%s\n",per[sign].num);
printf("\t通信地址:%s\n",per[sign].adds);
printf("\t电子邮箱:%s\n",per[sign].email);
break;
case 2:
printf("\t请输入想查询的电话:\n");
puts(p);
for(i=1;i<n;i++)
{
if(strcmp(p,per[i].num)>0)
sign=i;
}
free(p);
if(sign==0)
{
printf("错误,没有此号码记录\n");
break;
}
printf("\t此人编号:%d\n",sign);
printf("\t此人姓名:%d\n",per[sign].name);
printf("\t此人年龄:%d\n",per[sign].age);
  printf("\t通信地址:%s\n",per[sign].adds);
printf("\t电子邮箱:%s\n",per[sign].email);
break;
case 3:
printf("\t请输入想查询的地址:\n");
puts(p);
for(i=1;i<n;i++)
{
if(strcmp(p,per[i].adds)>0)
sign=i;
}
free(p);
if(sign==0)
{
printf("错误,没有地址记录\n");
break;
}
printf("\t此人编号:%d\n",sign);
printf("\t此人姓名:%s\n",per[sign].name);
printf("\t此人年龄:%d\n",per[sign].age);
printf("\t电话号码:%s\n",per[sign].num);
printf("\t电子邮箱:%s\n",per[sign].email);
break;
case 4:
break;
default:
printf("输入错误\n");
}
void Change(Person per[],int n) 
{
int i,sign=0;
char name[10];
printf("\t输入想修改的记录中的名字:\n");
gets(name);
for(i=1;i<n;i++)
{
if(strcmp(name,per[i])>0)
{
sign=1;
break;
}
}
if(sign==0)
printf("通讯录中没有此人\n");
else
{
printf("\t编号:%d\n",sign);
printf("\t姓名:");
gets(per[sign].name);
printf("\t年龄:");
scanf("%d",per[sign].age);
printf("\t电话号码:");
gets(per[sign].num);
printf("\t通讯地址:");
gets(per[sign].adds);
printf("\t电子邮箱:");
gets(per[sign].email);
printf("\t修改成功!\n");
}
}
void WritetoText(Person per[],int n)  
{
FILE *fp;
int i;
char *p;
printf("\t请输入所保存的文件名:");
gets(p);
printf("\t正在保存...\n");
if((fp=fopen("D:\\p","w"))==NULL)
printf("\t不能保存文件\n");
fprintf("******************************************************************");
fprintf("编号 姓名 年龄 电话号码 通讯地址 电子邮箱\n");
fprintf("---------------------------\n");
for(i=1;i<n;i++)
fprintf(fp,"%4d%8s%6d%13d%13s%13s",i,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email);
fprintf("---------------------------\n");
fprintf("******************************************************************");
fclose(fp);
}

int main() /*主函数*/ 

int n=0; 
for(;;) 
{
switch(menu_select()) 

case 1: 
printf("\n\t添加记录到通讯录\n"); /*添加记录*/ 
n=Input(pe,n); 
break; 

case 2: 
printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/ 
Display(pe,n); 
break;

case 3: 
printf("\n\t从通讯录中删除记录\n"); 
n=Delete_a_record(pe,n); /*删除记录*/ 
printf("\t"); 
system("pause"); 
break; 

case 4: 
printf("\n\t在通讯录中查找记录\n"); 
Query_a_record(pe,n); /*查找记录*/ 
printf("\t"); 


system("pause"); 
break;

case 5: 
printf("\n\t修改通讯录中的记录\n"); 
Change(pe,n); /*修改数据*/ 
printf("\t"); 
system("pause"); 
break; 

case 6: 
printf("\n\t保存功能\n"); 
WritetoText(pe,n); /*保存数据*/ 
printf("\t"); 
system("pause"); 
break; 

case 0: 
printf("\n\t\t谢谢使用,再见!\n"); /*结束程序*/ 
printf("\n\t\t"); 
system("pause"); 
exit(0); 


}

[解决办法]
Change函数之前少了个大括号;

fprintf()函数用错,函数完整形式: int fprintf(FILE *stream,char *format [,argument])

不止一个参数
[解决办法]
没有声明各个函数
[解决办法]

探讨
Change函数之前少了个大括号;

fprintf()函数用错,函数完整形式: int fprintf(FILE *stream,char *format [,argument])

不止一个参数

热点排行