C语言结构体指针知识编写通讯录

1.头文件

 

#ifndef  _PHONESHOW_H_
#define  _PHONESHOW_H_
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef unsigned char UINT8;
typedef unsigned char UINT8;
typedef unsigned short UINT16;
#define MAX 10
typedef struct Person
{
 char name[20];
 char sex[10];
 int age;
 int phone;
 char addre[20];
}STU_Person;
typedef struct contact
{
 STU_Person *data;
 UINT8 count; /*总共存放联系人数*/
 UINT8 capacity;/*当前通讯录的容量*/
}Contact,*Pcontact;
void add(Pcontact contact); /*添加联系人*/
void Delete();/*删除联系人*/
void Select();/*查找联系人*/
Update(Pcontact contact, char* name);/*修改联系人*/
void Show(Pcontact contact, int posit);/*显示联系人*/
void Clean(Pcontact contact );/*清空联系人*/
/*判断通讯录是否为空*/
UINT8 EmptyPhoneShow(Pcontact contact);
/*创建新通讯录*/
Pcontact CreatePhoneShow();
/*判断通讯录是否为满*/
UINT8 FullPhoneShow(Pcontact contact);
#endif
 
2.函数实现
#include "PhoneShow.h"
/*创建总共可以容纳10个人的通讯录*/
Pcontact CreatePhoneShow()
{
 Pcontact contact = (Pcontact)malloc(sizeof(Contact));
 if (NULL != contact)
 {
  contact->count = MAX;
  contact->capacity = 0;
 }
 else
 {
  ;
 }
 return contact;
}
/*判断通讯录是否为空*/
UINT8 EmptyPhoneShow(Pcontact contact)
{
 return(!contact->capacity);
}
/*判断通讯录是否满*/
UINT8 FullPhoneShow(Pcontact contact)
{
 if (contact->capacity == contact->count)
 {
  return 1;
 }
 else
 {
  return 0;
 }
}
/*添加联系人*/
void add(Pcontact contact)
{
 if (FullPhoneShow(contact))
 {
  puts("人满了");
 }
 else
 {
  contact->data = (STU_Person*)malloc(sizeof(STU_Person));
  if (NULL != contact->data)
  {
   /*添加名字*/
   strcpy(contact->data[contact->capacity].name, "hello");
   /*添加性别*/
   strcpy(contact->data[contact->capacity].sex, "nan");
   /*添加年龄*/
   contact->data[contact->capacity].age = 18;
   /*添加电话号*/
   contact->data[contact->capacity].phone = 15;
   /*添加地址*/
   strcpy(contact->data[contact->capacity].addre, "hebei");
  }
 }
 contact->capacity++;
}
/*显示信息*/
void Show(Pcontact contact,int posit)
{
 /*输出名字*/
 if (1 == EmptyPhoneShow(contact))
  return 0;
 printf("%s\n", contact->data[posit].name);
 /*输出性别*/    
   printf("%s\n", contact->data[posit].sex);
 /*输出年龄*/    
 printf("%ld\n",contact->data[posit].age);
 /*输出电话号*/    
 printf("%ld\n",contact->data[posit].phone);
 /*输出地址*/    
 printf("%s\n", contact->data[posit].addre);
}  
/*清空联系人*/
void Clean(Pcontact contact)
{
 free(contact);
 contact = NULL;
}
/*修改联系人*/
Update(Pcontact contact,char *name)
{
 int campValue = 0;
 campValue = strcmp(contact->data->name,name);
 if (0 == campValue)
 {
  puts("sb");
 }
}
 
3.主函数
#include "PhoneShow.h"
void test01()
{
 Pcontact contact =  CreatePhoneShow();
 add(contact);
 Show(contact,0);
 Update(contact,"hello2");
}
int main()
{
 test01();
 return 0;
}
 
 
posted @ 2019-07-23 15:12  莫负年华向东流  阅读(405)  评论(0)    收藏  举报