C语言的通讯录代码是什么?

Python020

C语言的通讯录代码是什么?,第1张

#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#define N 100 void input()//添加新用户函数 \x0d\x0avoid amend()//修改用户信息函数 \x0d\x0avoid delete_client()//删除用户信息函数 \x0d\x0avoid demand_client()//用户信息查询函数 \x0d\x0avoid collect_telephone()//用户信息汇总函数 \x0d\x0avoid save_client(struct telephone message)//保存函数 \x0d\x0avoid demand_name()//按用户名查询 \x0d\x0avoid demand_telephone()//按电话号码查询 \x0d\x0a \x0d\x0astruct telephone \x0d\x0a{ \x0d\x0achar client_name[20]\x0d\x0achar client_address[30]\x0d\x0achar client_telephone[15]\x0d\x0a} //添加新用户函数 \x0d\x0avoid input() \x0d\x0a{ \x0d\x0astruct telephone message\x0d\x0achar reply='y'\x0d\x0achar save='y'\x0d\x0awhile (reply=='y') \x0d\x0a{ printf("用户姓名:")\x0d\x0ascanf("%s",message.client_name)\x0d\x0a \x0d\x0aprintf("电话号码:")\x0d\x0ascanf("%s",message.client_telephone)save_client(message)\x0d\x0a \x0d\x0aprintf("要继续吗?(y/n):")\x0d\x0ascanf(" %c",&reply)\x0d\x0a} \x0d\x0aprintf("按任意键返回主菜单??\n")\x0d\x0agetchar()\x0d\x0agetchar()\x0d\x0a} //保存函数 \x0d\x0avoid save_client(struct telephone message) \x0d\x0a{ \x0d\x0aFILE *fp\x0d\x0afp=fopen("message.dat","a+")\x0d\x0aif (fp!=NULL) \x0d\x0a{ \x0d\x0afwrite(&message,sizeof(struct telephone),1,fp)\x0d\x0a} \x0d\x0aelse \x0d\x0a{ \x0d\x0aprintf("\n打开文件时出现错误,按任意键返回??\n")\x0d\x0agetchar()\x0d\x0areturn\x0d\x0a} \x0d\x0afclose(fp)\x0d\x0a} //修改用户信息函数 \x0d\x0avoid amend() \x0d\x0a{ \x0d\x0astruct telephone message\x0d\x0aFILE *fp\x0d\x0achar amend_name[20]\x0d\x0achar reply='y'\x0d\x0achar found='y'\x0d\x0achar save='y'\x0d\x0aint size=sizeof(struct telephone)\x0d\x0awhile (reply=='y') \x0d\x0a{ \x0d\x0afound='n'\x0d\x0afp=fopen("message.dat","r+w")\x0d\x0aif (fp!=NULL) \x0d\x0a{ \x0d\x0asystem("cls")\x0d\x0aprintf("\n请输入要修改的姓名:")\x0d\x0ascanf("%s",amend_name)\x0d\x0awhile ((fread(&message,size,1,fp))==1) \x0d\x0a{ \x0d\x0aif ((strcmp(amend_name,message.client_name))==0) \x0d\x0a{ \x0d\x0afound='y'\x0d\x0abreak\x0d\x0a} \x0d\x0a} \x0d\x0aif (found=='y') \x0d\x0a{ printf("==========================================\n")\x0d\x0aprintf("\n用户姓名:%s\n",message.client_name) \x0d\x0a \x0d\x0aprintf("\n电话号码:%s\n",message.client_telephone)\x0d\x0aprintf("==========================================\n")\x0d\x0aprintf("修改用户信息:\n")\x0d\x0aprintf("\n用户姓名:")\x0d\x0ascanf("%s",message.client_name)printf("\n电话号码:")\x0d\x0ascanf("%s",message.client_telephone)\x0d\x0aprintf("\n要保存吗?(y/n):")\x0d\x0ascanf(" %c",&save)\x0d\x0aif (save=='y') \x0d\x0a{ \x0d\x0afseek(fp,-size,1)\x0d\x0afwrite(&message,sizeof(struct telephone),1,fp)\x0d\x0a} \x0d\x0a} \x0d\x0aelse \x0d\x0a{ \x0d\x0aprintf("无此人信息!\n")\x0d\x0a} \x0d\x0a} \x0d\x0aelse \x0d\x0a{ \x0d\x0aprintf("打开文件时出现错误,按任意键返回??\n")\x0d\x0agetchar()\x0d\x0areturn\x0d\x0a} \x0d\x0afclose(fp)\x0d\x0aprintf("要继续吗?(y/n):")\x0d\x0ascanf(" %c",&reply)\x0d\x0a} \x0d\x0aprintf("按任意键返回主菜单??\n")\x0d\x0agetchar()\x0d\x0agetchar()\x0d\x0a} //删除用户信息函数 \x0d\x0avoid delete_client() \x0d\x0a{ \x0d\x0astruct telephone message[N]\x0d\x0astruct telephone temp_str\x0d\x0astruct telephone delete_str\x0d\x0aint i=0,j=0\x0d\x0achar reply='y'\x0d\x0achar found='y'\x0d\x0achar confirm='y'\x0d\x0achar delete_name[20]\x0d\x0aFILE *fp\x0d\x0awhile (reply=='y') \x0d\x0a{ \x0d\x0asystem("cls")\x0d\x0afp=fopen("message.dat","r")\x0d\x0aif (fp!=NULL) \x0d\x0a{ \x0d\x0ai=0\x0d\x0afound='n'\x0d\x0aprintf("\n请输入姓名:")\x0d\x0ascanf("%s",delete_name)\x0d\x0awhile ((fread(&temp_str,sizeof(struct telephone),1,fp))==1) \x0d\x0a{ \x0d\x0aif ((strcmp(delete_name,temp_str.client_name))==0) \x0d\x0a{ \x0d\x0afound='y'\x0d\x0adelete_str=temp_str\x0d\x0a}//查找要删除的记录 \x0d\x0aelse \x0d\x0a{ \x0d\x0amessage[i]=temp_str\x0d\x0ai++\x0d\x0a}//将其它无关记录保存起来 \x0d\x0a} \x0d\x0a} \x0d\x0aelse \x0d\x0a{ \x0d\x0aprintf("打开文件时出现错误,按任意键返回??\n")\x0d\x0agetchar()\x0d\x0areturn\x0d\x0a} \x0d\x0afclose(fp)\x0d\x0aif (found=='y') \x0d\x0a{ \x0d\x0aprintf("==========================================\n")\x0d\x0aprintf("用户姓名:%s\n",delete_str.client_name)\x0d\x0a \x0d\x0aprintf("电话号码:%s\n",delete_str.client_telephone)\x0d\x0aprintf("==========================================\n")\x0d\x0a} \x0d\x0aelse \x0d\x0a{ \x0d\x0aprintf("无此人信息,按任意键返回??\n")\x0d\x0agetchar()\x0d\x0abreak\x0d\x0a} \x0d\x0aprintf("确定要删除吗?(y/n):")\x0d\x0ascanf(" %c",&confirm)\x0d\x0aif (confirm=='y') \x0d\x0a{ \x0d\x0afp=fopen("message.dat","w")\x0d\x0aif (fp!=NULL) \x0d\x0a{ \x0d\x0afor(j=0j3) \x0d\x0a{ \x0d\x0aprintf("请输入1-6之间的整数\n")\x0d\x0aprintf("按任意键返回菜单??\n") \x0d\x0a getchar()\x0d\x0acontinue\x0d\x0a} \x0d\x0aif (choice==1) \x0d\x0a{ \x0d\x0ademand_name()\x0d\x0a} \x0d\x0aelse if (choice==2) \x0d\x0a{ \x0d\x0ademand_telephone()\x0d\x0a} \x0d\x0a} \x0d\x0a} //按用户名查询 \x0d\x0avoid demand_name() \x0d\x0a{ \x0d\x0astruct telephone message\x0d\x0aFILE *fp\x0d\x0achar amend_name[20]\x0d\x0achar reply='y'\x0d\x0achar found='y'\x0d\x0awhile (reply=='y') \x0d\x0a{ \x0d\x0afound='n'\x0d\x0afp=fopen("message.dat","r+w")\x0d\x0aif (fp!=NULL) \x0d\x0a{ \x0d\x0asystem("cls")\x0d\x0aprintf("\n请输入姓名:")\x0d\x0ascanf("%s",amend_name)\x0d\x0awhile ((fread(&message,sizeof(struct telephone),1,fp))==1) \x0d\x0a{ \x0d\x0aif ((strcmp(amend_name,message.client_name))==0) \x0d\x0a{ \x0d\x0afound='y'\x0d\x0abreak\x0d\x0a} \x0d\x0a} \x0d\x0aif (found=='y') \x0d\x0a{ printf("==========================================\n")\x0d\x0aprintf("用户姓名:%s\n",message.client_name)printf("电话号码:%s\n",message.client_telephone)\x0d\x0aprintf("==========================================\n")\x0d\x0a} \x0d\x0aelse \x0d\x0a{ \x0d\x0aprintf("无此人信息!\n")\x0d\x0a} \x0d\x0a} \x0d\x0aelse \x0d\x0a{ \x0d\x0aprintf("打开文件时出现错误,按任意键返回??\n")\x0d\x0agetchar()\x0d\x0areturn\x0d\x0a} \x0d\x0afclose(fp)\x0d\x0aprintf("要继续吗?(y/n):")\x0d\x0ascanf(" %c",&reply)\x0d\x0a} \x0d\x0aprintf("按任意键返回主菜单??\n")\x0d\x0agetchar()\x0d\x0agetchar()\x0d\x0a} //按电话号码查询 \x0d\x0avoid demand_telephone() \x0d\x0a{ \x0d\x0astruct telephone message\x0d\x0aFILE *fp\x0d\x0achar telephone[20]\x0d\x0achar reply='y'\x0d\x0achar found='y'\x0d\x0awhile (reply=='y') \x0d\x0a{ \x0d\x0afound='n'\x0d\x0afp=fopen("message.dat","r+w")\x0d\x0aif (fp!=NULL) \x0d\x0a{ \x0d\x0asystem("cls")\x0d\x0aprintf("\n请输入电话号码:")\x0d\x0ascanf("%s",telephone)\x0d\x0awhile ((fread(&message,sizeof(struct telephone),1,fp))==1) \x0d\x0a{ \x0d\x0aif ((strcmp(telephone,message.client_telephone))==0) \x0d\x0a{ \x0d\x0afound='y'\x0d\x0abreak\x0d\x0a} \x0d\x0a} \x0d\x0aif (found=='y') \x0d\x0a{ printf("==========================================\n")\x0d\x0aprintf("用户姓名:%s\n",message.client_name)printf("电话号码:%s\n",message.client_telephone)\x0d\x0aprintf("==========================================\n")\x0d\x0a} \x0d\x0aelse \x0d\x0a{ \x0d\x0aprintf("无此电话号码的有关信息!\n")\x0d\x0a} \x0d\x0a} \x0d\x0aelse \x0d\x0a{ \x0d\x0aprintf("打开文件时出现错误,按任意键返回??\n")\x0d\x0agetchar()\x0d\x0areturn\x0d\x0a} \x0d\x0afclose(fp)\x0d\x0aprintf("要继续吗?(y/n):")\x0d\x0ascanf(" %c",&reply)\x0d\x0a} \x0d\x0aprintf("按任意键返回主菜单??\n")\x0d\x0agetchar()\x0d\x0agetchar()\x0d\x0a} //用户信息汇总函数 \x0d\x0avoid collect_telephone() \x0d\x0a{ \x0d\x0astruct telephone message\x0d\x0aFILE *fp\x0d\x0afp=fopen("message.dat","r")\x0d\x0aif (fp!=NULL) \x0d\x0a{ \x0d\x0asystem("cls")\x0d\x0aprintf("\n用户姓名\t\t电话号码\n")\x0d\x0awhile ((fread(&message,sizeof(struct telephone),1,fp))==1) \x0d\x0a{ \x0d\x0aprintf("\n%-24s",message.client_name)printf("%-12s\n",message.client_telephone)\x0d\x0a} \x0d\x0a} \x0d\x0aelse \x0d\x0a{ \x0d\x0aprintf("打开文件时出现错误,按任意键返回??\n")\x0d\x0agetchar()\x0d\x0areturn\x0d\x0a} \x0d\x0afclose(fp)\x0d\x0aprintf("按任意键返回主菜单??\n")\x0d\x0agetch()\x0d\x0a} void main() \x0d\x0a{ \x0d\x0achar choice[10]=""\x0d\x0aint len=0\x0d\x0awhile (choice[0]!='7') \x0d\x0a{ printf("\t==========电话本号码查询系统=============\n")printf("\t\t 1、添加新联系人\n")\x0d\x0aprintf("\t\t 2、修改联系人信息\n")\x0d\x0aprintf("\t\t 3、删除联系人信息\n")\x0d\x0aprintf("\t\t 4、联系人信息查询\n")\x0d\x0aprintf("\t\t 5、联系人信息汇总\n")\x0d\x0a \x0d\x0aprintf("\t\t 7、退出\n")\x0d\x0aprintf("\t=========================================\n")\x0d\x0aprintf("请选择(1-7):")\x0d\x0ascanf("%s",choice)\x0d\x0alen=strlen(choice)\x0d\x0aif (len>1) \x0d\x0a{ \x0d\x0aprintf("请输入1-6之间的整数\n")\x0d\x0aprintf("按任意键返回主菜单??\n")\x0d\x0agetchar()\x0d\x0agetchar()\x0d\x0acontinue\x0d\x0a} switch (choice[0]) { \x0d\x0acase '1': \x0d\x0ainput()\x0d\x0abreak\x0d\x0acase '2': \x0d\x0aamend()\x0d\x0abreak\x0d\x0acase '3': \x0d\x0adelete_client()\x0d\x0abreak\x0d\

