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

利用C語(yǔ)言結(jié)構(gòu)體實(shí)現(xiàn)通訊錄

 更新時(shí)間:2019年01月31日 14:08:51   作者:MyFamily_IT  
這篇文章主要為大家詳細(xì)介紹了利用C語(yǔ)言結(jié)構(gòu)體實(shí)現(xiàn)通訊錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言結(jié)構(gòu)體實(shí)現(xiàn)通訊錄的具體代碼,供大家參考,具體內(nèi)容如下

用來(lái)存儲(chǔ)1000個(gè)人的信息的通訊錄,每個(gè)人的信息包括:

姓名、性別、年齡、電話(huà)、住址

程序如下:

#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 
 
struct People 
{ 
 char name[20]; 
 char sex[5]; 
 int age; 
 char tel[15]; 
 char addr[50]; 
};       //定義人的信息結(jié)構(gòu)體(包含各種信息) 
 
struct Contact 
{ 
 struct People person[1000]; //定義通訊錄結(jié)構(gòu)體
 int n;  //(包含人的信息的結(jié)構(gòu)體和用戶(hù)個(gè)數(shù)n)
};       
 
typedef struct Contact * p; 
 
void menu(); 
int add(p q);  //p是一個(gè)結(jié)構(gòu)體指針類(lèi)型,q是一個(gè)指向struct Contact的一個(gè)指針 
int delete(p q); //例如:typedef int * int 即 int *p ==> int p 
int find(p q); 
int modify(p q); 
int show(p q); 
int clear(p q); //函數(shù)的聲明 
 
