91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言實現簡易通訊錄

發布時間:2020-10-02 08:05:38 來源:腳本之家 閱讀:349 作者:半路碼農 欄目:編程語言

本文實例為大家分享了C語言實現簡易通訊錄的具體代碼,供大家參考,具體內容如下

功能描述:

1、存儲聯系人的相關信息,包括姓名、性別、電話號碼、備注
2、可輸出通訊錄全部信息
3、清空通訊錄的
4、用戶交互界面
5、插入新聯系人信息
6、查找聯系人,包括“按姓名查找”和“按電話號查找”兩種
7、刪除聯系人,包括“按姓名刪除”和“按電話號刪除”兩種
8、按性別篩選聯系人信息

在本次通訊錄的編寫代碼中,涉及到了C高級和數據結構的一些知識,包括指針,結構體,數據結構(鏈表)等。 

代碼:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 20
#define OK 1
#define Error 0
typedef struct Node //定義一個存儲數據的結構體
{            
 char name[SIZE];
 char s;
 long int number;
 char remark[SIZE];
 struct Node *next;
}Node;
typedef struct Node *LinkList; //定義了結構體指針
 
/************創建一個空的結點,作為頭結點***************/
LinkList CreateEmptyLinkList()
{
 LinkList p;
 p=(LinkList)malloc(sizeof(Node));  //手動申請一個堆區的地址,為結點提供空間
 if(p==NULL)
 {
 printf("CreateEmptyLinkList Error\n");
 exit(0);
 }
 p->next=NULL;
 return p;
}
 
 
/************頭插法添加新的聯系人************************/
 
int CreateLinkList(LinkList Q)
{
 LinkList p;
 char name[SIZE],s,remark[SIZE];
 long int num;
 p=(LinkList)malloc(sizeof(Node));
 if(p==NULL)
 {
 printf("CreateLinkList Error\n");
 return Error;
 }
 printf("請輸入姓名:");
 scanf("%s",name);
 strcpy(p->name,name);
 printf("請輸入性別(m/男,f/女):");
 scanf("%s",&s);
 while(s!='m'&&s!='f')
 {
 printf("輸入錯誤\n");
 printf("請輸入性別(m/男,f/女):");
 scanf("%s",&s);
 }
 printf("請輸入電話號碼:");
 scanf("%ld",&num);
 printf("請輸入備注:");
 scanf("%s",remark);
 p->s=s;
 p->number=num;
 strcpy(p->remark,remark);
 p->next=Q->next;
 Q->next=p;
 return OK;
}
/*********************制作原始聯系人信息****************/
int FirstCreateLinkList(LinkList Q)
{
 LinkList x,y,z;
 x=(LinkList)malloc(sizeof(Node));
 if(x==NULL)
 {
 printf("CreateLinkList Error\n");
 return Error;
 }
 strcpy(x->name,"LiLi");
 x->s='f';
 x->number=10110;
 x->next=Q->next;
 strcpy(x->remark,"LiLi");
 Q->next=x;
 y=(LinkList)malloc(sizeof(Node));
 if(y==NULL)
 {
 printf("CreateLinkList Error\n");
 return Error;
 }
 strcpy(y->name,"NaNa");
 y->s='f';
 y->number=11100;
 strcpy(y->remark,"NaNa");
 y->next=Q->next;
 Q->next=y;
 z=(LinkList)malloc(sizeof(Node));
 if(z==NULL)
 {
 printf("CreateLinkList Error\n");
 return Error;
 }
 strcpy(z->name,"LiuLiu");
 z->s='m';
 z->number=10000;
 strcpy(z->remark,"LiuLiu");
 z->next=Q->next;
 Q->next=z;
 return OK;
}
/*****************按姓名刪除一個聯系人****************************/
 
int DeleteNameLinkList(LinkList L,char name1[SIZE])
{
 LinkList p,q;
 p=L;
 while(p->next && strcmp(p->next->name,name1))
 {
 p=p->next;
 }
 if(!p->next)
 {
 printf("該通訊錄沒有要刪除的聯系人,刪除失敗!\n");
 return Error;
 }
 else
 {
 q=p->next;
 printf("已刪除聯系人:\n");
 printf("姓名:%s\n",q->name);
 if(q->s=='m')
 printf("性別:男\n");
 else
 printf("性別:女\n");
 printf("電話號碼:%ld\n",q->number);
 printf("備注:%s\n",q->remark); 
 
 p->next=q->next;
 free(q);
 return OK;
 }
}
/*****************按號碼刪除一個聯系人****************************/
 
