歡迎您光臨本站 註冊首頁

C語言實現簡單電子通訊錄

←手機掃碼閱讀     qp18502452 @ 2020-06-29 , reply:0

本文實例為大家分享了C語言實現電子通訊錄的具體代碼,供大家參考,具體內容如下

製作一個電子通訊錄,通過該通訊錄能錄入好友ID號、姓名(英文)、手
 機號碼,家庭住址,公司電話。**
 原理:分成5個模塊,將模塊功能實現寫入頭文件中。主函數部分代碼:
 顯示函數部分,在Markdown裡對不齊,意思就這樣,將就一下=。=  

  /*******************************************************************  需求:製作一個電子通訊錄,通過該通訊錄能錄入好友ID號、姓名(英文)、手  機號碼,家庭住址,公司電話。  模塊:   主界面:主要顯示軟件功能,A)添加好友信息 B)列表好友信息。(包含排序   功能) C)搜索好友 D)刪除好友   A)用戶輸入INSERT命令後,讓用戶輸入好友信息。添加成功或失敗都需提示   B)用戶輸入DISPLAY命令後,好友信息升序排列   C)用戶輸入SEARCH命令後,讓用戶輸入將要搜索好友姓名查詢。如果未搜索   到請友好提示。如果搜索到,顯示處該好友信息   D)用戶輸入DELETE命令後,讓用戶輸入將要刪除好友姓名刪除,如果存在同   名的多個好友,則列表出,所有同名的好友信息,讓用戶通過輸入ID號刪除   提示用戶刪除成功。  **********************************************************************/  #include "head.h"    int main ()  {   int Function;   int i = 0;   char Name[N];   int cho;     PNode head_node = (PNode) malloc(sizeof(Node)/sizeof(char));   if (NULL == head_node)   {    return MALLOC_ERROR;   }   head_node->next = NULL;     while (1)   {    Interface_Display ();    scanf ("%d", &Function);      switch (Function)    // 功能選擇    {     case 1:      // 添加好友     {      Function = 0;      Add_Friend (head_node, i++);      int j;        printf ("	正在添加 ");      printf ("	請稍候");      fflush (stdout);  // 強制刷新緩存,輸出顯示      for (j = 0; j < 3; j++)      {       sleep (1);   // Linux 使用sleep,參數為秒       printf (".");       fflush (stdout); // 強制刷新緩存,輸出顯示      }      printf (" ");      printf ("	添加成功! ");      printf ("	返回主菜單請輸入1:");      scanf ("%d", &cho);      if (1 == cho)      {       break;      }      else      {       printf ("	對不起!您的輸入有誤!請重新輸入:");       scanf ("%d", &cho);       break;      }      break;     }        case 2:     // 顯示好友信息     {      system ("clear");      printf ("	*********好友信息******** ");      printf (" ");        Friend_Information (head_node);      Function = 0;      printf ("	返回主菜單請輸入1:");      scanf ("%d", &cho);      if (1 == cho)      {       break;      }      else      {       printf ("	對不起!您的輸入有誤!請重新輸入:");       scanf ("%d", &cho);       break;      }      break;     }     case 3:     // 查找好友     {      system ("clear");      printf ("	*************查找好友************* ");      printf ("	請輸入您要查找的好友姓名:");      scanf ("%s", Name);      printf (" ");        int j;         printf ("	正在查找 ");      printf ("	請稍候");      fflush (stdout);  // 強制刷新緩存,輸出顯示      for (j = 0; j < 3; j++)      {       sleep (1);   // Linux 使用sleep,參數為秒       printf (".");       fflush (stdout); // 強制刷新緩存,輸出顯示      }      printf (" ");      Search_Friend (head_node, Name);      printf ("	返回主菜單請輸入1:");      scanf ("%d", &cho);      if (1 == cho)      {       break;      }      else      {       printf ("	對不起!您的輸入有誤!請重新輸入:");       scanf ("%d", &cho);       break;      }      break;     }     case 4:      //刪除好友     {      system ("clear");      printf ("	*************刪除好友************* ");      printf ("	請輸入要刪除好友的姓名:");      scanf ("%s", Name);      printf (" ");      Delete_Friend (head_node, Name);      printf ("	返回主菜單請輸入1:");      scanf ("%d", &cho);      if (1 == cho)      {       break;      }      else      {       printf ("	對不起!您的輸入有誤!請重新輸入:");       scanf ("%d", &cho);       break;      }      break;     }      case 5:      //退出通訊錄     {      Function = 0;      system ("clear");      exit (0);     }     default:     //輸入有誤     {      Function = 0;      printf ("	對不起!您的輸入有誤!請重新輸入:");      scanf ("%d", &Function);      break;     }       }     }    return 0;  }

 

head.h部分:

  #ifndef HEAD_H_  #define HEAD_H_    #include#include#include// sleep函數頭文件    #define uint unsigned int  #define OK   0  #define ERROR   -1  #define MALLOC_ERROR -2  #define N    20     typedef int ElementType;  typedef struct node  {   ElementType ID;    // ID號   char Name [N];    // 姓名   char Mobile_Phone [N];  // 手機號碼   char Home_Address [N];  // 家庭住址   char Company_Tell [N];  // 公司電話   struct node* next;   // 節點指針  }Node;  typedef Node* PNode;   //重命名節點指針類型    //顯示操作界面  int Interface_Display ();    //添加好友信息 (尾插法)  int Add_Friend (PNode head, ElementType num);    //顯示所有好友信息  int Friend_Information (PNode head);    //查找好友  int Search_Friend (PNode head, char* Name);    //刪除好友  void Delete_Friend (PNode head, char* Name);    #endif

 

