最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • QT使用Http協(xié)議通信的實現(xiàn)示例

    QT使用Http協(xié)議通信的實現(xiàn)示例

    使用QT進行應用開發(fā)時,有時候需要進行客戶端和服務端的網(wǎng)絡通信,本文主要介紹了QT使用Http協(xié)議通信的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • C語言基礎 strlen 函數(shù)

    C語言基礎 strlen 函數(shù)

    這篇文章主要介紹了C語言基礎 strlen 函數(shù),在C 語言中,char 字符串也是一種非常重要的數(shù)據(jù)類型,我們可以使用 strlen 函數(shù)獲取字符串長度,這就是C語言strlen 函數(shù)的作用,下面我們來簡單介紹該內(nèi)容,需要的朋友可以參考以下
    2021-10-10
  • C++命名空間域的實現(xiàn)示例

    C++命名空間域的實現(xiàn)示例

    命名空間域就是一個獨立的空間外面不能直接調用該空間域只能用訪問限定符指定訪問該空間域,本文主要介紹了C++命名空間域的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • c++的virtual和override作用及說明

    c++的virtual和override作用及說明

    這篇文章主要介紹了c++的virtual和override作用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語言中各種運算類型全面總結

    C語言中各種運算類型全面總結

    C語言運算符是說明特定操作的符號,它是構造C語言表達式的工具,C語言的運算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都為運算符處理
    2022-04-04
  • C++合并二叉樹的思路與示例代碼

    C++合并二叉樹的思路與示例代碼

    二叉樹大家應該都不陌生,但是合并二叉樹呢?這篇文章主要給大家介紹了關于C++合并二叉樹的相關資料,文中給出了兩種解決的方法,大家可以根據(jù)需要選擇對應的方法,需要的朋友可以參考下
    2021-08-08
  • C++解析特殊符號tab、換行符號實例代碼

    C++解析特殊符號tab、換行符號實例代碼

    這篇文章主要給大家介紹了關于C++解析特殊符號tab、換行符號的相關資料,這個功能在我們?nèi)粘i_發(fā)中經(jīng)常會遇到,需要的朋友可以參考下
    2021-05-05
  • 關于C++數(shù)組中重復的數(shù)字

    關于C++數(shù)組中重復的數(shù)字

    這篇文章主要介紹得是關于C++數(shù)組中重復的數(shù)字,文章以問題描述得形式,對問題展開分析用不同得方法去解決問題并附上方法得詳細代碼,需要的朋友可以參考以下文章得具體內(nèi)容
    2021-11-11
  • 使用C語言編寫圣誕表白程序

    使用C語言編寫圣誕表白程序

    圣誕節(jié)快到了,讓我們用C語言制作一個圣誕表白程序吧,下面通過本文學習下實現(xiàn)代碼
    2016-12-12
  • C語言超全面講解函數(shù)的使用方法上

    C語言超全面講解函數(shù)的使用方法上

    函數(shù)是一組一起執(zhí)行一個任務的語句。每個?C?程序都至少有一個函數(shù),即主函數(shù)?main()?,所有簡單的程序都可以定義其他額外的函數(shù),由于篇幅過大,分為兩篇講解,下面開始上篇
    2022-04-04

最新評論

临猗县| 玉山县| 旅游| 石嘴山市| 江山市| 宣汉县| 靖宇县| 霍林郭勒市| 崇义县| 湘阴县| 九江县| 柳州市| 寻乌县| 河曲县| 芒康县| 莎车县| 芜湖县| 阳曲县| 黔西县| 上虞市| 牙克石市| 邯郸县| 巴里| 中山市| 舒兰市| 瓮安县| 昆山市| 凤庆县| 延寿县| 威宁| 秭归县| 鲜城| 咸宁市| 中宁县| 绩溪县| 双桥区| 林西县| 墨竹工卡县| 富顺县| 岳普湖县| 临清市|