亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在C語言中利用結構體實現一個通訊錄

發布時間:2021-03-29 16:41:35 來源:億速云 閱讀:160 作者:Leah 欄目:編程語言

怎么在C語言中利用結構體實現一個通訊錄?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

提供方法:

1. 添加聯系人信息
2. 刪除指定聯系人信息
3. 查找指定聯系人信息
4. 修改指定聯系人信息
5. 顯示所有聯系人信息
6. 清空所有聯系人

代碼實現:

頭文件:

#ifndef __HEAD_H__     ////防止頭文件被多次調用 
#define __HEAD_H__          
 
#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 
 
 
#define PEOPLE_MAX 1000 
#define NAME_LENTH 20 
#define SEX_LENTH 5 
#define AGE_LENTH 10 
#define TEL_LENTH 15 
#define ADDR_LENTH 50 //宏定義各個數據所需的大小,后續引用直接可以使用名稱,或需修改時只用修改這里就可以了 
 
struct People 
{ 
  char name[NAME_LENTH]; 
  char sex[SEX_LENTH]; 
  int age; 
  char tel[TEL_LENTH ]; 
  char addr[ADDR_LENTH]; 
};     //定義人的信息結構體(包含各種信息) 
 
struct Contact 
{ 
  struct People person[PEOPLE_MAX]; 
  int user_count; 
};   //定義通訊錄結構體(包含人的信息的結構體和用戶個數) 
 
typedef struct Contact * pContact; 
 
int add_contact(pContact pcon); //pContact是一個結構體指針類型,pcon是一個指向struct Contact的一個指針 
int dele_contact(pContact pcon); //例如:typedef int * int 即 int *p ==> int p 
int find_contact(pContact pcon); 
int modify_contact(pContact pcon); 
int show_contact(pContact pcon); 
int clear_contact(pContact pcon); 
void menu();    //函數的聲明 
 
#endif

各種函數實現:

#include"head.h"     
 
 
int add_contact(pContact pcon) 
{ 
  if(pcon->user_count >= PEOPLE_MAX) 
  { 
    printf("contact is full!\n"); 
    return -1; 
  } 
  else 
  { 
    printf("input name,please!\n"); 
    scanf("%s",pcon->person[pcon->user_count].name); 
    printf("input sex,please!\n"); 
    scanf("%s",pcon->person[pcon->user_count].sex); 
    printf("input age,please!\n"); 
    scanf("%d",&pcon->person[pcon->user_count].age); //這里用%d輸出int 
    printf("input tel,please!\n"); 
    scanf("%s",pcon->person[pcon->user_count].tel); 
    printf("input addr,please!\n"); 
    scanf("%s",pcon->person[pcon->user_count].addr); 
    (pcon->user_count)++; 
  } 
  return 0; 
}           //添加信息的實現 
 
 
int dele_contact(pContact pcon) 
{ 
  int ret = find_contact(pcon);  //調用查找函數并保存其值 
  if(ret != -1) 
  { 
    int i = 0; 
    i = ret;  //這里要用另一個變量來保存輸入的姓名 
    for(i = 0;i < pcon->user_count-1;i++) 
    { 
      pcon->person[i] = pcon->person[i+1]; //用后一個覆蓋前邊的,如果要刪除的是最后一個不進行此步驟 
       
    } 
    pcon->user_count --; //直接減去最后一個即count-- 
  } 
  return 0;   
} 
 
int find_contact(pContact pcon) 
{ 
  int i = 0; 
  char ret[NAME_LENTH]; //用另一個數組來保存name 
  printf("input name,please!\n"); 
  scanf("%s",ret); 
  while(i <= pcon->user_count) 
  { 
    if(strcmp(ret,pcon->person[i].name)== 0) //比較輸入的姓名和通訊錄中已有的姓名 
    { 
      printf("name\tsex\tage\ttel\taddr\t\n"); 
      printf("%s\t",pcon->person[i].name); 
      printf("%s\t",pcon->person[i].sex); 
      printf("%d\t",pcon->person[i].age); 
      printf("%s\t",pcon->person[i].tel); 
      printf("%s\t\n",pcon->person[i].addr);   
      return i; 
    } 
    i++; 
  } 
  printf("sorry,the name you find is not exist!\n"); 
  return -1; 
} 
 
