首页 新闻 搜索 专区 学院

求助大神帮忙找错误

0
[待解决问题]

ifndef LINKMAN_H

define LINKMAN_H

include<stdio.h>

include<windows.h>

include<string.h>

pragma warning (disable:4996)

typedef struct LINKMAN//建立结构体
{
char name[20];
char sex[10];
int age;
char Email[30];
int tel[12];
char addr[50];
}LINKMAN;

typedef struct statis //把通讯录和人员统计放在结构体内
{
LINKMAN num[1000];
int count;
}statis;

void inint_linkman(statis p);//初始化数组
void Add_linkman(statis
p);//添加联系人信息
void Dele_linkman(statis p);//删除联系人信息
void Find_linkman(statis
p);//查找联系人信息
void Revise_linkman(statis p);//修改联系人信息
void Display_linkman(statis
p);//现实所有联系人信息
void sort_linkman(statis *p);//以名字排序所有联系人

endif

include "linkman.h"

statis sta;
void menu()//菜单
{
printf("************************************\n");
printf("*****1.添加联系人信息***************\n");
printf("*****2.删除指定联系人信息***********\n");
printf("*****3.查找指定联系人信息***********\n");
printf("*****4.修改指定联系人信息***********\n");
printf("*****5.显示所有联系人信息***********\n");
printf("*****6.以名字及排序所有联系人信息\n");
printf("
7.按0退出所有程序
************\n");
printf("************************************\n");

}
void test()
{
int i=0;
do
{
menu();
printf("请输入你要进行的选项前的数字\n");
scanf("%d",&i);
switch(i)
{
case 1;
Add_linkman(&sta);
break;
case 2;
Dele_linkman(&sta);
break;
case 3;
Find_linkman(&sta);
break;
case 4;
Revise_linkman(&sta);
break;
case 5;
Display_linkman(&sta);
break;
case 6;
sort_linkman(&sta);
break;
case 0;
exit(1)
linkman(&sta);
break;
default;
printf("输入错误!");
break;

    }
}while(i);

}

int main()
{
inint_linkman(&sta);
test();
system("pause");
return 0;
}

include "linkman.h"

void inint_linkman(statis *p)
{
int count=sizeof(p->num);
p_>count=0;
memset(p->num, 0,count);

}
int find(statis p, char pname)
{
int i=0;
for(i=0;i< (p->count);i++)
{

    if(strcmp(p->num[i].name,pname)==0)
        return i;
 }
 return -1;

}
void menu1()//修改联系人时用到的菜单
{
printf("**********************\n");
printf("****1.姓名2.性别\n");
printf("
3.年龄4.电话*****\n");
printf("****5.地址6电子邮件****\n");
printf("****7.返回****************\n");

}

void Add_linkman(statis *p);//添加联系人
{
printf("请输入你要添加的联系人的姓名\n");
scanf("%s",p->num[p->count].name);
printf("请输入你要添加联的系人的性别\n");
scanf("%s",p->num[p->count].sex);
printf("请输入你要添加联的系人的年龄\n");
scanf("%d",p->num[p->count].age);
printf("请输入你要添加的联系人的电子邮件\n");
scanf("%s",p->num[p->count].Email);
printf("请输入你要添加联的系人的电话\n");
scanf("%s",p->num[p->count].tel);
printf("请输入你要添加联的系人的地址\n");
scanf("%s",p->num[p->count].addr);
if((P->count)>1000)
{
printf("联系人上限!\n");
}
else
{
printf("添加成功!\n");
p->count++;
}
}

void Dele_linkman(statis *p)//删除联系人
{
char name[20]={0};
int result=0;
int n=0;
int i=0;
printf("请输入要删除人的姓名:\n");
scanf("%s",name);
result=Find(p,name);
if(result != -1)
{
printf("你是否要删除该联系人?\n");
printf("删除请安1,不删除请安0\n");
scanf("%d",&n);
if(n==1)
{
for(i=0;i<(p->count-1);i++);
{
p->num[i]=p->num[i+1];

        }
        p->count--;
        printf("删除成功!\n");

    }
    else
    {
        printf("删除失败!\n");
    }
}
else
{
    printf("联系人不存在\n");

}

}
void Find_linkman(statis *p);//查找联系人
{
char name[20]={0};
int result=0;
printf("请输入要查找的联系人的姓名\n");
scanf("%s",name);
result=Find(p,name);
if(result !=-1)
{

      printf("姓名: %s\n",p->num[result].name);
      printf("性别: %s\n",p->num[result].sex);
      printf("年龄: %d\n",p->num[result].age);
      printf("电子邮件: %s\n",p->num[result].Email);
      printf("电话: %s\n",p->num[result].tel);
      printf("地址: %s\n",p->num[result].addr);

  }
  else
  {
      printf("您查找的联系人不存在\n");
  }

}

void Revise_linkman(statis *p);//修改联系人
{
char name[20]={0};
int result=0;
printf("请输入要修改的联系人的姓名\n");
scanf("%s",name);
result=Find(p,name);
if(result !=-1)
{

      printf("姓名: %s\n",p->num[result].name);
      printf("性别: %s\n",p->num[result].sex);
      printf("年龄: %d\n",p->num[result].age);
      printf("电子邮件: %s\n",p->num[result].Email);
      printf("电话: %s\n",p->num[result].tel);
      printf("地址: %s\n",p->num[result].addr);
      int i=0;
      do
      {
          menu1();
          printf("输入您要修改的选项\n");
          scanf("%d",&i);
          switch(i)
          {
              case 1:
              printf("请把姓名改成:");
              scanf("%s"p->num[result].name);
              break;
              case 2:
              printf("请把性别改成:");
              scanf("%s"p->num[result].sex);
              break;
              case 3:
              printf("请把年龄改成:");
              scanf("%s"p->num[result].age);
              break;
              case 4:
              printf("请把电子邮件改成:");
              scanf("%s"p->num[result].Email);
              break;
              case 5:
              printf("请把电话改成:");
              scanf("%s"p->num[result].tel);
              break;
              case 6:
              printf("请把地址改成:");
              scanf("%s"p->num[result].addr);
              break;
              case 7:
              break;
              default:
                printf("输入错误!");
                break;

          }
      }while(i)
  }
  else
  {
      printf("您要修改的联系人不存在\n");
  }

}

void sort_linkman(statis *p)//以名字排序所有联系人
{
int i=0;
int j=0;
for(i=0;i<p->count-1;i++)
for(j=0;j<p->count-1-i;j++)
{
if(strcmp(p->num[j].name,p->num[j+1].name)>0)
{
LINKMAN tmp;
tmp=p->num[j];
p->num[j]=p->num[j+1];
p->num[j+1]=tmp;
}
}
}

FanRuYang的主页 FanRuYang | 菜鸟二级 | 园豆:204
提问于:2018-06-09 18:58
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册