欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言基于單鏈表實現(xiàn)通訊錄功能

 更新時間:2021年05月31日 15:54:05   作者:::..::…::  
這篇文章主要為大家詳細介紹了C語言基于單鏈表實現(xiàn)通訊錄功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言基于單鏈表實現(xiàn)通訊錄功能的具體代碼,供大家參考,具體內(nèi)容如下

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#pragma warning(disable:4996);//解決VS報嚴重性代碼錯誤
typedef struct LNode
{
 char name[20];
 double ph_number;
 struct LNode* next;
}LinkNode;

//創(chuàng)建通訊錄 
LNode* CreateList(LNode*& L)
{
 LNode* s, * r;
 int n;
 L = (LNode*)malloc(sizeof(LNode));
 r = L;

 printf("請輸入要創(chuàng)建聯(lián)系人的個數(shù):");
 scanf("%d", &n);
 printf("\n");

 for (int i = 0; i < n; i++)
 {
  s = (LNode*)malloc(sizeof(LNode));

  printf("請輸入第%d個聯(lián)系人的姓名,電話:\n", i + 1);
  scanf("%s%lf", &s->name, &s->ph_number);
  printf("\n");

  r->next = s;
  r = s;
 }
 r->next = NULL;
 return L;
}

//添加聯(lián)系人 
void ListInsert(LNode*& L)
{
 LNode* new_s, * r = L;
 while (r->next != NULL)
 {
  r = r->next;
 }
 new_s = (LNode*)malloc(sizeof(LNode));

 printf("請輸入要添加的聯(lián)系人的姓名,電話:\n");
 scanf("%s%lf", &new_s->name, &new_s->ph_number);
 printf("\n");

 r->next = new_s;
 r = new_s;
 r->next = NULL;
}

//查找聯(lián)系人 
bool Locate(LNode*& L)
{
 LNode* p = L->next;
 char name_[20];

 printf("請輸入要查找的聯(lián)系人的姓名:\n");
 scanf("%s", &name_);
 printf("\n");

 while (p != NULL && strcmp(p->name, name_) != 0)//注意判斷條件
 {
  p = p->next;
 }
 if (p == NULL) return false;
 else return true;
}

//修改聯(lián)系人 
bool ModifyList(LNode*& L)
{
 LNode* p = L;
 char name_[20];
 double ph_number_;

 printf("請輸入要修改的聯(lián)系人的姓名:\n");
 scanf("%s", name_);
 printf("\n");

 while (p != NULL && strcmp(p->name, name_) != 0)//注意判斷條件
 {
  p = p->next;
 }
 if (p == NULL) return false;
 else {
  printf("請輸入修改后的電話號碼為:\n");
  scanf("%lf", &ph_number_);
  printf("\n");
  p->ph_number = ph_number_;
  return true;
 }
}

//刪除聯(lián)系人 
bool ListDelete(LNode*& L)
{
 LNode* p = L->next, * q = L;
 char name_[20];

 printf("請輸入要刪除聯(lián)系人的姓名:\n");
 scanf("%s", name_);
 printf("\n");

 while (p != NULL && strcmp(p->name, name_) != 0)//注意判斷條件
 {
  p = p->next;
  q = q->next;
 }
 if (p == NULL)
  return false;
 else {
  q->next = q->next->next;
  free(p);
  return true;
 }
}

//加載通訊錄 
void DispList(LNode* L)
{
 int i = 0;
 LNode* p = L->next;
 while (p != NULL)
 {
  printf("姓名:%s  電話:%.0lf\n", p->name, p->ph_number);
  p = p->next;
  i++;
 }
}

