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

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

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

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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#pragma warning(disable:4996);//解決VS報(bào)嚴(yán)重性代碼錯(cuò)誤
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("請(qǐng)輸入要?jiǎng)?chuàng)建聯(lián)系人的個(gè)數(shù):");
 scanf("%d", &n);
 printf("\n");

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

  printf("請(qǐng)輸入第%d個(gè)聯(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("請(qǐng)輸入要添加的聯(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("請(qǐng)輸入要查找的聯(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("請(qǐng)輸入要修改的聯(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("請(qǐng)輸入修改后的電話號(hào)碼為:\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("請(qǐng)輸入要?jiǎng)h除聯(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("請(qǐng)輸入您要執(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;
}

運(yùn)行截圖

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

    淺析C++中模板的那點(diǎn)事

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

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

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

    C/C++語(yǔ)言八大排序算法之桶排序全過(guò)程示例詳解

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

    使用opencv拉伸圖像擴(kuò)大分辨率示例

    這篇文章主要介紹了使用opencv拉伸圖像擴(kuò)大分辨率示例,需要的朋友可以參考下
    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)建一個(gè)向量,其第一個(gè)元素是 int,第二個(gè)元素是字符串。此外,Boost.Fusion 提供了處理異構(gòu)容器的算法。您可以將 Boost.Fusion 視為異構(gòu)容器的標(biāo)準(zhǔn)庫(kù)
    2022-11-11
  • C語(yǔ)言中關(guān)于庫(kù)函數(shù) qsort 快排的用法

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

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

    c++快速排序詳解

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

    C語(yǔ)言實(shí)現(xiàn)餐飲管理與點(diǎn)餐系統(tǒng)

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

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

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

最新評(píng)論