#include<string.h>

#include<stdio.h>

#include<stdlib.h>

#include<malloc.h>

struct people

{ char name[100]

char num[100]

struct people* next

}

struct people* head

struct people* p

void inputpeo()

{ //插入头节点后

while(1)

{ struct people* newpeople = (people*) malloc(sizeof(people))

  p = head

  printf("输入姓名:\n")

  scanf("%s", newpeople->name)

  printf("输入电话:\n")

  scanf("%s", newpeople->num)

  newpeople->next = head->next

  head->next = newpeople

  printf("按任意键接着输入,按R返回目录\n")

  getchar()

  char ch = getchar()

  if(ch == 'R' || ch == 'r')

  { break

  }

}

}

void showpeo()

{ for(p = headp != NULLp = p->next)

{ if(p != head)

  { printf("姓名:%s 电话:%s\n", p->name, p->num)

  }

}

}

void deletepeo(people *peo)

{ people *q = head->next

for(p = headq != NULLq = q->next, p = p->next)

{ if(strcmp(q->name , peo->name ) == 0)

  { p->next = q->next

    free(q)

  }

}

if(q == NULL) printf("未找到联系人\n")

}

void find(people *peo)

{ for(p = headp != NULLp = p->next)

{ if(p != head)

  { if(strcmp(p->name , peo->name ) == 0)

    { printf("姓名:%s 电话:%s\n", p->name , p->num )

      return

    }

  }

}

if(p == NULL) printf("没找到联系人\n")

}

