亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

利用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è)人的信息包括:

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

程序如下:

#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("輸入電話:\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電話\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("輸入修改的電話:\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電話\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)文章

最新評(píng)論