int DeleteNumLinkList(LinkList L,long int j)
{
 LinkList p,q;
 p=L;
 while((p->next->number!=j)&&((p->next)!=NULL))
 {
 p=p->next;
 if((p->next)==NULL)
 {
  printf("該通訊錄沒有要刪除的聯系人,刪除失敗!\n");
  return Error;
 }
 }
 q=p->next;
 printf("已刪除聯系人:\n");
 printf("姓名:%s\n",q->name);
 if(q->s=='m')
 printf("性別:男\n");
 else
 printf("性別:女\n");
 printf("電話號碼:%ld\n",q->number);
 printf("備注:%s\n",q->remark); 
 p->next=q->next;
 free(q);
 return OK;
}
 
/******************按姓名查找一個聯系人****************************/
int FindNameLinkList(LinkList L,char name2[SIZE])
{
 LinkList p,q;
 p=L;
 while(strcmp(p->next->name,name2)!=0&&(p->next!=NULL))
 {
 p=p->next;
 if(p->next==NULL)
 {
  printf("該通訊錄沒有您要找的人,查找失敗\n");
  return Error;
 }
 }
 q=p->next;
 printf("找到記錄:\n");
 printf("姓名:%s\n",q->name);
 if(q->s=='m')
 printf("性別:男\n");
 else
 printf("性別:女\n");
 printf("電話號碼:%ld\n",q->number);
 printf("備注:%s\n",q->remark);
 printf("*********************************\n");
 return OK;
}
/******************按號碼查找一個聯系人****************************/
int FindNumLinkList(LinkList L,long int j)
{
 LinkList p,q;
 p=L;
 while((p->next->number!=j)&&((p->next)!=NULL))
 {
 p=p->next;
 if((p->next)==NULL)
 {
  printf("該通訊錄沒有您要找的人,查找失敗\n");
  return Error;
 }
 }
 q=p->next;
 printf("找到記錄:\n");
 printf("姓名:%s\n",q->name);
 if(q->s=='m')
 printf("性別:男\n");
 else
 printf("性別:女\n");
 printf("電話號碼:%ld\n",q->number);
 printf("備注:%s\n",q->remark);
 printf("*********************************\n");
 return OK;
}
/******************查找一個聯系人****************************/
int FindLinkList(LinkList L)
{
 LinkList head = L;   
 printf("*********************************\n");
 printf("請輸入查找聯系人的方式:\n");
 printf("1:按姓名\n");
 printf("2:按號碼\n");
 printf("0:返回\n");
 printf("*********************************\n");
 printf("請選擇:");
 int k=3;  //確保下面while循環運行
 while(k)
 {
 scanf("%d",&k);
 char Delname1[SIZE];
 long int N;
 if(k>2||k<0)
 {
  printf("輸入錯誤,請重新輸入:");
  scanf("%d",&k);
  while(getchar()!='\n')
  printf("\n");
 }
 switch(k)
 {
  case 1:
  printf("請輸入姓名:");
  scanf("%s",Delname1);
  FindNameLinkList(head,Delname1);
  k=0;
  break;
  case 2:
  printf("請輸入號碼:");
  scanf("%ld",&N);
  FindNumLinkList(head,N);
  k=0;
  break;
 }
 
 }
}
/********************清空聯系人信息*************************/
int ClearLinkList(LinkList L)
{
 LinkList p,q;
 p=L->next;
 while(p)
 {
 q=p->next;
 free(p);
 p=q;
 }
 L->next=NULL;
 printf("清空所有聯系人成功\n");
 return OK;
}
 