void change(people *peo)

{ for(p = headp != NULLp = p->next)

{ if(p != head)

  { if(strcmp(p->name , peo->name ) == 0)

    { printf("姓名:%s 电话:%s\n", p->name , p->num )

      printf("现将电话修改为:\n")

      scanf("%s", p->num )

      return

    }

  }

}

if(p == NULL) printf("没找到联系人\n")

}

void menu()

{ printf("输入1录入联系人\n")

printf("输入2显示联系人\n")

printf("输入3删除联系人\n")

printf("输入4查找联系人\n")

printf("输入5修改联系人\n")

printf("输入6退出系统\n")

}

int main()

{ head = (people*) malloc(sizeof(people))

head->next = NULL//定义了一个可以指向结构体的指针

menu()

int n

scanf("%d", &n)

while (n != 6)

{ people *peo = (people*) malloc(sizeof(people))

  switch (n)

  { case 1://1.录入信息

      inputpeo()

      break

    case 2://2.显示信息

      showpeo()

      break

    case 3://3.删除信息

      printf("输入需要删除的人的名字:\n")

      scanf("%s", peo->name )

      deletepeo(peo)

      break

    case 4://4.查找信息

      printf("输入需要查找的人的名字:\n")

      scanf("%s", peo->name)

      find(peo)

      break

    case 5://5.修改信息

      printf("输入需要修改的人的名字:\n")

      scanf("%s", peo->name)

      change(peo)

      break

    default:

      printf("输入错误,重新输入\n")

      break

  }

  menu()

  scanf("%d", &n)

}

printf("结束")

return 0

}