#include<stdio.h>
#include<string.h>
#define MAX_SIZE 1000
#define NAME_LENGTH 20
#define NUMBER_LENGTH 12
#define ADDRESS_LENGTH 100
struct Person
{
char name[NAME_LENGTH];
char sex;
int age;
char number[NUMBER_LENGTH];
char address[ADDRESS_LENGTH];
};
struct AddressBook
{
struct Person person[MAX_SIZE];
int size;
};
void add(AddressBook* ab);
void remove(AddressBook* ab);
void find(AddressBook* ab);
void clear(AddressBook* ab);
void show(AddressBook* ab);
int main(){
struct AddressBook ab;
//初始化通讯录当前存储量为0
ab.size = 0;
int select;
while(1)
{
printf("************************\n");
printf("* 通讯录 *\n");
printf("************************\n");
printf("1.显示联系人\n");
printf("2.添加联系人\n");
printf("3.查找联系人\n");
printf("4.删除联系人\n");
printf("5.清空联系人\n");
printf("************************\n");
printf("请输入功能:");
scanf("%d",&select);
switch(select)
{
case 1:
show(&ab);
break;
case 2:
add(&ab);
break;
case 3:
find(&ab);
break;
case 4:
remove(&ab);
break;
case 5:
clear(&ab);
break;
default:
printf("输入的选项有误,请重新输入!\n");
break;
}
}
return 0;
}
//添加联系人
void add(AddressBook* ab){
if(ab->size==MAX_SIZE)
{
printf("容量已满,通讯录已经存不下啦!\n");
}
else
{
printf("请输入姓名:");
scanf("%s",ab->person[ab->size].name);
printf("请输入性别(M/F):");
fflush(stdin);
scanf("%c",&ab->person[ab->size].sex);
printf("请输入年龄:");
scanf("%d",&ab->person[ab->size].age);
printf("请输入电话:");
scanf("%s",ab->person[ab->size].number);
printf("请输入住址:");
scanf("%s",ab->person[ab->size].address);
ab->size++;
}
}
//显示联系人
void show(AddressBook* ab)
{
int i;
printf("姓名 性别 年龄 电话 住址\n");
printf("------------------------\n");
for(i=0;i<ab->size;i++)
{
printf("%s %c %d %s %s\n",ab->person[i].name,ab->person[i].sex,ab->person[i].age,ab->person[i].number,ab->person[i].address);
}
printf("------------------------\n");
}
//查找联系人
void find(AddressBook* ab)
{
char name[NAME_LENGTH];
int count;
printf("请输入要查找的用户名:");
scanf("%s",name);
int i;
printf("查询结果\n");
printf("------------------------\n");
for(i=0;i<ab->size;i++)
{
if(strcmp(ab->person[i].name,name)==0){
printf("%s %c %d %s %s\n",ab->person[i].name,ab->person[i].sex,ab->person[i].age,ab->person[i].number,ab->person[i].address);
}
}
printf("------------------------\n");
}
//删除联系人
void remove(AddressBook* ab)
{
int i,index;
char name[NAME_LENGTH];
printf("请输入要删除的用户名:");
scanf("%s",name);
for(i=0;i<ab->size;i++)
{
if(strcmp(ab->person[i].name,name)==0)
{
index = i;
}
}
for(i=index;i<ab->size;i++)
{
ab->person[i] = ab->person[i+1];
}
ab->size--;
printf("用户已删除!\n");
}
//清空联系人
void clear(AddressBook* ab)
{
ab->size = 0;
printf("通讯录已清空!\n");
}
【C/C++】通讯录管理系统
最新推荐文章于 2023-08-29 13:50:57 发布