void menu()     //目錄格式
{ 
 printf("====================歡迎來(lái)到蘇嵌154通訊錄==================\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("----------------------6.清空所有聯(lián)系人---------------------\n"); 
 printf("----------------------0.謝謝使用---------------------------\n"); 
 printf("====================歡迎來(lái)到蘇嵌154通訊錄==================\n"); 
} 
 
int add(p q) //添加聯(lián)系人
{ 
 if((*q).n >= 1000) 
 { 
  printf("contact is full!\n"); 
  return -1; 
 } 
 else 
 { 
  printf("輸入姓名:\n"); 
  scanf("%s",(*q).person[(*q).n].name); 
  printf("輸入性別:\n"); 
  scanf("%s",(*q).person[(*q).n].sex); 
  printf("輸入年齡:\n"); 
  scanf("%d",&(*q).person[(*q).n].age);  
  printf("輸入電話(huà):\n"); 
  scanf("%s",(*q).person[(*q).n].tel); 
  printf("輸入地址:\n"); 
  scanf("%s",(*q).person[(*q).n].addr); 
  ((*q).n)++; 
 } 
 return 0; 
}             
 
 
int delete(p q) //刪除聯(lián)系人
{ 
 int ret = find(q);     //調(diào)用查找函數(shù)并保存其值 
 if(ret != -1) 
 { 
  int i = 0; 
  i = ret;      //這里要用另一個(gè)變量來(lái)保存輸入的姓名 
  for(i = 0;i < (*q).n-1;i++) 
  { 
   (*q).person[i] = (*q).person[i+1];   //用后一個(gè)覆蓋前邊的,如果要?jiǎng)h除的是最后一個(gè)不進(jìn)行此步驟 
    
  } 
  (*q).n --;     //直接減去最后一個(gè)即count-- 
 } 
 return 0;  
} 
 
int find(p q) //查找聯(lián)系人
{ 
 int i = 0; 
 char ret[20];      //用另一個(gè)數(shù)組來(lái)保存姓名 
 printf("輸入姓名:\n"); 
 scanf("%s",ret); 
 while(i <= (*q).n) 
 { 
  if(strcmp(ret,(*q).person[i].name)== 0)   //比較輸入的姓名和通訊錄中已有的姓名 
  { 
   printf("姓名\t性別\t年齡\t電話(huà)\t地址\4t\n");  //制表符來(lái)制作表頭 
   printf("%s\t",(*q).person[i].name); 
   printf("%s\t",(*q).person[i].sex); 
   printf("%d\t",(*q).person[i].age); 
   printf("%s\t",(*q).person[i].tel); 
   printf("%s\4t\n",(*q).person[i].addr);  
   return i; 
  } 
  i++; 
 } 
 printf("你丫的我班沒(méi)這個(gè)人\n"); 
 return -1; 
} 
 
int modify(p q)     //修改函數(shù),首先找到如要修改的姓名,然后重新輸入 
{ 
 int ret = find(q); 
 if(ret != -1) 
 { 
  printf("輸入修改的姓名:\n"); 
  scanf("%s",(*q).person[ret].name); 
  printf("輸入修改的性別:\n"); 
  scanf("%s",(*q).person[ret].sex); 
  printf("輸入修改的年齡:\n"); 
  scanf("%d",&((*q).person[ret].age)); 
  printf("輸入修改的電話(huà):\n"); 
  scanf("%s",(*q).person[ret].tel); 
  printf("輸入修改的地址:\n"); 
  scanf("%s",(*q).person[ret].addr); 
 } 
 else 
 { 
  printf("你丫的我班沒(méi)這個(gè)人\n"); 
 } 
 return 0; 
} 
 
int show(p q) //顯示全部聯(lián)系人
{ 
 int i = 0; 
 printf("姓名\t性別\t年齡\t電話(huà)\t地址\4t\n");  
 for(i = 0;i < (*q).n;i++) 
 { 
  printf("%s\t",(*q).person[i].name); 
  printf("%s\t",(*q).person[i].sex); 
  printf("%d\t",(*q).person[i].age); 
  printf("%s\t",(*q).person[i].tel); 
  printf("%s\4t\n",(*q).person[i].addr); 
 } 
 printf("\n"); 
 return 0; 
} 
 
int clear(p q) //清除所有人,直接讓成員個(gè)數(shù)變?yōu)?
{ 
 (*q).n = 0 ; 
 return 0; 
}        
 
 
int main() 
{  
 int n=1; 
 struct Contact people;  //調(diào)用通訊錄結(jié)構(gòu)體 
 people.n = 0;   //初始化n 
 while(n) 
 { 
  menu(); 
  printf("請(qǐng)選擇你的騷操作:\n");
  scanf("%d",&n); 
  switch(n)  //switch case語(yǔ)句分支選擇不同函數(shù)實(shí)現(xiàn)不同作用 
  { 
   case 1:
   { 
    add(&people); 
    break; 
   } 
   case 2: 
   { 
    delete(&people); 
    break; 
   } 
   case 3: 
   { 
    find(&people); 
    break; 
   }  
   case 4: 
   { 
    modify(&people); 
    break; 
   } 
   case 5: 
   { 
    show(&people); 
    break; 
   } 
   case 6: 
   { 
    clear(&people); 
    break; 
   } 
   default: 
   { 
    return 0; 
    break; 
   }     
  } 
 } 
 return 0; 
} 

這樣就實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的通訊錄。

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

相關(guān)文章

  • C語(yǔ)言中的文件操作詳解

    C語(yǔ)言中的文件操作詳解

    這篇文章主要介紹了C語(yǔ)言中的文件操作詳解,使用文件可以將數(shù)據(jù)直接存放到電腦的硬盤(pán)上,做到了數(shù)據(jù)的持久化
    2022-07-07
  • C語(yǔ)言實(shí)現(xiàn)英文單詞助手

    C語(yǔ)言實(shí)現(xiàn)英文單詞助手

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)單詞小助手,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C++核心編程之類(lèi)和對(duì)象詳解

    C++核心編程之類(lèi)和對(duì)象詳解

    這篇文章主要介紹了C++編程進(jìn)階之類(lèi)和對(duì)象用法等相關(guān)使用技巧,需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-09-09
  • 對(duì)for循環(huán)中表達(dá)式和循環(huán)體的執(zhí)行順序詳解

    對(duì)for循環(huán)中表達(dá)式和循環(huán)體的執(zhí)行順序詳解

    今天小編就為大家分享一篇對(duì)for循環(huán)中表達(dá)式和循環(huán)體的執(zhí)行順序詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Opengl?ES之FBO幀緩沖對(duì)象使用詳解

    Opengl?ES之FBO幀緩沖對(duì)象使用詳解

    這篇文章主要為大家介紹了Opengl?ES之FBO幀緩沖對(duì)象使用詳解,<BR>有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • c++與python實(shí)現(xiàn)二分查找的原理及實(shí)現(xiàn)

    c++與python實(shí)現(xiàn)二分查找的原理及實(shí)現(xiàn)

    本文介紹了c++與python實(shí)現(xiàn)二分查找的原理及實(shí)現(xiàn),二分查找指首先將數(shù)組中間值和目標(biāo)值進(jìn)行比較,如果相等則返回;如果不相等,則選擇中間值左邊的一半或者右邊的一半進(jìn)行比較;不斷重復(fù)直到檢索完畢,下文相關(guān)資料需要的朋友可以參考一下
    2022-03-03
  • C語(yǔ)言貪吃蛇經(jīng)典小游戲

    C語(yǔ)言貪吃蛇經(jīng)典小游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言貪吃蛇經(jīng)典小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++中如何修改const變量你知道嗎

    C++中如何修改const變量你知道嗎

    這篇文章主要為大家詳細(xì)介紹了C++修改const變量,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • C語(yǔ)言順序表實(shí)現(xiàn)代碼排錯(cuò)

    C語(yǔ)言順序表實(shí)現(xiàn)代碼排錯(cuò)

    這篇文章主要介紹了C語(yǔ)言順序表實(shí)現(xiàn)方法,大家參考使用吧
    2013-12-12
  • C語(yǔ)言中QString與QByteArray互相轉(zhuǎn)換的方法

    C語(yǔ)言中QString與QByteArray互相轉(zhuǎn)換的方法

    本文主要介紹了C語(yǔ)言中QString與QByteArray互相轉(zhuǎn)換的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評(píng)論

平邑县| 札达县| 肇东市| 徐汇区| 南开区| 岑溪市| 台南县| 当涂县| 凌云县| 厦门市| 桃源县| 武山县| 孝义市| 繁昌县| 鹿邑县| 和龙市| 淮北市| 合川市| 龙岩市| 怀集县| 丰城市| 明星| 十堰市| 临泉县| 百色市| 砚山县| 志丹县| 佳木斯市| 固镇县| 余干县| 永靖县| 余庆县| 丹寨县| 巍山| 墨脱县| 邛崃市| 禹州市| 永吉县| 临漳县| 壤塘县| 启东市|