|
|
#include<stdio.h>
|
|
|
#include<stdlib.h>
|
|
|
#include<time.h>
|
|
|
#include<string.h>
|
|
|
#include<windows.h>
|
|
|
#define MAX 100
|
|
|
#define LEN 30
|
|
|
int flag;
|
|
|
struct contect
|
|
|
{
|
|
|
char Name[LEN]; //姓名
|
|
|
char Phone[LEN]; //电话
|
|
|
char Adress[LEN]; //地址
|
|
|
char Email[LEN];
|
|
|
};
|
|
|
|
|
|
void Welcome();
|
|
|
void Menu();
|
|
|
void Search_Menu();
|
|
|
void Search_By_Name();
|
|
|
void Search_By_Phone();
|
|
|
void Search_Next();
|
|
|
void Display();
|
|
|
void Add();
|
|
|
void Add_Next();
|
|
|
void Delete_Menu();
|
|
|
void Delete_By_Name();
|
|
|
void Delete_By_Phone();
|
|
|
void Delete_Next();
|
|
|
void Modify();
|
|
|
void Modify_Menu();
|
|
|
void Modify_Name();
|
|
|
void Modify_Phone();
|
|
|
void Modify_Adress();
|
|
|
void Modify_Email();
|
|
|
void Modify_Next();
|
|
|
|
|
|
|
|
|
//主函数
|
|
|
int main()
|
|
|
{
|
|
|
system("color 4A");
|
|
|
Welcome();
|
|
|
Menu();
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
void Welcome()
|
|
|
{
|
|
|
char tmp[64];
|
|
|
int n,i,j;
|
|
|
long time1;
|
|
|
time_t t = time(0);
|
|
|
strftime( tmp, sizeof(tmp), " %Y年%m月%d日 %X\n",localtime(&t) );
|
|
|
printf("*************************欢迎来到个人通讯录管理系统!********************************\n");
|
|
|
for(i=0;i<1;i++)
|
|
|
{
|
|
|
if(i==0)
|
|
|
{
|
|
|
puts( tmp );
|
|
|
}
|
|
|
printf("\t\t\t *** ***\n");
|
|
|
printf("\t\t\t ********* *********\n");
|
|
|
printf("\t\t\t *********** ***********\n");
|
|
|
printf("\t\t\t ************ ************\n");
|
|
|
printf("\t\t\t ************* *************\n");
|
|
|
printf("\t\t\t ************** **************\n");
|
|
|
printf("\t\t\t ******* *** *** *******\n");
|
|
|
printf("\t\t\t ****** 欢 ***** 迎 ******\n");
|
|
|
printf("\t\t\t ****** *** ******\n");
|
|
|
printf("\t\t\t ****** * ******\n");
|
|
|
printf("\t\t\t ***********\n");
|
|
|
printf("\t\t\t *********\n");
|
|
|
printf("\t\t\t *******\n");
|
|
|
printf("\t\t\t *****\n");
|
|
|
printf("\t\t\t *\n");
|
|
|
|
|
|
for(j=0;j<1 ;j++)
|
|
|
{
|
|
|
system("color a");
|
|
|
/*for(time1=0;time1<99999999;time1++);
|
|
|
system("color b");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color c");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color d");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color e");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color f");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color 0");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color 1");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color 2");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color 3");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color 4");
|
|
|
for(time1=0;time1<99999999;time1++); */
|
|
|
system("color 5");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color 6");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color 7");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color 8");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color 9");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color ab");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color ac");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color ad");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color ae");
|
|
|
for(time1=0;time1<99999999;time1++);
|
|
|
system("color af");
|
|
|
}
|
|
|
system("cls");
|
|
|
}
|
|
|
printf("正在载入中");
|
|
|
for(i=0;i<30;i++)
|
|
|
{
|
|
|
putchar('>');
|
|
|
Sleep(50);
|
|
|
}
|
|
|
putchar('\n');
|
|
|
printf("*************************************载入成功!***********************************\n");
|
|
|
puts(" 欢迎使用!");
|
|
|
Sleep(1500);
|
|
|
}
|
|
|
|
|
|
void Menu()
|
|
|
{
|
|
|
char i;
|
|
|
system("cls");
|
|
|
printf("\t\t\t______________________________________\t\n");
|
|
|
printf("\t\t\t│ *个人通讯录管理系统 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│ \t\n");
|
|
|
printf("\t\t\t│ *请输入选项 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│ \t\n");
|
|
|
printf("\t\t\t│ *【1】显示 │\t\n");
|
|
|
printf("\t\t\t│ *【2】搜索 │\t\n");
|
|
|
printf("\t\t\t│ *【3】添加 │\t\n");
|
|
|
printf("\t\t\t│ *【4】修改 │\t\n");
|
|
|
printf("\t\t\t│ *【5】删除 │\t\n");
|
|
|
printf("\t\t\t│ *【6】退出 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│\t\n");
|
|
|
printf("\t\t\t<<<<<<<<<请输入选项:");
|
|
|
scanf("%s",&i);
|
|
|
if(i>='1'&&i<='6')
|
|
|
{
|
|
|
i=i-'0';
|
|
|
switch(i)
|
|
|
{
|
|
|
case 1: Display();break;
|
|
|
case 2: Search_Menu();break;
|
|
|
case 3: Add();break;
|
|
|
case 4: Modify();break;
|
|
|
case 5: Delete_Menu();break;
|
|
|
case 6: exit(0);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\t请输入正确的选项!\n");
|
|
|
system("pause");
|
|
|
Menu();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
void Display()
|
|
|
{
|
|
|
struct contect s1[MAX];
|
|
|
int f;//缓冲量
|
|
|
FILE *fp;
|
|
|
system("cls");
|
|
|
fp=fopen("contect.txt","r");
|
|
|
printf("*************************所有的的信息如下******************************\n");
|
|
|
for(f=0;f<MAX;f++)
|
|
|
{
|
|
|
fread(&s1[f],sizeof(struct contect),1,fp);
|
|
|
if(feof(fp)!=0) break;
|
|
|
printf("\t____________________________________________________\n");
|
|
|
printf("\t│姓名:%s \n",s1[f].Name);
|
|
|
printf("\t│电话:%s\n",s1[f].Phone);
|
|
|
printf("\t│地址:%s \n",s1[f].Adress);
|
|
|
printf("\t│邮箱:%s \n",s1[f].Email);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
system("pause");
|
|
|
Menu();
|
|
|
|
|
|
}
|
|
|
|
|
|
void Search_Menu()
|
|
|
{
|
|
|
char i;
|
|
|
system("cls");
|
|
|
printf("\t\t\t_________________________________________\t\n");
|
|
|
printf("\t\t\t│ *请选择查找方式 │\t\n");
|
|
|
printf("\t\t\t│______________________________________│ \t\n");
|
|
|
printf("\t\t\t│ *【1】按姓名查找 │\t\n");
|
|
|
printf("\t\t\t│ *【2】按电话号码查找 │\t\n");
|
|
|
printf("\t\t\t│ *【3】返回 │\t\n");
|
|
|
printf("\t\t\t│______________________________________│\t\n");
|
|
|
printf("\t\t\t<<<<<<<<<请输入选项:");
|
|
|
scanf("%s",&i);
|
|
|
if(i>='1'&&i<='3')
|
|
|
{
|
|
|
i=i-'0';
|
|
|
switch(i)
|
|
|
{
|
|
|
case 1: Search_By_Name();break;
|
|
|
case 2: Search_By_Phone();break;
|
|
|
case 3: Menu();break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\t请输入正确的选项!\n");
|
|
|
system("pause");
|
|
|
Add_Next();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void Search_By_Name()
|
|
|
{
|
|
|
struct contect s1[MAX];
|
|
|
int f;//缓冲量
|
|
|
char name[LEN];
|
|
|
FILE *fp;
|
|
|
system("cls");
|
|
|
fp=fopen("contect.txt","r");
|
|
|
printf("请输入姓名:");
|
|
|
scanf("%s",name);
|
|
|
printf("*************************您要查找的信息如下******************************\n");
|
|
|
for(f=0;f<MAX;f++)
|
|
|
{
|
|
|
fread(&s1[f],sizeof(struct contect),1,fp);
|
|
|
if(strcmp(name,s1[f].Name)==0)
|
|
|
{
|
|
|
printf("\t____________________________________________________\n");
|
|
|
printf("\t│姓名:%s\n",s1[f].Name);
|
|
|
printf("\t│电话:%s\n",s1[f].Phone);
|
|
|
printf("\t│地址:%s\n",s1[f].Adress);
|
|
|
printf("\t│邮箱:%s\n",s1[f].Email);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
fclose(fp);
|
|
|
system("pause");
|
|
|
Search_Next();
|
|
|
}
|
|
|
|
|
|
void Search_By_Phone()
|
|
|
{
|
|
|
struct contect s1[MAX];
|
|
|
int f;//缓冲量
|
|
|
char phone[LEN];
|
|
|
FILE *fp;
|
|
|
system("cls");
|
|
|
fp=fopen("contect.txt","r");
|
|
|
printf("请输入电话号码:");
|
|
|
scanf("%s",phone);
|
|
|
printf("*************************您要查找的信息如下******************************\n");
|
|
|
for(f=0;f<MAX;f++)
|
|
|
{
|
|
|
fread(&s1[f],sizeof(struct contect),1,fp);
|
|
|
if(strcmp(phone,s1[f].Phone)==0)
|
|
|
{
|
|
|
printf("\t____________________________________________________\n");
|
|
|
printf("\t│姓名:%s\n",s1[f].Name);
|
|
|
printf("\t│电话:%s\n",s1[f].Phone);
|
|
|
printf("\t│地址:%s\n",s1[f].Adress);
|
|
|
printf("\t│邮箱:%s\n",s1[f].Email);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
fclose(fp);
|
|
|
system("pause");
|
|
|
Search_Next();
|
|
|
}
|
|
|
|
|
|
void Search_Next()
|
|
|
{
|
|
|
char i;
|
|
|
system("cls");
|
|
|
printf("\t\t\t______________________________________\t\n");
|
|
|
printf("\t\t\t│ *是否继续? │\t\n");
|
|
|
printf("\t\t\t│___________________________________│ \t\n");
|
|
|
printf("\t\t\t│ *【1】继续 │\t\n");
|
|
|
printf("\t\t\t│ *【2】返回 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│\t\n");
|
|
|
printf("\t\t\t<<<<<<<<<请输入选项:");
|
|
|
scanf("%s",&i);
|
|
|
if(i>='1'&&i<='2')
|
|
|
{
|
|
|
i=i-'0';
|
|
|
switch(i)
|
|
|
{
|
|
|
case 1: Search_Menu();break;
|
|
|
case 2: Menu();break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\t请输入正确的选项!\n");
|
|
|
system("pause");
|
|
|
Modify_Next();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void Add()
|
|
|
{
|
|
|
struct contect s;
|
|
|
FILE *fp;
|
|
|
system("cls");
|
|
|
fp=fopen("contect.txt","a");
|
|
|
printf("******************************请输入以下信息!*************************\n");
|
|
|
printf("请输入姓名: ");
|
|
|
scanf("%s",s.Name) ;
|
|
|
printf("请输入电话:");
|
|
|
scanf("%s",s.Phone);
|
|
|
printf("请输入地址:");
|
|
|
scanf("%s",s.Adress);
|
|
|
printf("请输入邮箱:");
|
|
|
scanf("%s",s.Email);
|
|
|
if(fwrite(&s,sizeof(struct contect),1,fp)!=1) //写入文件失败
|
|
|
{
|
|
|
fclose(fp);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("添加成功!\n");
|
|
|
printf("----------------------------------------------------------\n");
|
|
|
}
|
|
|
fclose(fp);
|
|
|
Add_Next();
|
|
|
}
|
|
|
|
|
|
|
|
|
void Add_Next()
|
|
|
{
|
|
|
char i;
|
|
|
system("cls");
|
|
|
printf("\t\t\t______________________________________\t\n");
|
|
|
printf("\t\t\t│ *是否继续? │\t\n");
|
|
|
printf("\t\t\t│___________________________________│ \t\n");
|
|
|
printf("\t\t\t│ *【1】继续 │\t\n");
|
|
|
printf("\t\t\t│ *【2】返回 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│\t\n");
|
|
|
printf("\t\t\t<<<<<<<<<请输入选项:");
|
|
|
scanf("%s",&i);
|
|
|
if(i>='1'&&i<='2')
|
|
|
{
|
|
|
i=i-'0';
|
|
|
switch(i)
|
|
|
{
|
|
|
case 1: Add();break;
|
|
|
case 2: Menu();break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\t请输入正确的选项!\n");
|
|
|
system("pause");
|
|
|
Add_Next();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
void Modify()
|
|
|
{
|
|
|
struct contect s1[MAX];
|
|
|
int f;//缓冲量
|
|
|
char name[LEN];
|
|
|
FILE *fp;
|
|
|
system("cls");
|
|
|
fp=fopen("contect.txt","r");
|
|
|
printf("请输入联系人姓名:");
|
|
|
scanf("%s",name);
|
|
|
for(f=0;f<MAX;f++)
|
|
|
{
|
|
|
fread(&s1[f],sizeof(struct contect),1,fp);
|
|
|
if(strcmp(name,s1[f].Name)==0)
|
|
|
{
|
|
|
flag=f;
|
|
|
printf("\t____________________________________________________\n");
|
|
|
printf("\t│姓名:%s\n",s1[f].Name);
|
|
|
printf("\t│电话:%s\n",s1[f].Phone);
|
|
|
printf("\t│地址:%s\n",s1[f].Adress);
|
|
|
printf("\t│邮箱:%s\n",s1[f].Email);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
fclose(fp);
|
|
|
Sleep(300);
|
|
|
Modify_Menu();
|
|
|
}
|
|
|
|
|
|
void Modify_Menu()
|
|
|
{
|
|
|
char i;
|
|
|
printf("\t\t\t______________________________________\t\n");
|
|
|
printf("\t\t\t│ *请输入要修改的信息 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│ \t\n");
|
|
|
printf("\t\t\t│ *【1】姓名 │\t\n");
|
|
|
printf("\t\t\t│ *【2】电话 │\t\n");
|
|
|
printf("\t\t\t│ *【3】地址 │\t\n");
|
|
|
printf("\t\t\t│ *【4】邮箱 │\t\n");
|
|
|
printf("\t\t\t│ *【5】返回 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│\t\n");
|
|
|
printf("\t\t\t<<<<<<<<<请输入选项:");
|
|
|
scanf("%s",&i);
|
|
|
if(i>='1'&&i<='5')
|
|
|
{
|
|
|
i=i-'0';
|
|
|
switch(i)
|
|
|
{
|
|
|
case 1: Modify_Name();break;
|
|
|
case 2: Modify_Phone();break;
|
|
|
case 3: Modify_Adress();break;
|
|
|
case 4: Modify_Email();break;
|
|
|
case 5: Menu();break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\t请输入正确的选项!\n");
|
|
|
system("pause");
|
|
|
Modify_Menu();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
void Modify_Name()
|
|
|
{
|
|
|
int f,count;
|
|
|
char name[LEN];
|
|
|
struct contect s1[MAX];
|
|
|
FILE *fp;
|
|
|
fp=fopen("contect.txt","r");
|
|
|
for(f=0;f<MAX;f++) //记录当前数据数量
|
|
|
{
|
|
|
if(feof(fp)!=0) break;
|
|
|
count=f;
|
|
|
fread(&s1[f],sizeof(struct contect),1,fp);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
printf("----------------------------------------------------------\n");
|
|
|
printf("请输入新的姓名:");
|
|
|
scanf("%s",name);
|
|
|
strcpy(s1[flag].Name,name);
|
|
|
fp=fopen("contect.txt","w");//覆盖掉原来的文件
|
|
|
for(f=0;f<count;f++) //重新写入文件
|
|
|
{
|
|
|
fwrite(&s1[f],sizeof(struct contect),1,fp);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
printf("修改成功!\n");
|
|
|
system("pause");
|
|
|
Modify_Next();
|
|
|
}
|
|
|
|
|
|
void Modify_Phone()
|
|
|
{
|
|
|
int f,count;
|
|
|
char phone[LEN];
|
|
|
struct contect s1[MAX];
|
|
|
FILE *fp;
|
|
|
fp=fopen("contect.txt","r");
|
|
|
for(f=0;f<MAX;f++) //记录当前数据数量
|
|
|
{
|
|
|
if(feof(fp)!=0) break;
|
|
|
count=f;
|
|
|
fread(&s1[f],sizeof(struct contect),1,fp);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
printf("----------------------------------------------------------\n");
|
|
|
printf("请输入新的电话:");
|
|
|
scanf("%s",phone);
|
|
|
strcpy(s1[flag].Phone,phone);
|
|
|
fp=fopen("contect.txt","w");//覆盖掉原来的文件
|
|
|
for(f=0;f<count;f++) //重新写入文件
|
|
|
{
|
|
|
fwrite(&s1[f],sizeof(struct contect),1,fp);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
printf("修改成功!\n");
|
|
|
system("pause");
|
|
|
Modify_Next();
|
|
|
}
|
|
|
|
|
|
void Modify_Adress()
|
|
|
{
|
|
|
int f,count;
|
|
|
char adress[LEN];
|
|
|
struct contect s1[MAX];
|
|
|
FILE *fp;
|
|
|
fp=fopen("contect.txt","r");
|
|
|
for(f=0;f<MAX;f++) //记录当前数据数量
|
|
|
{
|
|
|
if(feof(fp)!=0) break;
|
|
|
count=f;
|
|
|
fread(&s1[f],sizeof(struct contect),1,fp);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
printf("----------------------------------------------------------\n");
|
|
|
printf("请输入新的地址:");
|
|
|
scanf("%s",adress);
|
|
|
strcpy(s1[flag].Adress,adress);
|
|
|
fp=fopen("contect.txt","w");//覆盖掉原来的文件
|
|
|
for(f=0;f<count;f++) //重新写入文件
|
|
|
{
|
|
|
fwrite(&s1[f],sizeof(struct contect),1,fp);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
printf("修改成功!\n");
|
|
|
system("pause");
|
|
|
Modify_Next();
|
|
|
}
|
|
|
|
|
|
void Modify_Email()
|
|
|
{
|
|
|
int f,count;
|
|
|
char email[LEN];
|
|
|
struct contect s1[MAX];
|
|
|
FILE *fp;
|
|
|
fp=fopen("contect.txt","r");
|
|
|
for(f=0;f<MAX;f++) //记录当前数据数量
|
|
|
{
|
|
|
if(feof(fp)!=0) break;
|
|
|
count=f;
|
|
|
fread(&s1[f],sizeof(struct contect),1,fp);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
printf("----------------------------------------------------------\n");
|
|
|
printf("请输入新的邮箱:");
|
|
|
scanf("%s",email);
|
|
|
strcpy(s1[flag].Email,email);
|
|
|
fp=fopen("contect.txt","w");//覆盖掉原来的文件
|
|
|
for(f=0;f<count;f++) //重新写入文件
|
|
|
{
|
|
|
fwrite(&s1[f],sizeof(struct contect),1,fp);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
printf("修改成功!\n");
|
|
|
system("pause");
|
|
|
Modify_Next();
|
|
|
}
|
|
|
|
|
|
void Modify_Next()
|
|
|
{
|
|
|
char i;
|
|
|
system("cls");
|
|
|
printf("\t\t\t______________________________________\t\n");
|
|
|
printf("\t\t\t│ *是否继续? │\t\n");
|
|
|
printf("\t\t\t│___________________________________│ \t\n");
|
|
|
printf("\t\t\t│ *【1】继续 │\t\n");
|
|
|
printf("\t\t\t│ *【2】返回 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│\t\n");
|
|
|
printf("\t\t\t<<<<<<<<<请输入选项:");
|
|
|
scanf("%s",&i);
|
|
|
if(i>='1'&&i<='2')
|
|
|
{
|
|
|
i=i-'0';
|
|
|
switch(i)
|
|
|
{
|
|
|
case 1: Modify_Menu();break;
|
|
|
case 2: Menu();break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\t请输入正确的选项!\n");
|
|
|
system("pause");
|
|
|
Modify_Next();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void Delete_Menu()
|
|
|
{
|
|
|
char i;
|
|
|
system("cls");
|
|
|
printf("\t\t\t______________________________________\t\n");
|
|
|
printf("\t\t\t│ *请输入选项 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│ \t\n");
|
|
|
printf("\t\t\t│ *【1】按姓名删除 │\t\n");
|
|
|
printf("\t\t\t│ *【2】按电话号码删除 │\t\n");
|
|
|
printf("\t\t\t│ *【3】返回 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│\t\n");
|
|
|
printf("\t\t\t<<<<<<<<<请输入选项:");
|
|
|
scanf("%s",&i);
|
|
|
if(i>='1'&&i<='3')
|
|
|
{
|
|
|
i=i-'0';
|
|
|
switch(i)
|
|
|
{
|
|
|
case 1: Delete_By_Name();break;
|
|
|
case 2: Delete_By_Phone();break;
|
|
|
case 3: Menu();break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\t请输入正确的选项!\n");
|
|
|
system("pause");
|
|
|
Delete_Menu();
|
|
|
}
|
|
|
}
|
|
|
void Delete_By_Name()
|
|
|
{
|
|
|
struct contect s1[MAX];
|
|
|
int f,j,count;//缓冲量
|
|
|
char name[LEN];
|
|
|
FILE *fp;
|
|
|
system("cls");
|
|
|
fp=fopen("contect.txt","r");
|
|
|
printf("请输入姓名:");
|
|
|
scanf("%s",name);
|
|
|
for(f=0;f<MAX;f++)
|
|
|
{
|
|
|
fread(&s1[f],sizeof(struct contect),1,fp);
|
|
|
if(feof(fp)!=0) break;
|
|
|
count=f;
|
|
|
}
|
|
|
for(f=0;f<=count;f++)
|
|
|
{
|
|
|
if(strcmp(name,s1[f].Name)==0)
|
|
|
{
|
|
|
flag=f;
|
|
|
printf("*****************已删除该联系人**************************\n");
|
|
|
printf("\t____________________________________________________\n");
|
|
|
printf("\t│姓名:%s\n",s1[f].Name);
|
|
|
printf("\t│电话:%s\n",s1[f].Phone);
|
|
|
printf("\t│地址:%s\n",s1[f].Adress);
|
|
|
printf("\t│邮箱:%s\n",s1[f].Email);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
fclose(fp);
|
|
|
for(f=flag,j=flag+1;f<=count;f++,j++)
|
|
|
{
|
|
|
s1[f]=s1[j];
|
|
|
}
|
|
|
fp=fopen("contect.txt","w");
|
|
|
for(f=0;f<count;f++)
|
|
|
{
|
|
|
fwrite(&s1[f],sizeof(struct contect),1,fp);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
system("pause");
|
|
|
Delete_Next();
|
|
|
}
|
|
|
|
|
|
void Delete_By_Phone()
|
|
|
{
|
|
|
struct contect s1[MAX];
|
|
|
int f,j,count;//缓冲量
|
|
|
char phone[LEN];
|
|
|
FILE *fp;
|
|
|
system("cls");
|
|
|
fp=fopen("contect.txt","r");
|
|
|
printf("请输入电话号码 :");
|
|
|
scanf("%s",phone);
|
|
|
for(f=0;f<MAX;f++)
|
|
|
{
|
|
|
fread(&s1[f],sizeof(struct contect),1,fp);
|
|
|
if(feof(fp)!=0) break;
|
|
|
count=f;
|
|
|
}
|
|
|
for(f=0;f<=count;f++)
|
|
|
{
|
|
|
if(strcmp(phone,s1[f].Phone)==0)
|
|
|
{
|
|
|
flag=f;
|
|
|
printf("*****************已删除该联系人**************************\n");
|
|
|
printf("\t____________________________________________________\n");
|
|
|
printf("\t│姓名:%s\n",s1[f].Name);
|
|
|
printf("\t│电话:%s\n",s1[f].Phone);
|
|
|
printf("\t│地址:%s\n",s1[f].Adress);
|
|
|
printf("\t│邮箱:%s\n",s1[f].Email);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
fclose(fp);
|
|
|
for(f=flag,j=flag+1;f<=count;f++,j++)
|
|
|
{
|
|
|
s1[f]=s1[j];
|
|
|
}
|
|
|
fp=fopen("contect.txt","w");
|
|
|
for(f=0;f<count;f++)
|
|
|
{
|
|
|
fwrite(&s1[f],sizeof(struct contect),1,fp);
|
|
|
}
|
|
|
fclose(fp);
|
|
|
system("pause");
|
|
|
Delete_Next();
|
|
|
}
|
|
|
|
|
|
void Delete_Next()
|
|
|
{
|
|
|
char i;
|
|
|
system("cls");
|
|
|
printf("\t\t\t______________________________________\t\n");
|
|
|
printf("\t\t\t│ *是否继续? │\t\n");
|
|
|
printf("\t\t\t│___________________________________│ \t\n");
|
|
|
printf("\t\t\t│ *【1】继续 │\t\n");
|
|
|
printf("\t\t\t│ *【2】返回 │\t\n");
|
|
|
printf("\t\t\t│___________________________________│\t\n");
|
|
|
printf("\t\t\t<<<<<<<<<请输入选项:");
|
|
|
scanf("%s",&i);
|
|
|
if(i>='1'&&i<='2')
|
|
|
{
|
|
|
i=i-'0';
|
|
|
switch(i)
|
|
|
{
|
|
|
case 1: Delete_Menu();break;
|
|
|
case 2: Menu();break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("\t请输入正确的选项!\n");
|
|
|
system("pause");
|
|
|
Delete_Next();
|
|
|
}
|
|
|
}
|