简单电话本实现

头文件模块:

#define _CRT_SECURE_NO_WARNINGS 1
//实现一个通讯录;
//通讯录可以用来存储1000个人的信息,每个人的信息包括:
//姓名、性别、年龄、电话、住址

#ifndef __PHONE_H__  
#define __PHONE_H__ 


struct Phone
{
	char name[20];
	char sex[5];
	int age;
	int telphone[11];
	char address[20];
	int count;
}phone[1000];



void Add_information(Phone);			//添加联系人信息
void Del_information(Phone);			//删除指定联系人信息
void Find_information(Phone);		//查找指定联系人信息
void Change_information(Phone);		//修改指定联系人信息
void Display_information(Phone);		//显示所有联系人信息
void Empty_information(Phone);		//清空所有联系人
void Name_sort(Phone);				//以名字排序所有联系人

#endif 
函数实现模块:

#define _CRT_SECURE_NO_WARNINGS 1
#include "phone.h"
#include<string.h>

void Add_information(Phone)			//添加联系人信息
{
	printf("请输入联系人姓名:\n");
	scanf("%s",p->phone[p->count].name);
	printf("\n");
	printf("请输入联系人性别:\n");
	scanf("%s",p->phone[p->count].sex);
	printf("\n");
	printf("请输入年龄\n");
	scanf("%d",&p->phone[p->count].age);
	printf("\n");
	printf("请输入电话号码\n");
	scanf("%d",p->phone[p->count].telphone);
	printf("\n");
	printf("请填写联系人地址\n");
	scanf("%s",p->phone[p->count].address);
	printf("添加联系人信息成功\n");
}

void Del_information(Phone)			//删除指定联系人信息
{
	char name[20];
	char m;
	int i=0;
	printf("请输入你要删除联系人的姓名\n");
	scanf("%s",&name);
	if(strcmp(p->phone[i].name, pname)==0)
	{
		printf("请输入y确定删除,n取消删除\n");
		scanf("%d",&m);
		if(m == 'y')
		{
			for (i = 0; i < p->count; i++)
			{
				p->Dhb[i] = p->phone[i + 1];
			}
			printf("删除成功\n");
		}
	}
	else
	{
		printf("您输入的联系人不存在\n");
	}
}

void Find_information(Phone)		//查找指定联系人信息
{
	char name[20];
	int ret;
	printf("请输入你要查找的联系人姓名\n");
	scanf("%s",&name);
	if(strcmp(p->phone[i].name, pname)==0)
	{
		ret=i;
		printf("%s\n",p->phone[ret].name);
		printf("%s\n",p->phone[ret].sex);
		printf("d\n",p->phone[ret].age);
		printf("%s\n",p->phone[ret].telphone);
		printf("%s\n",p->phone[ret].address);
	}
	else
	{
		printf("您输入的联系人不存在\n");
	}
}

void Change_information(Phone)		//修改指定联系人信息
{
	char name[20];
	int ret;
	printf("请输入你要修改的联系人姓名\n");
	scanf("%s",&name);
	if(strcmp(p->phone[i].name, pname)==0)
	{
		ret=i;
		printf("请把姓名改为:\n");
		scanf("%s", p->phone[ret].name);
		printf("请把性别修改成:\n");
		scanf("%s", p->phone[ret].sex);
		printf("请把年龄修改成:\n");
		scanf("%d", &p->phone[ret].age);
		printf("请把电话修改成:\n");
		scanf("%s", p->phone[ret].telphone);
		printf("请把地址修改成:\n");
		scanf("%s", p->phone[ret].address);
	}
	else
	{
		printf("您输入的联系人不存在\n");
	}
}

void Display_information(Phone)		//显示所有联系人信息
{
	int i = 0;
	for(i = 0; i<( p->count); i++)
	{
		printf("%s  ", p->phone[i].name);
		printf("%s  ", p->phone[i].sex);
		printf("%d  ", p->phone[i].age);
		printf("%s  ", p->phone[i].telphone);
		printf("%s  ", p->phone[i].address);
	}
	printf("\n");
}

void Empty_information(Phone)		//清空所有联系人
{
	p->count = 0;
}

void Name_sort(Phone)				//以名字排序所有联系人
{
	int i=0;
	for(i=0; i<count-1; i++)
	{
		int j=0;
		for(j=i+1; j<count; j++)
		{
			if (strcmp(p->phone[i].name, p->phone[j].name)>0)
			{
				Ph tmp=p->Person[i];
				p->phone[i] = p->phone[j];
				p->phone[j] = tmp;
			}
		}
	}
}
测试函数模块:

#define _CRT_SECURE_NO_WARNINGS 1

#include"phone.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void menu()
{
	printf("************  1.添加联系人信息    ************\n");
	printf("************  2.删除指定联系人信息************\n");
	printf("************  3.查找指定联系人信息************\n");
	printf("************  4.修改指定联系人信息************\n");
	printf("************  5.显示所有联系人信息************\n");
	printf("************  6.清空所有联系人    ************\n");
	printf("************  7.排序所有联系人    ************\n");
	printf("************  0.安全退出操作      ************\n");
}

int main()  
{  
	struct Phone ph;
    int input=1;  
    while(input)  
    {   
        switch(input)  
        {  
        case 1:  
            Add_information(ph);  
            break;  
		case 2:
			Del_information(ph);
			break; 
		case 3:
			Find_information(ph);
			break; 
		case 4:
			Change_information(ph);
			break; 
		case 5:
			Display_information(ph);
			break; 
		case 6:
			Empty_information(ph);
			break; 
		case 7:
			Name_sort(ph);
			break; 
        case 0:  
            exit(1);  
            break;  
        }  
    }  
    return 0;  
}  



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

double_happiness

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值