通訊錄(用鍊錶功能實現)

2021-08-14 08:40:20 字數 2838 閱讀 3144

#include

#include

#include

typedef struct peoplepeople;

void create(people *l)//尾插法建立鍊錶

people *p,*r;

int i;

r=l;

for(i=0;i<5;i++)

p=(people *)malloc(sizeof(people));

printf("input a name:\n");

scanf("%s",p->name);

printf("input age:\n");

scanf("%d",&(p->age));

printf("input num:\n");

scanf("%d",&(p->num));

r->next=p;

r=p;

r->next=null;

void paixu(people *l)//排序

people *p,*q,*tmp;

int i,j;

tmp=(people *)malloc(sizeof(struct people));

p=l->next;

q=p->next;

while(p!=null)

while(q!=null)

if(strcmp(p->name,q->name)>0)

strcpy(tmp->name,p->name);

strcpy(p->name,q->name);

strcpy(q->name,tmp->name);

tmp->age=p->age;

p->age=q->age;

q->age=tmp->age;

tmp->num=p->num;

p->num=q->num;

q->num=tmp->num;

q=q->next;

q=p->next;

p=p->next;

void insert(people *l,char na,int ag,inttel)

people *p,*s;//s為建立的空節點用來存放插入資料

int i;//迴圈使用

p=l;

s=(people *)malloc(sizeof(people));

strcpy(s->name,na);

s->age=ag;

s->num=tel;//分別將要插入的資料放入空節點中

s->next=p->next;//

p->next=s;

void delete(people *l,char na,int ag,inttel)//刪除

people *p,*q;

q=l;

p=l->next;

while(p!=null)

if((strcmp(p->name,na)==0)&&((p->age)==ag)&&((p->num)==tel))

q->next=p->next;

break;

else

q=q->next;

p=p->next;

free(p);

void print(people *l)//輸出函式

people *p=l->next;

int i;

while(p!=null)

printf("姓名:%10s\t",p->name);

printf("年齡:%5d\t",p->age);

printf("手機號碼:%15d\n",p->num);

p=p->next;

int main()

people p;

int i,n;

char na[20];

int ag,tel;

printf("通訊錄具有以下功能:\n1.建立聯絡人\n2.列表好友資訊\n3.新增好友\n4.搜尋好友\n5.刪除好友\n");

printf("建立功能請按1:\n");

scanf("%d",&n);

if(n==1)

create(&p);

print(&p);

printf("新增功能請按2:\n");

scanf("%d",&n);

if(n==2)

printf("請輸入要新增的姓名:\n");

scanf("%s",na);

getchar();

printf("請輸入年齡:\n");

scanf("%d",&ag);

printf("請輸入手機號碼");

scanf("%d",&tel);

insert(&p,na,ag,tel);//插入函式引數左到右分別為p,姓名,年齡,手機號碼

print(&p);

printf("排序功能請按3:\n");

scanf("%d",&n);

if(n==3)

paixu(&p);

print(&p);

printf("刪除功能請按4:\n");

scanf("%d",&n);

if(n==4)

printf("請輸入要刪除的名字:\n");

scanf("%s",na);

printf("請輸入要刪除的人的年齡:\n");

scanf("%d",&ag);

printf("請輸入要刪除的人的手機號碼:\n");

scanf("%d",&tel);

delete(&p,na,ag,tel);//輸入要刪除的人的姓名,年齡,手機號碼

print(&p);

return 0;

動態通訊錄(用順序表實現)

利用順序表實現動態通訊錄,實質就是乙個動態順序表,基本 和順序表大致 相同,涉及到結構體的建立,初始化,插入,刪除,查詢等功能。define crt secure no warnings include include include include 定義乙個通訊錄內容 typedef struct...

Python實現通訊錄功能

說實話,第一次寫這麼長的python 期間遇到了很多問題,但是,最終還是完成了,花了我一天半的時間。該程式實現了使用者的增,刪,改,查,主要用到sqlite3模組。對於該模組的知識點,請檢視我的另一篇文章sqlite python 如有更好的建議,請私信,本人將不勝榮幸,讓我們一起來學習python...

鍊錶實現功能強大的通訊錄

menu head sort head print head return 0 主選單 status menu node head case 2 case 3 case 4 case 5 default printf 請重新輸入正確的操作指令 n return ok 修改方式選單 status me...