head.c的代碼:

  #include "head.h"    //顯示操作界面  int Interface_Display ()  {   system ("clear");   printf ("	**************************************  ");   printf ("	~   歡迎使用通訊錄    ~ ");   printf ("	~          ~ ");   printf ("	~  1 >>>>>>>> 添加好友信息   ~ ");   printf ("	~  2 >>>>>>>> 列表好友信息   ~ ");   printf ("	~  3 >>>>>>>> 搜索好友    ~ ");   printf ("	~  4 >>>>>>>> 刪除好友    ~ ");   printf ("	~  5 >>>>>>>> 退出    ~ ");   printf ("	~          ~ ");   printf ("	~          ~ ");   printf ("	~      作者:believe ~ ");   printf ("	~*************************************~ ");   printf ("            ");   printf ("            ");   printf ("	請輸入對應數字選擇相應功能:");  }    //添加好友信息 (尾插法)  int Add_Friend (PNode head, ElementType num)  {     if (NULL == head)   {    return ERROR;   }     //創建一個新的結點   PNode p = (PNode) malloc(sizeof(Node)/sizeof(char));   if (NULL == p)   {    return MALLOC_ERROR;   }     //將新數據賦給新結點   system("clear");    printf ("	*************添加好友*************** ");     p->ID = num;   printf ("	好友的ID為:%d ", p->ID);   printf (" ");     printf ("	請輸入好友的名字:");   scanf ("%s", p->Name);   printf (" ");     printf ("	請輸入好友的手機號:");   scanf ("%s", p->Mobile_Phone);   printf (" ");     printf ("	請輸入好友的家庭住址:");   scanf ("%s", p->Home_Address);   printf (" ");     printf ("	請輸入好友的公司電話:");   scanf ("%s", p->Company_Tell);   printf (" ");     p->next = NULL;     //找到最後一個結點   PNode Ptmp;     //將頭結點地址給臨時指針Ptmp   Ptmp = head;   while (Ptmp->next)   {    Ptmp = Ptmp->next;   }   Ptmp->next = p;     return OK;  }    //顯示所有好友信息  int Friend_Information (PNode head)  {   if (NULL == head)   {    return ERROR;   }     PNode p = head->next;     printf ("	ID	姓名		手機號		住址			公司電話 ");     while (p)   {    printf ("	%d	%s		%s		%s			%s ", p->ID,      p->Name, p->Mobile_Phone, p->Home_Address,       p->Company_Tell);    p = p->next;   }   putchar(' ');     return OK;  }    //查找好友  int Search_Friend (PNode head, char* Name)  //通過名字查找好友  {   PNode p = head;   PNode q = NULL;     if ((NULL != p) && NULL != (p->next))   {    while (p->next)     {     q = p->next;     if ((NULL != q) && 0 == (strcmp(q->Name, Name)))     {      printf ("	好友信息:  	ID:%d 	姓名: %s 	手機號碼: %s 	家庭地址:%s 	公司電話: %s ", q->ID, q->Name, q->Mobile_Phone, q->Home_Address, q->Company_Tell);     }     else     {      printf ("	對不起,您的通訊錄沒有該好友! ");     }     p = p->next;    }   }     /* 另一種做法   if (NULL == head)   {    return ERROR;   }     PNode p;   int flag = 1;   for (p = head->next; p != NULL; p = p->next)   {    if (0 == strcmp(p->Name, Name))    {     flag = 0;     printf ("	好友信息: 	ID: %d 	姓名: %s 	手機號碼: %s 	家庭地址: %s 	公司電話: %s ", p->ID, p->Name, p->Mobile_Phone, p->Home_Address, p->Company_Tell);    }   }   fi (flag)   {    printf ("	對不起,您的通訊錄沒有該好友! ");   }     putchar(' ');   */     return OK;  }    //刪除好友  void Delete_Friend (PNode head, char* Name)  {   PNode p = head;   PNode q = NULL;     while (NULL != p && NULL != (p->next))   {    q = p->next;    if (NULL != q && 0 == strcmp(q->Name, Name))    {     p->next = q->next;     free(q);       int j;       printf ("	正在刪除 ");     printf ("	請稍候");     fflush (stdout);   //強制刷新緩存,輸出顯示     for (j = 0; j < 3; j++)     {      sleep (1);    //linux使用sleep,參數為秒      printf (".");      fflush(stdout);   //強制刷新緩存,輸出顯示     }     printf (" ");     printf ("	該好友已成功刪除! ");    }    else if (NULL == q->next && 0 != strcmp(q->Name, Name))    {     printf ("	您的通訊錄沒有該好友! ");    }    p = p->next;   }  }

 

                                                       

   


[qp18502452 ] C語言實現簡單電子通訊錄已經有117次圍觀

http://coctec.com/docs/c/language/show-post-240280.html