int modify_contact(pContact pcon)  //修改函數,首先找到如要修改的姓名,然后重新輸入 
{ 
  int ret = find_contact(pcon); 
  if(ret != -1) 
  { 
    printf("input name,please!\n"); 
    scanf("%s",pcon->person[ret].name); 
    printf("input sex,please!\n"); 
    scanf("%s",pcon->person[ret].sex); 
    printf("input age,please!\n"); 
    scanf("%d",&(pcon->person[ret].age)); 
    printf("input tel,please!\n"); 
    scanf("%s",pcon->person[ret].tel); 
    printf("input addr,please!\n"); 
    scanf("%s",pcon->person[ret].addr); 
  } 
  else 
  { 
    printf("sorry,the name you find is not exist!\n"); 
  } 
  return 0; 
} 
 
int show_contact(pContact pcon) 
{ 
  int i = 0; 
  printf("name\tsex\tage\ttel\t\taddr\t\n"); //制表符來制作表頭 
  for(i = 0;i < pcon->user_count;i++) 
  { 
    printf("%s\t",pcon->person[i].name); 
    printf("%s\t",pcon->person[i].sex); 
    printf("%d\t",pcon->person[i].age); 
    printf("%s\t",pcon->person[i].tel); 
    printf("%s\t\n",pcon->person[i].addr); 
  } 
  printf("\n"); 
  return 0; 
} 
 
int clear_contact(pContact pcon) 
{ 
  pcon->user_count = 0 ; 
  return 0; 
}      //清除所有人,直接讓成員個數變為0即可 
 
void menu() 
{ 
  printf("-------contact---------\n"); 
  printf(" 1.添加聯系人信息   \n"); 
  printf(" 2.刪除指定聯系人信息 \n"); 
  printf(" 3.查找指定聯系人信息 \n"); 
  printf(" 4.修改指定聯系人信息 \n"); 
  printf(" 5.顯示所有聯系人信息 \n"); 
  printf(" 6.清空所有聯系人   \n"); 
  printf(" 0.謝謝使用      \n"); 
  printf("-------contact---------\n"); 
}

主函數:

#include"head.h" 
 
int main() 
{   
  int n=1; 
  struct Contact people;   //調用通訊錄結構體 
  people.user_count = 0;   //初始化user_count 
  while(n) 
  { 
    menu(); 
    printf("please input\n"); 
    scanf("%d",&n); 
    switch(n) 
    { 
      case 1: 
      { 
        add_contact(&people); 
        break; 
      } 
      case 2: 
      { 
        dele_contact(&people); 
        break; 
      } 
      case 3: 
      { 
        find_contact(&people); 
        break; 
      }   
      case 4: 
      { 
        modify_contact(&people); 
        break; 
      } 
      case 5: 
      { 
        show_contact(&people); 
        break; 
      } 
      case 6: 
      { 
        clear_contact(&people); 
        break; 
      } 
      default: 
      { 
        return 0; 
        break; 
      } //switch case語句分支選擇不同函數實現不同作用 
    } 
  } 
  return 0; 
}

結果實現:

怎么在C語言中利用結構體實現一個通訊錄怎么在C語言中利用結構體實現一個通訊錄怎么在C語言中利用結構體實現一個通訊錄怎么在C語言中利用結構體實現一個通訊錄怎么在C語言中利用結構體實現一個通訊錄怎么在C語言中利用結構體實現一個通訊錄怎么在C語言中利用結構體實現一個通訊錄

關于怎么在C語言中利用結構體實現一個通訊錄問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天峨县| 通江县| 宁国市| 阜平县| 扬州市| 图们市| 柳江县| 依兰县| 巴青县| 息烽县| 长寿区| 赤壁市| 宣威市| 铜鼓县| 凉山| 招远市| 古浪县| 日照市| 五家渠市| 谷城县| 霞浦县| 怀宁县| 淅川县| 宜宾县| 汉阴县| 乌兰县| 柳州市| 泰安市| 广德县| 英吉沙县| 舟曲县| 蓬溪县| 永善县| 金山区| 邯郸市| 雅江县| 东乡县| 贵州省| 长海县| 桂东县| 温宿县|