头文件部分
因为最近很忙,所以就不细写讲解了,直接上代码了,
学业方面补上后可能会出一篇讲解
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#define max_count 101
typedef struct phone
{
char name[10];
int age;
char sex[3];
char address[30];
char number[20];
}contact;
typedef struct list
{
contact lalala[max_count];
int count;
}MailList;
void init_contact(MailList* pc);
void add_contact(MailList* pc);
void serch_contact(MailList* pc);
void print_contact(MailList* pc);
void motify_contact(MailList* pc);
void del_contact(MailList* pc);
void sort_contact(MailList* pc);
函数实现部分
#include"RU.h"
void init_contact(MailList* pc)
{
pc->count = 0;
memset(pc->lalala, 0, sizeof(pc->lalala));
}
void add_contact(MailList* pc)
{
if (pc->count >= 100)
{
printf("通讯录已满,请删除\n");
return;
}
else
{
printf("请输入姓名\n");
scanf("%s",pc->lalala[pc->count].name);
printf("请输入年龄\n");
scanf("%d", &pc->lalala[pc->count].age);
printf("请输入性别\n");
scanf("%s", &pc->lalala[pc->count].sex);
printf("请输入地址\n");
scanf("%s", pc->lalala[pc->count].address);
printf("请输入号码\n");
scanf("%s", &pc->lalala[pc->count].number);
++pc->count;
}
}
void serch_contact(MailList* pc)
{
int order = 0;
char la[10] = "";
printf("请输入要查找的联系人名字\n");
scanf("%s", la);
for (int i = 0; i < pc->count; i++)
{
if (strcmp(la, pc->lalala[i].name)==0)
{
printf("姓名:\n%s\n", la);
printf("年龄:\n%d\n",pc->lalala[i].age);
printf("性别:\n%s\n", pc->lalala[i].sex);
printf("地址:\n%s\n", pc->lalala[i].address);
printf("号码:\n%s\n", pc->lalala[i].number);
printf("已为您查到第%d号联系人", i);
break;
}
}
printf("未找到\n");
}
void print_contact(MailList* pc)
{
for (int i = 0; i < pc->count; i++)
{
printf("第%d位联系人\n",i+1);
printf("姓名:%s\n", pc->lalala[i].name);
printf("年龄:%d\n", pc->lalala[i].age);
printf("性别:%s\n", pc->lalala[i].sex);
printf("地址:%s\n", pc->lalala[i].address);
printf("号码:%s\n", pc->lalala[i].number);
}
}
void motify_contact(MailList* pc)
{
int z= 0;
printf("请输入你要修改的联系人序号>:");
scanf("%d", &z);
printf("请输入姓名\n");
scanf("%s", pc->lalala[z-1].name);
printf("请输入年龄\n");
scanf("%d", &pc->lalala[z - 1].age);
printf("请输入性别\n");
scanf("%s", &pc->lalala[z - 1].sex);
printf("请输入地址\n");
scanf("%s", pc->lalala[z - 1].address);
printf("请输入号码\n");
scanf("%s", &pc->lalala[z - 1].number);
printf("修改成功\n", z);
printf("姓名:%s\n", pc->lalala[z-1].name);
printf("年龄:%d\n", pc->lalala[z-1].age);
printf("性别:%s\n", pc->lalala[z-1].sex);
printf("地址:%s\n", pc->lalala[z-1].address);
printf("号码:%s\n", pc->lalala[z-1].number);
}
void del_contact(MailList* pc)
{
int i = 0;
printf("请输入你要删除的联系人序号\n");
scanf("%d", &i);
for (; i < pc->count-1; ++i)
{
pc->lalala[i] = pc->lalala[i + 1];
}
pc->count--;
printf("删除成功");
}
void sort_contact(MailList* pc)
{
for (int i=0;i<pc->count-1;i++)
{
for (int u=0;u<pc->count-i-1;u++)
{
if (strcmp(pc->lalala[u].name, pc->lalala[u + 1].name) == 1)
{
pc->lalala[100] = pc->lalala[u];
pc->lalala[u] = pc->lalala[u + 1];
pc->lalala[u + 1] = pc->lalala[100];
}
}
}
printf("排序成功\n");
}
整合部分
#include"RU.h"
MailList con;
int main()
{
int i = 0;
init_contact(&con);
do
{
printf("****1:ADD***2:DEL*********\n");
printf("****3:SERCH*4:MODIFY******\n");
printf("****5:PRINT**6:SORT*******\n");
printf("****0:quit****************\n");
printf("**************************\n");
scanf("%d", &i);
printf("请选择>:\n");
switch (i)
{
case 1:
{
add_contact(&con);
break;
}
case 2:
{
print_contact(&con);
del_contact(&con);
break;
}
case 3:
{
serch_contact(&con);
break;
}
case 4:
{
print_contact(&con);
motify_contact(&con);
break;
}
case 5:
{
print_contact(&con);
break;
}
case 6:
{
sort_contact(&con);
break;
}
case 0:
break;
default:
printf("请重新输入\n");
break;
}
} while (i);
}