/*********************篩選所有男性聯系人**********************/
int ScreenMaleLinkList(LinkList L)
{
 LinkList p;
 p=L->next;
 int i=0;
 while(p)
 {
 if(p->s=='m')
 {
  printf("姓名:%s\n",p->name);
  if(p->s=='m')
  printf("性別:男\n");
  else
  printf("性別:女\n");
  printf("電話號碼:%ld\n",p->number);
  printf("備注:%s\n",p->remark); 
  printf("*********************************\n");
 }
 p=p->next;
 i++;
 }
 if(i==0&&!p)
 {
 printf("無男性聯系人\n");
 }
 return OK;
}
/*********************篩選所女性聯系人**********************/
int ScreenFemaleLinkList(LinkList L)
{
 LinkList p;
 p=L->next;
 int i=0;
 while(p)
 {
 if(p->s=='f')
 {
  printf("姓名:%s\n",p->name);
  if(p->s=='m')
  printf("性別:男\n");
  else
  printf("性別:女\n");
  printf("電話號碼:%ld\n",p->number);
  printf("備注:%s\n",p->remark); 
  printf("*********************************\n");
 }
 p=p->next;
 i++;
 }
 if(i==0&&!p)
 {
 printf("無女性聯系人\n");
 }
 return OK;
}
/************************通訊錄功能界面*****************/
void FunctionalInterface()
{
 system ("clear");
 printf("*********************************\n");
 printf("歡迎使用Linux通訊錄!\n");
 printf("*********************************\n");
 printf("1:輸出全部聯系人信息\n");
 printf("2:插入新的聯系人\n");
 printf("3:刪除一個聯系人\n");
 printf("4:查找某個聯系人\n");
 printf("5:清空全部聯系人信息\n");
 printf("6:篩選全部男性聯系人信息\n");
 printf("7:篩選全部女性聯系人信息\n");
 printf("0:退出\n");
 printf("*********************************\n");
}
/*****************刪除一個聯系人****************************/
 
int DeleteLinkList(LinkList L)
{
 LinkList head = L;
 printf("*********************************\n");
 printf("請輸入刪除聯系人的方式:\n");
 printf("1:按姓名\n");
 printf("2:按號碼\n");
 printf("0:返回\n");
 printf("*********************************\n");
 printf("請選擇:");
 int i=3;
 while(i)
 {
 scanf("%d",&i);
 char Delname[SIZE];
 long int j;
 if(i>2||i<0)
 {
  printf("輸入錯誤,請重新輸入:");
  scanf("%d",&i);
  while(getchar()!='\n')
  printf("\n");
 }
 switch(i)
 {
  case 1:
  printf("請輸入姓名:");
  scanf("%s",Delname);
  DeleteNameLinkList(head,Delname);
  i=0;
  break;
  case 2:
  printf("請輸入號碼:");
  scanf("%ld",&j);
  DeleteNumLinkList(head,j);
  i=0;
  break;
 }
 
 }
 
}
/*******************遍歷打印整個鏈表**********************/
int PrintfLinkList(LinkList L)
{
 LinkList p,q;
 q=p=L->next;
 int i=0;
 while(q)
 {
 i++;
 q=q->next;
 if(i==0&&!p)
 {
 printf("無聯系人\n");
 }
 }
 printf("共有%d個聯系人\n",i);
 while(p)
 {
 printf("*********************************\n");
 printf("姓名:%s\n",p->name);
 if(p->s=='m')
  printf("性別:男\n");
 else
  printf("性別:女\n");
 printf("電話號碼:%ld\n",p->number);
 printf("備注:%s\n",p->remark); 
 p=p->next;
 }
 printf("*********************************\n");
 return OK;
 
}
 
int main()
{
 int a;
 LinkList head;
 head=CreateEmptyLinkList();
 FirstCreateLinkList(head);
 FunctionalInterface();
 while(a)
 {
 printf("請輸入您要選擇的功能:");
 scanf("%d",&a);
 if(a>7||a<0)
 {
  printf("輸入錯誤,請重新輸入:");
  scanf("%d",&a);
  while(getchar()!='\n')
  printf("\n");
 }
 switch(a)
 {
  case 1:
  PrintfLinkList(head);
  break;
  case 2:
  CreateLinkList(head);
  break;
  case 3:
  DeleteLinkList(head);
  break;
  case 4:
  FindLinkList(head);
  break;
  case 5:
  ClearLinkList(head);
  break;
  case 6:
  ScreenMaleLinkList(head);
  break;
  case 7:
  ScreenFemaleLinkList(head);
  break;
  }
 if(a!=0)
 {
  printf("請按回車鍵繼續:");
  getchar();
  if(getchar()=='\n')
  FunctionalInterface();
 }
 }
 printf("歡迎再次使用\n");
 return 0;
}

以上均為自己編寫,個人能力有限,如有錯誤,還請各位批評指正。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连平县| 论坛| 正定县| 社会| 门头沟区| 宁河县| 蒙自县| 海口市| 柘荣县| 手机| 呼玛县| 延川县| 德化县| 富平县| 馆陶县| 宣恩县| 高陵县| 普陀区| 资中县| 甘南县| 焦作市| 化州市| 自治县| 黄龙县| 惠东县| 石门县| 阿巴嘎旗| 武城县| 靖江市| 闵行区| 常山县| 衢州市| 青田县| 赞皇县| 曲靖市| 西宁市| 寿宁县| 瑞金市| 沾益县| 安达市| 白河县|