国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C語言使用結構體實現簡單通訊錄

2020-05-23 13:32:35
字體:
來源:轉載
供稿:網友

C語言用結構體實現一個通訊錄,通訊錄可以用來存儲1000個人的信息,每個人的信息包括:

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

提供方法:

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語言,通訊錄

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘西| 沐川县| 河北区| 千阳县| 上犹县| 盐边县| 新野县| 冷水江市| 英吉沙县| 进贤县| 紫金县| 广饶县| 辛集市| 北京市| 高阳县| 丁青县| 南漳县| 天津市| 鹰潭市| 和政县| 正阳县| 宜丰县| 稻城县| 巧家县| 洪雅县| 邹平县| 泾川县| 焦作市| 高要市| 深圳市| 柳林县| 边坝县| 平湖市| 鄂托克旗| 丰原市| 湖口县| 广丰县| 铜鼓县| 闵行区| 崇义县| 和顺县|