標籤:c語言 通訊錄 數組 結構體
//此部分為該通訊錄頭部(head.h)
#ifndef _CONTACT__#define _CONTACT__#define NAME_MAX 20#define SEX_MAX 5#define TEL_MAX 11#define ADDR_MAX 20#define PERSON_MAX 1000#include <stdio.h>#include <string.h>typedef struct person{char name[NAME_MAX];char sex[SEX_MAX];int age;char tel[TEL_MAX];char addr[ADDR_MAX];}*pPerson;typedef struct contact{struct person TelBook[PERSON_MAX];int count;}*pCon;void add_peo(pCon pcon);void del_peo(pCon pcon);void search_peo(pCon pcon);void modil_peo(pCon pcon);void show_peo(pCon pcon);void clear_peo(pCon pcon);#endif
//此部分為通訊錄最重要部分,即功能函數(contact.c)
#include "head.h"int find(pCon pcon,char *name){int i=0;for(i=0;i<pcon->count;i++){if(strcmp((pcon->TelBook[i]).name,name)==0)return i;}return -1;}void add_peo(pCon pcon){if((pcon->count)==PERSON_MAX)printf("通訊錄已滿,請刪除後再添加。\n");printf("姓名:");scanf("%s",(pcon->TelBook[pcon->count]).name);printf("性別:");scanf("%s",(pcon->TelBook[pcon->count]).sex);printf("年齡:");scanf("%d",&(pcon->TelBook[pcon->count]).age);printf("電話:");scanf("%s",(pcon->TelBook[pcon->count]).tel);printf("家庭住址:");scanf("%s",(pcon->TelBook[pcon->count]).addr);pcon->count++;}void del_peo(pCon pcon){int ret=0;char peoplename[NAME_MAX];printf("請輸入您要刪除的連絡人:");scanf("%s",peoplename);ret=find(pcon,peoplename);if(ret==-1){printf("連絡人不存在。\n");}else{int j;for(j=ret;j<pcon->count-1;j++){pcon->TelBook[j]=pcon->TelBook[j+1];}printf("刪除連絡人成功。\n");}pcon->count--;}void search_peo(pCon pcon){int ret=0;char peoplename[NAME_MAX];printf("請輸入您要尋找的連絡人:");scanf("%s",peoplename);ret=find(pcon,peoplename);if(ret==-1){printf("連絡人不存在。\n");}else{printf(" %s\t",(pcon->TelBook[ret]).name);printf(" %s\t",(pcon->TelBook[ret]).sex);printf(" %d\t",(pcon->TelBook[ret]).age);printf(" %s\t",(pcon->TelBook[ret]).tel);printf(" %s\n",(pcon->TelBook[ret]).addr);}}void modil_peo(pCon pcon){int ret=0;char peoplename[NAME_MAX];printf("請輸入您要修改的連絡人:");scanf("%s",peoplename);ret=find(pcon,peoplename);if(ret==-1){printf("連絡人不存在。");}else{printf("姓名:");scanf("%s",(pcon->TelBook[ret]).name);printf("性別:");scanf("%s",(pcon->TelBook[ret]).sex);printf("年齡:");scanf("%d",&(pcon->TelBook[ret]).age);printf("電話:");scanf("%s",(pcon->TelBook[ret]).tel);printf("家庭住址:");scanf("%s",(pcon->TelBook[ret]).addr);}}void show_peo(pCon pcon){int i;for(i=0;i<pcon->count;i++){printf(" %d.%s\t",i+1,(pcon->TelBook[i]).name);printf(" %s\t",(pcon->TelBook[i]).sex);printf(" %d\t",(pcon->TelBook[i]).age);printf(" %s\t",(pcon->TelBook[i]).tel);printf(" %s\n",(pcon->TelBook[i]).addr);}}void clear_peo(pCon pcon){pcon->count=0;printf("通訊錄已清空。\n");}
//此部分為通訊錄測試部分,即main函數部分(test.c)
#include "head.h"void print(){printf(" ************************************************************************\n");printf(" || ||\n");printf(" || 1. 新增連絡人... 2. 刪除連絡人 3.尋找連絡人 ||\n");printf(" || 4. 修改連絡人 5. 顯示連絡人 6.清空連絡人 ||\n");printf(" || ||\n");printf(" ************************************************************************\n");}int main (){struct contact my_contact;int input;my_contact.count=0;while(1){print();printf("請選擇操作:");scanf("%d",&input);switch(input){case 1:add_peo(&my_contact);break;case 2:del_peo(&my_contact);break;case 3:search_peo(&my_contact);break;case 4:modil_peo(&my_contact);break;case 5:show_peo(&my_contact);break;case 6:clear_peo(&my_contact);break;default:printf("操作錯誤\n");break;}}return 0;}
新增連絡人...
刪除連絡人
尋找連絡人
修改連絡人
顯示連絡人
清空連絡人
【C語言】通訊錄製作