0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通訊錄管理系統(tǒng)源碼,C語言鏈表實現(xiàn)

C語言編程學(xué)習(xí)基地 ? 來源:C語言編程學(xué)習(xí)基地 ? 作者:C語言編程學(xué)習(xí)基地 ? 2022-10-28 16:07 ? 次閱讀

hello,各位小伙伴們大家好!你們今天有敲代碼嘛?

如果有熟悉的小伙伴看到我,就知道又可以來學(xué)習(xí)源碼項目了!沒錯,咱們今天要分享的同樣也是經(jīng)典管理系統(tǒng)項目之一:通訊錄管理系統(tǒng)!我們一起來看看吧!

知識點:C語言,鏈表

開發(fā)工具:VS2022/2019(沒有VS的話也可以來文末領(lǐng)取哦)

b99624a0-5696-11ed-a3b6-dac502259ad0.png

完成一個通訊錄管理系統(tǒng),具體要求如下:

1. 建立通訊錄信息,信息至少包含編號、姓名、年齡、電話、通訊地址、電子郵箱等

2. 能夠提供添加、刪除和修改通訊錄信息的功能

3. 能夠提供安不同方式查詢的功能;如按姓名或年齡、電話等查詢

4. 將通訊錄保存在文件中

5. 能夠按表格方式輸出通訊錄信息

6. 退出程序


也不說太多多余的話了,先看一下效果圖:

b9b91186-5696-11ed-a3b6-dac502259ad0.png

為了照顧那些想要快速完成項目設(shè)計的同學(xué),咱們就不進行源碼的解析了,直接上全部源碼吧!

源碼分享:

#include 
typedef struct  //定義每個人員信息結(jié)構(gòu)體 
{
  char num[5]; //編號 
  char name[9];//姓名 
  char sex[3]; //性別 
  char phone[13]; //電話 
  char addr[31]; //地址 
 }DataType;
 typedef struct node  //定義鏈表類型 
 {
   DataType data; //數(shù)據(jù)域 
   struct node *next; //指針域 
  }ListNode;
