用c語言實現 一個通訊錄(實現 增加、刪除、尋找、修改、顯示、清空功能)

來源:互聯網
上載者:User

標籤:函數調用   結構體   typedef   switch   struct   

來源程式標頭檔contact.h

#ifndef _CONTACT_H__#define _CONTACT_H__#define NAME_MAX 20#define SEX_MAX 5#define TELE_MAX 15#define ADDR_MAX 50#define PEO_MAX 1000#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct people{char name[NAME_MAX];char sex[SEX_MAX];int age;char tele[TELE_MAX];char addr[ADDR_MAX];}*pPeople;typedef struct contact{struct people dhb[PEO_MAX];    int count;}*pCon;void add_peo(pCon pcon);void del_peo(pCon pcon);void search_peo(pCon pcon);void modify_peo(pCon pcon);void show_peo(pCon pcon);void clear_peo(pCon pcon);#endif
</pre>來源程式函數段實現<p></p><p></p><p></p><pre name="code" class="cpp">#include "contact.h"int find(pCon pcon,char * name){int i=0;while(i<pcon->count){if(strcmp(name,pcon->dhb[i].name)==0)//尋找到匹配的姓名就輸出ireturn i;i++;}return -1;}void add_peo(pCon pcon)//增加儲存人函數{//判斷if(pcon->count==PEO_MAX){printf("儲存空間已滿\n");return ;}printf("name:>");scanf("%s",(pcon->dhb[pcon->count]).name);printf("sex:>");scanf("%s",(pcon->dhb[pcon->count]).sex);printf("age:>");scanf("%d",&((pcon->dhb[pcon->count]).age));printf("tele:>");scanf("%s",(pcon->dhb[pcon->count]).tele);printf("addr:>");scanf("%s",(pcon->dhb[pcon->count]).addr);pcon->count++;}void del_peo(pCon pcon)//刪除函數{char tmpName[NAME_MAX];int ret=0;printf("請輸入你所要刪除的姓名:>");scanf("%s",tmpName);ret=find(pcon,tmpName);if(-1 != ret){int j=ret;for(;j<pcon->count-1;j++){pcon->dhb[j]=pcon->dhb[j+1];//用後面的資料覆蓋所要刪除的資料}pcon->count--;//儲存人數減少一位}else{printf("找不到所要刪除的資訊\n");}}void search_peo(pCon pcon)//尋找函數{char tmpName[NAME_MAX];int ret=0;printf("請輸入你所要尋找的姓名:>");scanf("%s",tmpName);ret = find(pcon,tmpName);if(ret != -1){printf("%s\t%s\t%d\t%s\t%s\t\n",pcon->dhb[ret].name,pcon->dhb[ret].sex,pcon->dhb[ret].age,pcon->dhb[ret].tele,pcon->dhb[ret].addr);}else{printf("不存在所要尋找的資訊\n");}}void modify_peo(pCon pcon)//修改資料函數{char tmpName[NAME_MAX];int ret=0;printf("請輸入你所要修改的姓名:>");scanf("%s",tmpName);ret = find(pcon,tmpName);if(-1 != ret)//找到修改姓名之後重新賦值{printf("name:>");scanf("%s",(pcon->dhb[ret]).name);printf("sex:>");scanf("%s",(pcon->dhb[ret]).sex);printf("age:>");scanf("%d",&((pcon->dhb[ret]).age));printf("tele:>");scanf("%s",(pcon->dhb[ret]).tele);printf("addr:>");scanf("%s",(pcon->dhb[ret]).addr);}}void show_peo(pCon pcon)//顯示函數{int i;for(i=0;i<pcon->count;i++) //顯示並列印說有連絡人資訊{printf("%s\t%s\t%d\t%s\t%s\t\n",pcon->dhb[i].name,pcon->dhb[i].sex,pcon->dhb[i].age,pcon->dhb[i].tele,pcon->dhb[i].addr);}}void clear_peo(pCon pcon)//清除所有連絡人資訊{pcon->count = 0;}
</pre><p></p><p>來源程式主函數調用段</p><p></p><p></p><pre name="code" class="cpp">#include "contact.h"void show_menu(){printf("***************************\n");printf("*   1>add       2>del     *\n");printf("*   3>search    4>modify  *\n");printf("*   5>show      6>clear   *\n");printf("***************************\n");}int main(){struct contact my_contact;int input=1;my_contact.count = 0;while(input){show_menu();printf("please input:>");scanf("%d",&input);switch(input)//判斷並調用函數{case 1:{add_peo(&my_contact);system("cls");//調用清屏函數    break;}case 2:{del_peo(&my_contact);system("cls");//調用清屏函數break;}case 3:search_peo(&my_contact);break;case 4:{modify_peo(&my_contact);system("cls");//調用清屏函數break;}case 5:show_peo(&my_contact);break;case 6:clear_peo(&my_contact);break;default:break;}}return 0;}

