【C語言】通訊錄製作
阿新 • • 發佈:2019-02-09
//此部分為該通訊錄頭部(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; }
新增聯絡人
刪除聯絡人
查詢聯絡人
修改聯絡人
顯示聯絡人
清空聯絡人