最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言設(shè)計(jì)簡(jiǎn)易電話簿

 更新時(shí)間:2019年12月18日 16:40:47   作者:芥末味鴨腸  
這篇文章主要為大家詳細(xì)介紹了C語言設(shè)計(jì)簡(jiǎn)易電話簿,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語言實(shí)現(xiàn)電話簿的具體代碼,供大家參考,具體內(nèi)容如下

#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include <getch.h>

typedef struct Contact{ //定義聯(lián)系人結(jié)構(gòu)體
 char name[20]; //姓名
 char sex; //性別
 char tel[12]; //電話
}Contact;

Contact contacts[100];

void show_contact(Contact* conp){ //顯示聯(lián)系人信息
 printf("姓名:%s\t性別:%s\t電話:%s\n",conp->name,'w'==conp->sex?"女":"男",conp->tel); 
}

void scan_contact(Contact* conp){ //輸入聯(lián)系人信息
 printf("請(qǐng)輸入姓名,性別(w:女m:男),電話:");
 scanf("%s%s%s",conp->name,&conp->sex,conp->tel);
}

void add_contacts(void){ //添加聯(lián)系人
 for(int i=0;i<100;i++){
 if(0 == contacts[i].sex){
  scan_contact(contacts+i);
  printf("添加成功!\n");
  return;
 }
 } 
 printf("添加人已滿\n");
}

void del_contacts(void){ //刪除聯(lián)系人
 char str[20] = {};
 printf("請(qǐng)輸入刪除人姓名:\n"); 
 scanf("%s",str);
 for(int i=0;i<100;i++){
 if(0 == strcmp(str,contacts[i].name)){
  contacts[i].sex = 0;
  printf("刪除聯(lián)系人成功\n");
  return;
 } 
 }
 printf("聯(lián)系人不存在\n");
}
void find_contacts(void){ //查找聯(lián)系人
 char str[20] = {};
 printf("請(qǐng)輸入要查詢的手機(jī)號(hào)\n");
 scanf("%s",str);
 getchar();
 for(int i=0;i<100;i++){
 if(strstr(contacts[i].tel,str)){
  show_contact(contacts+i);
 } 
 }
 printf("請(qǐng)輸入任意鍵繼續(xù)...\n");
 getch();
}

void list_contacts(void){ //顯示聯(lián)系人信息
 for(int i=0;i<100;i++){
 if(contacts[i].sex){
  show_contact(contacts+i);
 } 
 }
 printf("請(qǐng)輸入任意鍵繼續(xù)...\n");
 getch();
 
}
 
void change_contacts(void){ //修改聯(lián)系人信息
 char str[20] = {};
 printf("請(qǐng)輸入要修改的聯(lián)系人姓名:\n"); 
 scanf("%s",str);
 for(int i=0;i<100;i++){
 if(0 == strcmp(str,contacts[i].name)){
  show_contact(contacts+i);
  scan_contact(contacts+i);
  return; 
 } 
 }
 printf("沒有找到要修改的聯(lián)系人");
}
char menu(void){
 system("clear");
 printf("歡迎使用電話蒲\n");
 printf("--------------\n");
 printf("1、添加聯(lián)系人 \n");
 printf("2、刪除聯(lián)系人\n");
 printf("3、修改聯(lián)系人信息\n");
 printf("4、查找聯(lián)系人\n");
 printf("5、顯示所有聯(lián)系人\n");
 printf("--------------\n");
 printf("請(qǐng)輸入指令:");
 char cmd = getch();
 printf("%c\n",cmd);
 return cmd;
}

int main(){
 while(true){
 switch(menu()){
  case '1':add_contacts(); break; 
  case '2':del_contacts(); break; 
  case '3':change_contacts(); break; 
  case '4':find_contacts(); break; 
  case '5':list_contacts(); break; 
  //case '6':exit(); break;
  default: printf("cmd error!\n");
 }
 } 
}
//------------------------------------總結(jié)------------------------------------------
//添加與刪除聯(lián)系人的突破口:可以選擇性別的返回值來實(shí)現(xiàn)添加與刪除。
//查找聯(lián)系人 strstr()函數(shù)的作用:
//strstr(str1,str2) 函數(shù)用于判斷字符串str2是否是str1的子串。如果是,則該函數(shù)返回str2在str1中首次出現(xiàn)的地址;否則,返回NULL。
//因此查找聯(lián)系人時(shí)便可只打出電話的一部分就能查找到聯(lián)系人。

