text.c
#define _CRT_SECURE_NO_WARNINGS
#include"text.h"
void menu()
{
printf("*******************************************\n");
printf("****1、初始化信息 2、增加新用户*****\n");
printf("****3、已存用户 4、删除用户 *****\n");
printf("****5、查找用户 6、修改信息 *****\n");
printf("****7、给用户排序 8、清空通讯录*****\n");
printf("********* 9、退出通讯录 ***********\n");
printf("*********请输入对应数字选择功能************\n");
printf("*******************************************\n");
}
int main()
{
int input = 0;
struct Contact pcon;
pcon.sz = 0;
do{
menu();
scanf("%d", &input);
switch (input)
{
case 1:
InitContact(&pcon);//初始化
break;
case 2:
AddContact(&pcon);//增加用户信息
break;
case 3:
ShowContact(&pcon);//显示信息
break;
case 4:
DelContact(&pcon);//删除信息
break;
case 5:
SearchContact(&pcon);//查找信息
break;
case 6:
ModifyContact(&pcon);//修改信息
break;
case 7:SortContach(&pcon);//排序信息
break;
case 8:
ClearContact(&pcon);//清空
break;
case 9:
return 0;
break;
default:printf("输入有误,请重新输入\n");
break;
}
} while (input != 9);
getchar();
return 0;
}
void InitContact(pContact pcon)//初始化
{
pcon->sz = 0;
}
void AddContact(pContact pcon)//增加用户信息
{
char m = 0;
if ((pcon->sz) == 1000)
{
printf("人数已满无法继续添加\n");
}
printf("请输入新用户姓名:\n");
scanf("%s", (pcon->data[pcon->sz]).name);
printf("请输入新用户年龄:\n");
scanf("%d", &(pcon->data[pcon->sz]).age);
printf("请输入新用户性别:\n");
scanf("%s", (pcon->data[pcon->sz]).sex);
printf("请输入新用户地址:\n");
scanf("%s", (pcon->data[pcon->sz]).addr);
printf("请输入新用户电话:\n");
scanf("%s", (pcon->data[pcon->sz]).tele);
(pcon->sz)++;
}
void ShowContact(const pContact pcon)//显示信息
{
int i = 0;
printf("姓名\t年龄\t性别\t地址\t\t电话\n");
for (i = 0; i < pcon->sz; i++)
{
printf("%s\t%d\t%s\t%s\t\t%s\t", (pcon->data[i]).name, (pcon->data[i]).age, (pcon->data[i]).sex, (pcon->data[i]).addr, (pcon->data[i]).tele);
printf("\n");
}
printf("\n");
}
void DelContact(pContact pcon)//删除信息
{
char name[20];
int i = 0;
printf("请输入你要删除的用户:\n");
scanf("%s", &name);
for (i = 0; i < pcon->sz; i++)
{
if (strcmp(name, (pcon->data[i]).name) == 0)
{
for (i; i < pcon->sz;i++)
pcon->data[i] = pcon->data[i + 1];
}
}
pcon->sz--;
printf("\n");
}
void SearchContact(pContact pcon)//查找信息
{
char name[20];
int i = 0;
printf("请输入你要查找的用户:\n");
scanf("%s", &name);
for (i = 0; i < pcon->sz; i++)
{
if (strcmp(name,(pcon->data[i]).name)==0)
{
printf("姓名\t年龄\t性别\t地址\t\t电话\n");
printf("%s\t%d\t%s\t%s\t\t%s\t", (pcon->data[i]).name, (pcon->data[i]).age, (pcon->data[i]).sex, (pcon->data[i]).addr, (pcon->data[i]).tele);
printf("\n");
}
}
printf("\n");
}
void ModifyContact(pContact pcon)//修改信息
{
char name[20];
int i = 0;
printf("请输入你要修改的用户:\n");
scanf("%s", &name);
for (i = 0; i < pcon->sz; i++)
{
if (strcmp(name, (pcon->data[i]).name) == 0)
{
printf("请输入改正后的姓名:\n");
scanf("%s", pcon->data[i].name);
printf("请输入改正后的年龄:\n");
scanf("%d", &(pcon->data[i].age));
printf("请输入改正后的性别:\n");
scanf("%s", pcon->data[i].sex);
printf("请输入改正后的地址:\n");
scanf("%s", pcon->data[i].addr);
printf("请输入改正后的电话:\n");
scanf("%s", pcon->data[i].tele);
}
}
printf("\n");
}
void SortContach(pContact pcon)//排序信息
{
int n = 0;
printf("*******************************************\n");
printf("************1、按姓名排序******************\n");
printf("************2、按年龄排序******************\n");
printf("*******************************************\n");
scanf("%d", &n);
int i = 0; int j = 0;
if (n == 2)
{
for (i = 0; i < pcon->sz; i++)
{
for (j = 0; j < pcon->sz - i - 1; j++)
{
if (((pcon->data[j]).age)>((pcon->data[j + 1]).age))
{
struct PeoInfo tmp = pcon->data[j];
pcon->data[j] = pcon->data[j + 1];
pcon->data[j + 1] = tmp;
}
}
}
}
else
{
for (i = 0; i < pcon->sz; i++)
{
for (j = 0; j < pcon->sz - i - 1; j++)
{
if ((strcmp((pcon->data[j]).name, (pcon->data[j+1]).name))>0)
{
struct PeoInfo tmp = pcon->data[j];
pcon->data[j] = pcon->data[j + 1];
pcon->data[j + 1] = tmp;
}
}
}
}
printf("姓名\t年龄\t性别\t地址\t\t电话\n");
for (i = 0; i < pcon->sz; i++)
{
printf("%s\t%d\t%s\t%s\t\t%s\t", (pcon->data[i]).name, (pcon->data[i]).age, (pcon->data[i]).sex, (pcon->data[i]).addr, (pcon->data[i]).tele);
printf("\n");
}
printf("\n");
}
void ClearContact(pContact pcon)//清空
{
pcon->sz = 0;
}
text.h
#ifndef __CONTACT_H__
#define __CONTACT_H__
#include<stdio.h>
#include<string.h>
#define MAX 1000
#define NAME_MAX 20
#define SEX_MAX 5
#define ADDR_MAX 30
#define TELE_MAX 12
typedef struct PeoInfo
{
char name[NAME_MAX];
int age;
char sex[SEX_MAX];
char addr[ADDR_MAX];
char tele[TELE_MAX];
}PeoInfo;
typedef struct Contact
{
PeoInfo data[MAX];
int sz;
}*pContact;
void InitContact(pContact pcon);//初始化
void AddContact(pContact pcon);//增加用户信息
void ShowContact(const pContact pcon);//显示信息
void DelContact(pContact pcon);//删除信息
void SearchContact(pContact pcon);//查找信息
void ModifyContact(pContact pcon);//修改信息
void SortContach(pContact pcon);//排序信息
void ClearContact(pContact pcon);//清空
#endif