int main()
{
 printf("*****************************************\n");
 printf("*                                       *\n");
 printf("*            1:添加聯(lián)系人              *\n");
 printf("*                                       *\n");
 printf("*            2: 查找聯(lián)系人              *\n");
 printf("*                                       *\n");
 printf("*            3: 修改聯(lián)系人              *\n");
 printf("*                                       *\n");
 printf("*            4: 刪除聯(lián)系人              *\n");
 printf("*                                       *\n");
 printf("*            5: 加載通訊錄              *\n");
 printf("*                                       *\n");
 printf("*****************************************\n");
 printf("\n");

 LNode* L = CreateList(L);
 int operand;
 printf("\n");
 for (int i = 0; i < 5; i++)
 {
  printf("請輸入您要執(zhí)行操作的操作數(shù):\n");
  scanf("%d", &operand);
  switch (operand)
  {
  case 1:
   ListInsert(L);
   break;
  case 2:
   if (Locate(L) == 1) {
    printf("找到該聯(lián)系人\n");
    printf("\n");
    break;
   }
   else {
    printf("未找到改聯(lián)系人\n");
    printf("\n");
    break;
   }
  case 3:
   if (ModifyList(L) == 1) {
    printf("修改成功\n");
    printf("\n");
    break;
   }
   else {
    printf("修改失敗\n");
    printf("\n");
    break;
   }
  case 4:
   if (ListDelete(L) == 1) {
    printf("刪除成功\n");
    printf("\n");
    break;
   }
   else {
    printf("刪除失敗\n");
    printf("\n");
    break;
   }
  case 5:
   DispList(L);
   break;
  default:
   printf("ERROR!!!\n");
  }
 }
 return 0;
}

運行截圖

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

相關(guān)文章

  • Qt?timerEvent實現(xiàn)簡單秒表功能

    Qt?timerEvent實現(xiàn)簡單秒表功能

    這篇文章主要為大家詳細介紹了Qt?timerEvent實現(xiàn)簡單秒表功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 淺析C++中模板的那點事

    淺析C++中模板的那點事

    C++中的模板可分為函數(shù)模板和類模板,而把函數(shù)模板的具體化稱為模板函數(shù),把類模板的具體化成為模板類。下面讓我們分別看看什么是函數(shù)模板和類模板吧
    2013-09-09
  • C指針原理教程之C指針基礎(chǔ)

    C指針原理教程之C指針基礎(chǔ)

    指針是一個特殊的變量,它里面存儲的數(shù)值被解釋成為內(nèi)存里的一個地址。要搞清一個指針需要搞清指針的四方面的內(nèi)容:指針的類型、指針所指向的類型、指針的值或者叫指針所指向的內(nèi)存區(qū)、指針本身所占據(jù)的內(nèi)存區(qū)。
    2019-02-02
  • C/C++語言八大排序算法之桶排序全過程示例詳解

    C/C++語言八大排序算法之桶排序全過程示例詳解

    這篇文章主要為大家介紹了C/C++語言八大排序算法之桶排序算法過程的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • 使用opencv拉伸圖像擴大分辨率示例

    使用opencv拉伸圖像擴大分辨率示例

    這篇文章主要介紹了使用opencv拉伸圖像擴大分辨率示例,需要的朋友可以參考下
    2014-04-04
  • C++ Boost Fusion創(chuàng)建異構(gòu)容器詳解

    C++ Boost Fusion創(chuàng)建異構(gòu)容器詳解

    Boost.Fusion 使創(chuàng)建異構(gòu)容器成為可能。例如,您可以創(chuàng)建一個向量,其第一個元素是 int,第二個元素是字符串。此外,Boost.Fusion 提供了處理異構(gòu)容器的算法。您可以將 Boost.Fusion 視為異構(gòu)容器的標準庫
    2022-11-11
  • C語言中關(guān)于庫函數(shù) qsort 快排的用法

    C語言中關(guān)于庫函數(shù) qsort 快排的用法

    快速排序Qsort是所有學習算法和數(shù)據(jù)結(jié)構(gòu)最基礎(chǔ)的一個部分,也是考試題和面試的一個小重點。本片文章帶你了解Qsort的詳細用法規(guī)則
    2021-09-09
  • c++快速排序詳解

    c++快速排序詳解

    快速排序總體思想:先找到一個樞軸,讓他作為分水嶺,通過一趟排序?qū)⒋判虻挠涗浄指畛蓛刹糠?前面一部分都比樞軸小,后面一部分樞軸大,然后又分別對這兩部分記錄繼續(xù)進行遞歸的排序,達到整個序列有序的目的
    2017-05-05
  • C語言實現(xiàn)餐飲管理與點餐系統(tǒng)

    C語言實現(xiàn)餐飲管理與點餐系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)餐飲管理與點餐系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • C語言的動態(tài)內(nèi)存分配及動態(tài)內(nèi)存分配函數(shù)詳解

    C語言的動態(tài)內(nèi)存分配及動態(tài)內(nèi)存分配函數(shù)詳解

    這篇文章主要為大家詳細介紹了C語言的動態(tài)內(nèi)存分配及動態(tài)內(nèi)存分配函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評論