通讯录的常见功能:
存放一百个人的信息
打印每个人的信息
增加联系人
删除指定联系人
查找联系人
修改联系人
排序
我们这里需要用分块思想
首先创建一个头文件contact.h把需要引用的头文件和申明等放在这个头文件里,这样其他文件就只需要引用这个头文件就行了
#pragma once
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX 100
#define MAX_NAME 20
#define MAX_SEX 5
#define MAX_TELE 12
#define MAX_ADDR 30
typedef struct pepoinfo {
char name[MAX_NAME];//姓名
int age;//年龄
char sex[MAX_SEX];//性别
char tele[MAX_TELE];//电话号码
char addr[MAX_ADDR];//地址
}pepoinfo;
typedef struct contact {
pepoinfo data[MAX];//存放数据
int sz;//存放的联系人个数
}contact,*pcontact;
//对要用的函数进行声明
void Initcontact(contact* pc);
void Addcontact(contact* pc);
void Showcontact(const contact* pc);
void Delcontact(pcontact pc);
void Searchcontact(const contact* pc);
void Modifycontact(contact* pc);
void Sortcontact(contact* pc);
接下来是测试部分
测试部分主体:
#include "contact.h"
void menu() {
printf("********************************\n");
printf("***** 1. add 2. del ***\n");
printf("***** 3. search 4. modify***\n");
printf("***** 5. show 6. sort ***\n");
printf("***** 0. exit ***\n");
printf("********************************\n");
}
enum option {
EXIT,
ADD,
DEL,
SEARCH,
MODIFY,
SHOW,
SORT
};
int main() {
int input = 0;
contact con;
Initcontact(&con);
do {
menu();
scanf_s("%d", &input);
switch (input) {
case ADD:
Addcontact(&con);
break;
case DEL:
Delcontact(&con);
break;
case SEARCH:
Searchcontact(&con);
break;
case MODIFY:
Modifycontact(&con);
break;
case SHOW