typedef ListNode *LinkList;
void CreateList(LinkList &L,int m)//通訊錄鏈表的建立 
{ int i;
  LinkList s,r;
  L=(LinkList)malloc(sizeof(ListNode));
  L->next=NULL;
  r=L; //尾節(jié)點 


  for(i=0;i
  {  s=(LinkList)malloc(sizeof(ListNode)); //新建的節(jié)點 
     printf("輸入第%d位編號:",i+1);
     scanf("%s",&s->data.num);
     printf("
輸入姓名:");
     scanf("%s",&s->data.name);
     printf("
輸入性別:");
     scanf("%s",&s->data.sex);
     printf("
輸入電話:");
     scanf("%s",&s->data.phone);
     printf("
輸入地址:");
     scanf("%s",&s->data.addr);
     s->next=NULL;  
   r->next=s; //插入尾節(jié)點之后 
   r=s;
   
  }  


}
int ListLength(LinkList L) //求通訊錄鏈表的長度 
{ LinkList p;
  int length=0;
  p=L->next;
  while(p)
  { length++;
    p=p->next;
  }
  return length;  
 } 
int ListInsert(LinkList &L,int i,DataType d)  //通訊錄鏈表的插入 
{ LinkList p,s;
  int length;
  length=ListLength(L); 
  p=L->next;
  int j=1;
  if(!p||i>length+1) //如果是空表或者查詢位置不符合要求 
  return 0;
  while(p&&j-1)  //使p指向要添加位置的前一個元素 
  {
    p=p->next;
    j++;
  }
  s=(LinkList)malloc(sizeof(LinkList));
  s->data=d;
  s->next=p->next;
  p->next=s;
  return 1; 
}
int ListDelete(LinkList &L,int i)
{ LinkList p,q;//p為要刪除的前一個節(jié)點,q為要刪除的節(jié)點 
  p=L;
  int j=0;
  int length;
  length=ListLength(L); 
  if(!p||i>length) //如果是空表或者查詢位置不符合要求 
  return 0;
  while(p&&j-1) //使p指向要刪除位置的前一個元素 
  { p=p->next;
    j++;
  }
  q=p->next; //q指向后一個元素  
  printf("
被刪除的人員信息為:
");
  printf("
編號:%s  姓名:%s  性別:%s  電話:%s 地址:%s",q->data.num,q->data.name,q->data.sex,q->data.phone,q->data.addr);
  p->next=q->next; 
  return 1;   
 } 
int GetElem(LinkList L,int i,DataType &d) //查詢第i個成員信息 
{ LinkList p;
  p=L->next;
  int j=1;
  int length;
  length=ListLength(L); 
  if(!p||i>length) //如果是空表或者查詢位置不符合要求 
  return 0;
  while(j
  {p=p->next;
   j++;
  }
  d=p->data;
  return 1;
  
}


void print(LinkList L) //打印通訊錄人員信息 
{ LinkList p;
  p=L->next;
  while(p)
  {
    printf("
編號:%s  姓名:%s  性別:%s  電話:%s 地址:%s",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);
    p=p->next;
  }
  
 } 
 void menu()
{ printf("--------------------------------------------1.通訊錄鏈表的建立----------------------------------------------------------");
   printf("
--------------------------------------------2.通訊者節(jié)點的插入----------------------------------------------------------");
   printf("
--------------------------------------------3.通訊者節(jié)點的查詢----------------------------------------------------------");
   printf("
--------------------------------------------4.通訊者節(jié)點的刪除----------------------------------------------------------");
   printf("
--------------------------------------------5.通訊錄鏈表的輸出----------------------------------------------------------");
   printf("
--------------------------------------------0.退出管理系統(tǒng)--------------------------------------------------------------");
 }
 int main()
{
   LinkList L;
   DataType d,d1;
   int m,location,length,choose;
   menu();
   p:
   printf("
請輸入你的選項:");
   scanf("%d",&choose);
   switch(choose)
   { case 1:printf("請輸入通訊錄人數(shù):");scanf("%d",&m);CreateList(L,m);goto p;
     case 2:printf("
輸入要插入的位置:");scanf("%d",&location);printf("輸入插入人員的編號:"); scanf("%s",&d.num);printf("
輸入姓名:"); scanf("%s",&d.name); printf("
輸入性別:");scanf("%s",&d.sex);printf("
輸入電話:");scanf("%s",&d.phone);printf("
輸入地址:");scanf("%s",&d.addr);ListInsert(L,location,d);goto p;
    case 3:printf("
請輸入查詢位置");scanf("%d",&location);GetElem(L,location,d); printf("查詢到的人員信息為:
");printf("
編號:%s  姓名:%s  性別:%s  電話:%s 地址:%s",d.num,d.name,d.sex,d.phone,d.addr);goto p;
    case 4:printf("
輸入要刪除的位置:");scanf("%d",&location);ListDelete(L,location);goto p; 
    case 5:print(L);goto p;
    case 0:printf("系統(tǒng)已退出。");exit(0);
    default:printf("輸入錯誤,請重新輸入");goto p;
   }
   return 0;
 }

通訊錄管理系統(tǒng)就到此結(jié)束啦,大家趕緊試試吧!


審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7581

    瀏覽量

    135582
  • 管理系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    2330

    瀏覽量

    35711

原文標(biāo)題:C/C++項目開發(fā):通訊錄管理系統(tǒng)源碼,C語言鏈表實現(xiàn)

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于鴻蒙Next模擬電話通訊錄及電話撥打

    一、介紹 基于鴻蒙Next模擬電話通訊錄,可以撥打電話,刪除電話等二、場景需求 客戶服務(wù)、業(yè)務(wù)咨詢、回訪處理、溝通交流、信息交流等等 三、業(yè)務(wù)步驟 第一步:點擊撥打點電話,先判斷設(shè)備是否具備通訊能力
    發(fā)表于 08-27 15:24

    如何用java語言開發(fā)一套數(shù)字化產(chǎn)科系統(tǒng)? 數(shù)字化產(chǎn)科管理平臺源碼

    如何用java語言開發(fā)一套數(shù)字化產(chǎn)科系統(tǒng) 數(shù)字化產(chǎn)科管理平臺源碼
    的頭像 發(fā)表于 07-06 09:38 ?924次閱讀
    如何用java<b class='flag-5'>語言</b>開發(fā)一套數(shù)字化產(chǎn)科<b class='flag-5'>系統(tǒng)</b>? 數(shù)字化產(chǎn)科<b class='flag-5'>管理</b>平臺<b class='flag-5'>源碼</b>

    C語言基礎(chǔ)-為什么要使用C?

    當(dāng)今最流行的 Linux 操作系統(tǒng)和 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng)) MySQL 都是使用 C
    發(fā)表于 03-25 11:20 ?343次閱讀

    C語言實現(xiàn)Web參數(shù)傳遞

    電子發(fā)燒友網(wǎng)站提供《C語言實現(xiàn)Web參數(shù)傳遞.docx》資料免費下載
    發(fā)表于 03-24 09:14 ?2次下載

    C語言中的動態(tài)內(nèi)存管理講解

    本章將講解 C 中的動態(tài)內(nèi)存管理C 語言為內(nèi)存的分配和管理提供了幾個函數(shù)。這些函數(shù)可以在 頭文件中找到。
    的頭像 發(fā)表于 02-23 14:03 ?347次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的動態(tài)內(nèi)存<b class='flag-5'>管理</b>講解

    php的源碼是什么開源語言

    PHP的源碼是用C語言編寫的,是一種開源的服務(wù)器端腳本語言。下面是關(guān)于PHP源碼的詳細(xì)介紹。 一、PHP簡介 PHP(全稱:PHP: Hyp
    的頭像 發(fā)表于 12-04 16:11 ?1538次閱讀

    C語言課程設(shè)計案例精編-源碼

    電子發(fā)燒友網(wǎng)站提供《C語言課程設(shè)計案例精編-源碼.rar》資料免費下載
    發(fā)表于 11-21 10:39 ?1次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>課程設(shè)計案例精編-<b class='flag-5'>源碼</b>

    C語言小游戲源碼大放送

    電子發(fā)燒友網(wǎng)站提供《C語言小游戲源碼大放送.rar》資料免費下載
    發(fā)表于 11-21 10:36 ?1次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>小游戲<b class='flag-5'>源碼</b>大放送

    178個C語言算法源碼下載

    電子發(fā)燒友網(wǎng)站提供《178個C語言算法源碼下載.zip》資料免費下載
    發(fā)表于 11-21 09:35 ?3次下載
    178個<b class='flag-5'>C</b><b class='flag-5'>語言</b>算法<b class='flag-5'>源碼</b>下載

    C語言指紋識別源碼分享

    電子發(fā)燒友網(wǎng)站提供《C語言指紋識別源碼分享.rar》資料免費下載
    發(fā)表于 11-18 14:50 ?1次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>指紋識別<b class='flag-5'>源碼</b>分享

    C語言鏈表的作用是什么?

    C語言中指針用的很少,鏈表、文件操作幾乎沒用過,所以也不能理解到底有什么作用。各位有經(jīng)常在做程序時會用到這些嗎。
    發(fā)表于 11-06 06:23

    基于Android平臺的個性通訊錄

    電子發(fā)燒友網(wǎng)站提供《基于Android平臺的個性通訊錄.doc》資料免費下載
    發(fā)表于 10-30 11:32 ?0次下載
    基于Android平臺的個性<b class='flag-5'>通訊錄</b>

    單片機的電流故障系統(tǒng)設(shè)計與實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《單片機的電流故障系統(tǒng)設(shè)計與實現(xiàn).pdf》資料免費下載
    發(fā)表于 10-30 11:17 ?2次下載
    單片機的電流故障<b class='flag-5'>錄</b>波<b class='flag-5'>系統(tǒng)</b>設(shè)計與<b class='flag-5'>實現(xiàn)</b>

    基于Android平臺的手機通訊錄管理系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《基于Android平臺的手機通訊錄管理系統(tǒng).doc》資料免費下載
    發(fā)表于 10-30 10:13 ?0次下載
    基于Android平臺的手機<b class='flag-5'>通訊錄</b><b class='flag-5'>管理</b><b class='flag-5'>系統(tǒng)</b>

    基于Android系統(tǒng)手機通訊錄管理軟件的設(shè)計與開發(fā)

    電子發(fā)燒友網(wǎng)站提供《基于Android系統(tǒng)手機通訊錄管理軟件的設(shè)計與開發(fā).doc》資料免費下載
    發(fā)表于 10-30 10:09 ?0次下載
    基于Android<b class='flag-5'>系統(tǒng)</b>手機<b class='flag-5'>通訊錄</b><b class='flag-5'>管理</b>軟件的設(shè)計與開發(fā)