增加連絡人函數

void add_peo(pCon pcon)//增加儲存人函數{//判斷if(pcon->count==PEO_MAX){printf("儲存空間已滿\n");return ;}printf("name:>");scanf("%s",(pcon->dhb[pcon->count]).name);printf("sex:>");scanf("%s",(pcon->dhb[pcon->count]).sex);printf("age:>");scanf("%d",&((pcon->dhb[pcon->count]).age));printf("tele:>");scanf("%s",(pcon->dhb[pcon->count]).tele);printf("addr:>");scanf("%s",(pcon->dhb[pcon->count]).addr);pcon->count++;}



刪除連絡人函數

void del_peo(pCon pcon)//刪除函數{char tmpName[NAME_MAX];int ret=0;printf("請輸入你所要刪除的姓名:>");scanf("%s",tmpName);ret=find(pcon,tmpName);if(-1 != ret){int j=ret;for(;j<pcon->count-1;j++){pcon->dhb[j]=pcon->dhb[j+1];//用後面的資料覆蓋所要刪除的資料}pcon->count--;//儲存人數減少一位}else{printf("找不到所要刪除的資訊\n");}}



尋找連絡人函數段


void search_peo(pCon pcon)//尋找函數{char tmpName[NAME_MAX];int ret=0;printf("請輸入你所要尋找的姓名:>");scanf("%s",tmpName);ret = find(pcon,tmpName);if(ret != -1){printf("%s\t%s\t%d\t%s\t%s\t\n",pcon->dhb[ret].name,pcon->dhb[ret].sex,pcon->dhb[ret].age,pcon->dhb[ret].tele,pcon->dhb[ret].addr);}else{printf("不存在所要尋找的資訊\n");}}



修改連絡人函數段


void modify_peo(pCon pcon)//修改資料函數{char tmpName[NAME_MAX];int ret=0;printf("請輸入你所要修改的姓名:>");scanf("%s",tmpName);ret = find(pcon,tmpName);if(-1 != ret)//找到修改姓名之後重新賦值{printf("name:>");scanf("%s",(pcon->dhb[ret]).name);printf("sex:>");scanf("%s",(pcon->dhb[ret]).sex);printf("age:>");scanf("%d",&((pcon->dhb[ret]).age));printf("tele:>");scanf("%s",(pcon->dhb[ret]).tele);printf("addr:>");scanf("%s",(pcon->dhb[ret]).addr);}}




顯示連絡人函數段


void show_peo(pCon pcon)//顯示函數{int i;for(i=0;i<pcon->count;i++) //顯示並列印說有連絡人資訊{printf("%s\t%s\t%d\t%s\t%s\t\n",pcon->dhb[i].name,pcon->dhb[i].sex,pcon->dhb[i].age,pcon->dhb[i].tele,pcon->dhb[i].addr);}}


清空連絡人函數段


void clear_peo(pCon pcon)//清除所有連絡人資訊{pcon->count = 0;}



用c語言實現 一個通訊錄(實現 增加、刪除、尋找、修改、顯示、清空功能)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.