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

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

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

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

用來存儲1000個人的信息的通訊錄,每個人的信息包括:

姓名、性別、年齡、電話、住址

程序如下:

#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)體和用戶個數(shù)n)
};       
 
typedef struct Contact * p; 
 
void menu(); 
int add(p q);  //p是一個結(jié)構(gòu)體指針類型,q是一個指向struct Contact的一個指針 
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("====================歡迎來到蘇嵌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("====================歡迎來到蘇嵌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("輸入電話:\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;      //這里要用另一個變量來保存輸入的姓名 
  for(i = 0;i < (*q).n-1;i++) 
  { 
   (*q).person[i] = (*q).person[i+1];   //用后一個覆蓋前邊的,如果要刪除的是最后一個不進行此步驟 
    
  } 
  (*q).n --;     //直接減去最后一個即count-- 
 } 
 return 0;  
} 
 
int find(p q) //查找聯(lián)系人
{ 
 int i = 0; 
 char ret[20];      //用另一個數(shù)組來保存姓名 
 printf("輸入姓名:\n"); 
 scanf("%s",ret); 
 while(i <= (*q).n) 
 { 
  if(strcmp(ret,(*q).person[i].name)== 0)   //比較輸入的姓名和通訊錄中已有的姓名 
  { 
   printf("姓名\t性別\t年齡\t電話\t地址\4t\n");  //制表符來制作表頭 
   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("你丫的我班沒這個人\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("輸入修改的電話:\n"); 
  scanf("%s",(*q).person[ret].tel); 
  printf("輸入修改的地址:\n"); 
  scanf("%s",(*q).person[ret].addr); 
 } 
 else 
 { 
  printf("你丫的我班沒這個人\n"); 
 } 
 return 0; 
} 
 
int show(p q) //顯示全部聯(lián)系人
{ 
 int i = 0; 
 printf("姓名\t性別\t年齡\t電話\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) //清除所有人,直接讓成員個數(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("請選擇你的騷操作:\n");
  scanf("%d",&n); 
  switch(n)  //switch case語句分支選擇不同函數(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; 
} 

這樣就實現(xiàn)了一個簡單的通訊錄。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C語言中的文件操作詳解

    C語言中的文件操作詳解

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

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

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

    C++核心編程之類和對象詳解

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

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

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

    Opengl?ES之FBO幀緩沖對象使用詳解

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

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

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

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

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

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

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

    C語言順序表實現(xiàn)代碼排錯

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

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

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

最新評論

武乡县| 宿松县| 普格县| 仁化县| 莱阳市| 定兴县| 名山县| 任丘市| 博客| 保靖县| 邻水| 施秉县| 西华县| 黑水县| 临沧市| 霍邱县| 关岭| 谷城县| 宁都县| 陆丰市| 遂溪县| 云浮市| 民丰县| 虞城县| 通州区| 拉萨市| 威信县| 阿城市| 湾仔区| 舟山市| 黔江区| 昆山市| 盘锦市| 呼玛县| 沈阳市| 东乌珠穆沁旗| 仙桃市| 合江县| 大新县| 潜山县| 涿州市|