//該程序的弊端:不能每次打開就有之前保存的聯(lián)系人。
//優(yōu)化: 可以將聯(lián)系人保存到文件中,并且在程序打開的時(shí)候打開文件。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于VS+Opencv2.4.10微信跳一跳輔助工具

    基于VS+Opencv2.4.10微信跳一跳輔助工具

    這篇文章主要為大家詳細(xì)介紹了基于VS+Opencv2.4.10微信跳一跳輔助工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++深入探究二階構(gòu)造模式的原理與使用

    C++深入探究二階構(gòu)造模式的原理與使用

    C++中經(jīng)常會(huì)因?yàn)檎{(diào)用系統(tǒng)資源失敗導(dǎo)致出現(xiàn)BUG,所以在類調(diào)用構(gòu)造函數(shù)需要分配系統(tǒng)資源時(shí)會(huì)出現(xiàn)BUG,從而導(dǎo)致類對(duì)象雖然被創(chuàng)建,但是只是個(gè)半成品,為了避免這種情況需要使用二階構(gòu)造模式
    2022-04-04
  • Windows系統(tǒng)下使用C語言編寫單線程的文件備份程序

    Windows系統(tǒng)下使用C語言編寫單線程的文件備份程序

    這篇文章主要介紹了Windows系統(tǒng)下使用C語言編寫單線程的文件備份程序,文中給出了實(shí)現(xiàn)的幾個(gè)關(guān)鍵代碼片段,剩下的只要套上main和線程調(diào)用的相關(guān)函數(shù)即可,非常詳細(xì),需要的朋友可以參考下
    2016-02-02
  • 一篇文章帶你掌握C++虛函數(shù)的來龍去脈

    一篇文章帶你掌握C++虛函數(shù)的來龍去脈

    虛函數(shù)主要通過V-Table虛函數(shù)表來實(shí)現(xiàn),該表主要包含一個(gè)類的虛函數(shù)的地址表,可解決繼承、覆蓋的問題,下面這篇文章主要給大家介紹了如何通過一篇文章帶你掌握C++虛函數(shù)的來龍去脈,需要的朋友可以參考下
    2022-10-10
  • C語言入門之查找子串問題

    C語言入門之查找子串問題

    這篇文章主要介紹了C語言入門之查找子串問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • QT .pro文件的實(shí)現(xiàn)

    QT .pro文件的實(shí)現(xiàn)

    本文主要介紹了QT .pro文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • C語言實(shí)現(xiàn)支持動(dòng)態(tài)拓展和銷毀的線程池

    C語言實(shí)現(xiàn)支持動(dòng)態(tài)拓展和銷毀的線程池

    這篇文章主要為大家介紹了C語言實(shí)現(xiàn)支持動(dòng)態(tài)拓展和銷毀的線程池,感興趣的小伙伴們可以參考一下
    2016-01-01
  • C語言修煉之路數(shù)據(jù)類型悟正法 解析存儲(chǔ)定風(fēng)魔下篇

    C語言修煉之路數(shù)據(jù)類型悟正法 解析存儲(chǔ)定風(fēng)魔下篇

    使用編程語言進(jìn)行編程時(shí),需要用到各種變量來存儲(chǔ)各種信息。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個(gè)變量時(shí),就會(huì)在內(nèi)存中保留一些空間。您可能需要存儲(chǔ)各種數(shù)據(jù)類型的信息,操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么
    2022-02-02
  • DEVC++實(shí)現(xiàn)推箱子小游戲

    DEVC++實(shí)現(xiàn)推箱子小游戲

    這篇文章主要為大家詳細(xì)介紹了DEVC++實(shí)現(xiàn)推箱子小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • C++核心編程之內(nèi)存分區(qū)詳解

    C++核心編程之內(nèi)存分區(qū)詳解

    這篇文章主要為大家詳細(xì)介紹了C++核心編程之內(nèi)存分區(qū),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評(píng)論

任丘市| 龙川县| 龙泉市| 芜湖市| 宣武区| 巴南区| 阿勒泰市| 雅江县| 光山县| 察哈| 新竹市| 田东县| 怀安县| 枣阳市| 渝中区| 保德县| 如皋市| 诸城市| 金华市| 日照市| 蒙自县| 和硕县| 独山县| 镇康县| 正宁县| 格尔木市| 阿克陶县| 建宁县| 舒城县| 海门市| 普格县| 浙江省| 彭山县| 茌平县| 灵武市| 伊春市| 金沙县| 沙坪坝区| 宁蒗| 武穴市| 太原市|