contact.h
作为整个项目的头文件,该代码段具有以下功能:
1、引入项目所需要的头文件;
2、定义MAX和MAX_...等常量,在后续调整程序时,只需要调整头文件中的定义 ;
3、定义枚举,在switch语句中将0、1、2、3、4等数字替换为EXIT、ADD、DEL、SEARCH等代称,增强代码可读性;
4、定义结构体变量,用于存储通讯录各类信息和当前通讯录的大小;
5、声明函数。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<string.h>
#define MAX 10
#define MAX_NAME 20
#define MAX_SEX 5
#define MAX_TELE 12
#define MAX_ADDR 30
enum Option
{
EXIT,//0
ADD,//1
DEL,
SEARCH,
MODIFY,
SHOW,
SORT
};
//加入枚举,可以将switch语句中的case指定名称,增强代码可读性
struct PeoInfo
{
char name[MAX_NAME];
int age;
char sex[MAX_SEX];
char tele[MAX_TELE];
char addr[MAX_ADDR];
};
//通讯录类型
struct Contact//将以上结构体与size相结合
{
struct PeoInfo data[MAX];//存放一个信息
int size;//记录当前已经有的元素个数
};
//声明函数
void InitContact(struct Contact* ps); //变量类型为结构体指针
void AddContact(struct Contact* ps);
void ShowContact(const struct Contact* ps);
void DelContact(struct Contact* ps);
void SearchContact(const struct Contact* ps);
void ModifyContact(struct Contact* ps);
test.c
作为通讯录程序的逻辑主代码段
1、创建通讯录时,注意要使用结构体Contact,因为其包含size;
2、通讯录在创建完成后要初始化,将所有内容初始化为0;
3、在函数中需要用到结构体时,结构体传参要传地址;
4、do...while循环里使用switch语句(通过枚举将0123456转换为exit、add等可读性高的代码);
#include"contact.h"
//通讯录
//存放1000个好友的信息
//名字、电话、性别、地址、年龄
//增加好友信息
//删除指定名字的好友信息
//查找好友信息
//修改好友信息
//打印好友信息
//排序
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");
}
int main()
{
int input = 0; //用于存放用户选择
int size = 0; //用于存放当前通讯录的大小
//创建通讯录
struct Contact con;//con就是通讯录,存放MAX个人的信息,1000个元素的数和size。
//初始化通讯录
InitContact(&con);//函数可以改变con,要传址
do
{
menu();
printf("请选择:");
scanf("%d", &input);
switch (input)
{
case ADD:
AddContact(&am