tongxunlu
来源:互联网 发布:去黑头收缩毛孔 知乎 编辑:程序博客网 时间:2024/06/03 13:52
/*
通讯录管理程序
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 1000
//结构体的定义
struct record
{
char name[20];
char phone[20];
char adress[40];
} contact[N];
int NO=0; //用于记录联系人的当前个数
FILE *fp;
//函数声明
void mainmenu(); //主菜单
void newrecord(); //新建联系人函数
void browsemenu(); //浏览菜单
void searchmenu(); // 查找菜单
void searchname(); // 按名字查找
void searchphone(); //按电话号码查找
void modifymenu(); // 修改菜单
void deletemenu(); //删除菜单
void deleteall(); //删除所有联系人
void deletesingle(); //删除一个联系人
void deletename(); //删除联系人名字
void deletephone(); //删除联系人电话号码
void paixu(); //按名字从小到大排序
int loadfile(); //建立文件
void savefile(); //保存文件
int main()
{
printf("\n\t\t 欢迎使用通讯录管理系统");
loadfile();
while (1)
{
mainmenu();
}
}
void mainmenu()
{
char choice;
system("cls");
system("color f4");
printf("\n\t\t***********************************************************");
printf("\n 通讯录管理系统主菜单 \n");
printf(" |-------------------------------|\n");
printf(" | 选择[1]:新建联系人菜单 |\n");
printf(" | 选择[2]:显示联系人菜单 |\n");
printf(" | 选择[3]:查找联系人菜单 |\n");
printf(" | 选择[4]:修改联系人菜单 |\n");
printf(" | 选择[5]:删除联系人菜单 |\n");
printf(" | 选择[6]:退出 |\n");
printf(" |-------------------------------|\n");
printf("\n");
printf("\n\t\t***********************************************************");
printf("\n\t\t你选择了:");
choice=getchar();
switch (choice)
{
case '1':
newrecord();
break;
case '2':
browsemenu();
break;
case '3':
searchmenu();;
break;
case '4':
modifymenu();
break;
case '5':
deletemenu();
break;
case '6':
printf("\n\n\t\t\t感谢你的使用!\n");
exit(0);
default:
mainmenu();
}
}
void newrecord()
{
int number;
printf("\n\t\t***********请输入你想添加的联系人的个数");
scanf("%d",&number);
printf("\n\t\t***************请依次输入%d个联系人信息 ****************\n",number);
while(number--)
{
printf("\n\t\t输入姓名:");
scanf("%s",contact[NO].name);
printf("\n\t\t输入电话号码:");
scanf("%s",contact[NO].phone);
printf("\n\t\t输入家庭住址:");
scanf("%s",contact[NO].adress);
printf("\n\t\t***********************************************************");
NO++;
savefile();
}
return;
}
void browsemenu()
{
int i;
system("cls");
system("color f4");
paixu();
if(NO!=0)
{
printf("\n\t\t*************** 以下为通讯录所有信息************\n");
for (i=0; i<NO; i++)
{
printf("\n\t\t---------------------------------------------");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t---------------------------------------------");
}
printf("\n\t\t*****************************************************");
}
else
printf("\n\t\t+_+通讯录中无任何纪录");
printf("\n\t\t按任意键返回主菜单:");
getch();
return;
}
void searchmenu()
{
char choice;
system("cls");
system("color f8");
printf("\n\t\t********************************************************");
printf("\n\t\t -----------------------------");
printf("\n\t\t | 查找菜单 |");
printf("\n\t\t | 1-按姓名查找 |");
printf("\n\t\t | 2-按电话查找 |");
printf("\n\t\t | 3-返回主菜单 |");
printf("\n\t\t |---------------------------|");
printf("\n\t\t********************************************************");
printf("\n\t\t你选择了:");
choice=getche();
switch (choice)
{
case '1':
searchname();
break;
case '2':
searchphone();
break;
case '3':
mainmenu();
break;
}
}
void searchname()
{
int flag=0;
int i;
int a=0;
char name[20];
printf("\n\t\t***************** 按姓名查找 *******************");
printf("\n\t\t请输入姓名:");
scanf("%s",name);
for(i=a; i<NO; i++)
{
if (strcmp(contact[i].name,name)==0)
{
printf("\n\t\t************ 以下是您查找的联系人信息 **********");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t************************************************");
printf("\n\t\t按任意键返回主菜单:");
flag==1;
getch();
return;
}
}
if(flag==0)
{
printf("\n\t\t没有该姓名的联系人纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
void searchphone()
{
int flag=0;
int i;
int a=0;
char phone[20];
printf("\n\t\t****************** 按电话查找 ******************");
printf("\n\t\t请输入电话:");
scanf("%s",phone);
for(i=0; i<NO; i++)
{
if (strcmp(contact[i].phone,phone)==0)
{
printf("\n\t\t************* 以下是您查找的联系人信息 *********");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t************************************************");
printf("\n\t\t按任意键返回主菜单:");
flag++;
getch();
return;
}
}
if (flag==0)
{
printf("\n\t\t没有该联系人信息");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
void modifymenu()
{
int flag=0; //判断是否找到联系人的标志
int i,k;
int a=0;
int t=0;
char choice;
char name[20];
struct record modify; //新建一个联系人结构体
system("cls");
printf("\n\t\t请输入您要修改的姓名:");
scanf("%s",name);
for(i=a; i<NO; i++)
{
if (strcmp(contact[i].name,name)==0)
{
k=i;
flag=1;
modify=contact[i]; //保存当前要修改的联系人的信息
printf("\n\t\t********** 以下是您将修改的联系人信息 **********");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t是否继续?y/n");
if(getchar()=='n')
modifymenu();
else
{
printf("\n\t\t选择您要修改的选项:");
printf("\n\t\t\t(1).姓 名");
printf("\n\t\t\t(2).联系电话");
printf("\n\t\t\t(3).家庭住址");
printf("\n\t\t\t(4).返 回");
printf("\n\t\t你选择了: ");
choice=getchar();
switch(choice)
{
case '1':
printf("姓名:");
scanf("%s",contact[i].name);
break;
case '2':
printf("联系电话:");
scanf("%s",contact[i].phone);
break;
case '3':
printf("家庭住址:");
scanf("%s",contact[i].adress);
break;
case '4':
mainmenu();
break;
default:
modifymenu();
}
printf("\n\t\t您的修改结果为:");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t确认修改?y/n");
if(getch()=='n')
{
contact[i]=modify; //重新将原来的联系人信息拷贝到当前节点
printf("\n\t\t修改未保存!");
}
else printf("\n\t\t 修改成功!");
savefile(); //保存联系人信息
flag=0;
printf("\n\t\t是否继续修改?(y/n)");
if (getch()=='y')
modifymenu();
}
}
}
if (flag==0)
{
printf("\n\t\t+_+没有该联系人的纪录");
printf("\n\t\t是否继续修改?(y/n)");
if (getch()=='y')
modifymenu();
}
return;
}
void deletemenu()
{
char choice;
if(NO==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
system("cls");
printf("\n\t\t******************* 删除菜单 *******************");
printf("\n\t\t****************** 1-删除所有 ******************");
printf("\n\t\t****************** 2-删除单个 ******************");
printf("\n\t\t***************** 3-返回主菜单 *****************");
printf("\n\t\t************************************************");
printf("\n\t\t你选择了:");
choice=getchar();
switch(choice)
{
case '1':
deleteall();
break;
case '2':
deletesingle();
break;
case '3':
mainmenu();
break;
default:
deletemenu();
}
}
void deleteall()
{
printf("\n\t\t确认删除?(y/n)");
if (getch()=='y')
{
if ((fp=fopen("C:\\contact.txt","a+"))==0)
{
printf("\n\t\t+_+不能打开文件,删除失败");
mainmenu();
}
NO=0;
savefile();
printf("\n\t\t所有联系人纪录已删除,按任意键返回主菜单");
getch();
fclose(fp);
return;
}
else
return;
}
void deletesingle()
{
char choice;
printf("\n\t\t\t1-按姓名删除");
printf("\n\t\t\t2-按号码删除");
printf("\n\t\t\t3-返回删除菜单");
printf("\n\t\t请选择:");
choice=getch();
switch (choice)
{
case '1':
deletename();
break;
case '2':
deletephone();
break;
case '3':
deletemenu();
break;
}
}
void deletename()
{
int i,j;
int mark; //用于判断是否找到联系人的标志
char name[20];
printf("\n\t\t请输入要删除联系人姓名:");
scanf("%s",name);
if(NO==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
for (i=0; i<NO; i++)
{
if (strcmp(contact[i].name,name)==0)
{
printf("\n\t\t以下是您要删除的联系人纪录:");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t是否删除?(y/n)");
if (getch()=='y')
{
for (j=i; j<NO-1; j++)
contact[j]=contact[j+1]; //用后一个联系人的信息将前一个联系人的信息覆盖
NO--;
mark++;
printf("\n\t\t^_^删除成功");
savefile();
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
deletename();
return;
}
else
return;
}
continue;
}
if (mark==0)
{
printf("\n\t\t没有该联系人的纪录");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
deletename();
return;
}
}
void deletephone()
{
int i,j;
int mark=0; //用于判断是否找到联系人的标志
char phone[20];
printf("\n\t\t请输入要删除联系电话:");
scanf("%s",phone);
if(NO==0)
{
printf("\n\t\t+_+对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
for (i=0; i<NO; i++)
{
if (strcmp(contact[i].phone,phone)==0)
{
printf("\n\t\t以下是您要删除的联系人纪录:");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t是否删除?(y/n)");
if (getch()=='y')
{
for (j=i; j<NO-1; j++)
contact[j]=contact[j+1];
NO--;
mark++;
printf("\n\t\t^_^删除成功");
savefile();
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
deletephone();
return;
}
else
return;
}
continue;
}
if (mark==0)
{
printf("\n\t\t+_+没有该联系人的纪录");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
deletephone();
return;
}
}
int loadfile()
{
FILE *fp;
if ((fp=fopen("C:\\contact.txt","a+"))==0)
{
printf("\n\t\t\t\t建立失败");
exit(0);
}
else
{
printf("\n\n\t\t\t 电话簿建立成功!");
}
while(!feof(fp) && fread(&contact[NO],sizeof(struct record),1,fp))
{
NO++;
}
printf("\n\t\t\t 按任意键进入主菜单");
getch();
return 0;
}
void paixu()
{
int i,j;
struct record temp; //交换变量
for(i=0;i<NO-1;i++)
for(j=0;j<NO-i-1;j++)
{
if(strcmp(contact[j].name,contact[j+1].name)>0)
{
temp=contact[j];
contact[j]=contact[j+1];
contact[j+1]=temp;
}
}
}
void savefile()
{
int i;
if ((fp=fopen("C:\\contact.txt","w"))==0)
{
printf("\n\t\t+_+文件打开失败!\n");
}
for (i=0; i<NO; i++)
{
if (fwrite(&contact[i],sizeof(struct record),1,fp)!=1)
{
printf("\n\t\t 写入文件错误!\n");
}
}
printf("\n\t\t 已成功保存至文件!\n");
fclose(fp);
}
通讯录管理程序
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 1000
//结构体的定义
struct record
{
char name[20];
char phone[20];
char adress[40];
} contact[N];
int NO=0; //用于记录联系人的当前个数
FILE *fp;
//函数声明
void mainmenu(); //主菜单
void newrecord(); //新建联系人函数
void browsemenu(); //浏览菜单
void searchmenu(); // 查找菜单
void searchname(); // 按名字查找
void searchphone(); //按电话号码查找
void modifymenu(); // 修改菜单
void deletemenu(); //删除菜单
void deleteall(); //删除所有联系人
void deletesingle(); //删除一个联系人
void deletename(); //删除联系人名字
void deletephone(); //删除联系人电话号码
void paixu(); //按名字从小到大排序
int loadfile(); //建立文件
void savefile(); //保存文件
int main()
{
printf("\n\t\t 欢迎使用通讯录管理系统");
loadfile();
while (1)
{
mainmenu();
}
}
void mainmenu()
{
char choice;
system("cls");
system("color f4");
printf("\n\t\t***********************************************************");
printf("\n 通讯录管理系统主菜单 \n");
printf(" |-------------------------------|\n");
printf(" | 选择[1]:新建联系人菜单 |\n");
printf(" | 选择[2]:显示联系人菜单 |\n");
printf(" | 选择[3]:查找联系人菜单 |\n");
printf(" | 选择[4]:修改联系人菜单 |\n");
printf(" | 选择[5]:删除联系人菜单 |\n");
printf(" | 选择[6]:退出 |\n");
printf(" |-------------------------------|\n");
printf("\n");
printf("\n\t\t***********************************************************");
printf("\n\t\t你选择了:");
choice=getchar();
switch (choice)
{
case '1':
newrecord();
break;
case '2':
browsemenu();
break;
case '3':
searchmenu();;
break;
case '4':
modifymenu();
break;
case '5':
deletemenu();
break;
case '6':
printf("\n\n\t\t\t感谢你的使用!\n");
exit(0);
default:
mainmenu();
}
}
void newrecord()
{
int number;
printf("\n\t\t***********请输入你想添加的联系人的个数");
scanf("%d",&number);
printf("\n\t\t***************请依次输入%d个联系人信息 ****************\n",number);
while(number--)
{
printf("\n\t\t输入姓名:");
scanf("%s",contact[NO].name);
printf("\n\t\t输入电话号码:");
scanf("%s",contact[NO].phone);
printf("\n\t\t输入家庭住址:");
scanf("%s",contact[NO].adress);
printf("\n\t\t***********************************************************");
NO++;
savefile();
}
return;
}
void browsemenu()
{
int i;
system("cls");
system("color f4");
paixu();
if(NO!=0)
{
printf("\n\t\t*************** 以下为通讯录所有信息************\n");
for (i=0; i<NO; i++)
{
printf("\n\t\t---------------------------------------------");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t---------------------------------------------");
}
printf("\n\t\t*****************************************************");
}
else
printf("\n\t\t+_+通讯录中无任何纪录");
printf("\n\t\t按任意键返回主菜单:");
getch();
return;
}
void searchmenu()
{
char choice;
system("cls");
system("color f8");
printf("\n\t\t********************************************************");
printf("\n\t\t -----------------------------");
printf("\n\t\t | 查找菜单 |");
printf("\n\t\t | 1-按姓名查找 |");
printf("\n\t\t | 2-按电话查找 |");
printf("\n\t\t | 3-返回主菜单 |");
printf("\n\t\t |---------------------------|");
printf("\n\t\t********************************************************");
printf("\n\t\t你选择了:");
choice=getche();
switch (choice)
{
case '1':
searchname();
break;
case '2':
searchphone();
break;
case '3':
mainmenu();
break;
}
}
void searchname()
{
int flag=0;
int i;
int a=0;
char name[20];
printf("\n\t\t***************** 按姓名查找 *******************");
printf("\n\t\t请输入姓名:");
scanf("%s",name);
for(i=a; i<NO; i++)
{
if (strcmp(contact[i].name,name)==0)
{
printf("\n\t\t************ 以下是您查找的联系人信息 **********");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t************************************************");
printf("\n\t\t按任意键返回主菜单:");
flag==1;
getch();
return;
}
}
if(flag==0)
{
printf("\n\t\t没有该姓名的联系人纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
void searchphone()
{
int flag=0;
int i;
int a=0;
char phone[20];
printf("\n\t\t****************** 按电话查找 ******************");
printf("\n\t\t请输入电话:");
scanf("%s",phone);
for(i=0; i<NO; i++)
{
if (strcmp(contact[i].phone,phone)==0)
{
printf("\n\t\t************* 以下是您查找的联系人信息 *********");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t************************************************");
printf("\n\t\t按任意键返回主菜单:");
flag++;
getch();
return;
}
}
if (flag==0)
{
printf("\n\t\t没有该联系人信息");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
void modifymenu()
{
int flag=0; //判断是否找到联系人的标志
int i,k;
int a=0;
int t=0;
char choice;
char name[20];
struct record modify; //新建一个联系人结构体
system("cls");
printf("\n\t\t请输入您要修改的姓名:");
scanf("%s",name);
for(i=a; i<NO; i++)
{
if (strcmp(contact[i].name,name)==0)
{
k=i;
flag=1;
modify=contact[i]; //保存当前要修改的联系人的信息
printf("\n\t\t********** 以下是您将修改的联系人信息 **********");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t是否继续?y/n");
if(getchar()=='n')
modifymenu();
else
{
printf("\n\t\t选择您要修改的选项:");
printf("\n\t\t\t(1).姓 名");
printf("\n\t\t\t(2).联系电话");
printf("\n\t\t\t(3).家庭住址");
printf("\n\t\t\t(4).返 回");
printf("\n\t\t你选择了: ");
choice=getchar();
switch(choice)
{
case '1':
printf("姓名:");
scanf("%s",contact[i].name);
break;
case '2':
printf("联系电话:");
scanf("%s",contact[i].phone);
break;
case '3':
printf("家庭住址:");
scanf("%s",contact[i].adress);
break;
case '4':
mainmenu();
break;
default:
modifymenu();
}
printf("\n\t\t您的修改结果为:");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t确认修改?y/n");
if(getch()=='n')
{
contact[i]=modify; //重新将原来的联系人信息拷贝到当前节点
printf("\n\t\t修改未保存!");
}
else printf("\n\t\t 修改成功!");
savefile(); //保存联系人信息
flag=0;
printf("\n\t\t是否继续修改?(y/n)");
if (getch()=='y')
modifymenu();
}
}
}
if (flag==0)
{
printf("\n\t\t+_+没有该联系人的纪录");
printf("\n\t\t是否继续修改?(y/n)");
if (getch()=='y')
modifymenu();
}
return;
}
void deletemenu()
{
char choice;
if(NO==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
system("cls");
printf("\n\t\t******************* 删除菜单 *******************");
printf("\n\t\t****************** 1-删除所有 ******************");
printf("\n\t\t****************** 2-删除单个 ******************");
printf("\n\t\t***************** 3-返回主菜单 *****************");
printf("\n\t\t************************************************");
printf("\n\t\t你选择了:");
choice=getchar();
switch(choice)
{
case '1':
deleteall();
break;
case '2':
deletesingle();
break;
case '3':
mainmenu();
break;
default:
deletemenu();
}
}
void deleteall()
{
printf("\n\t\t确认删除?(y/n)");
if (getch()=='y')
{
if ((fp=fopen("C:\\contact.txt","a+"))==0)
{
printf("\n\t\t+_+不能打开文件,删除失败");
mainmenu();
}
NO=0;
savefile();
printf("\n\t\t所有联系人纪录已删除,按任意键返回主菜单");
getch();
fclose(fp);
return;
}
else
return;
}
void deletesingle()
{
char choice;
printf("\n\t\t\t1-按姓名删除");
printf("\n\t\t\t2-按号码删除");
printf("\n\t\t\t3-返回删除菜单");
printf("\n\t\t请选择:");
choice=getch();
switch (choice)
{
case '1':
deletename();
break;
case '2':
deletephone();
break;
case '3':
deletemenu();
break;
}
}
void deletename()
{
int i,j;
int mark; //用于判断是否找到联系人的标志
char name[20];
printf("\n\t\t请输入要删除联系人姓名:");
scanf("%s",name);
if(NO==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
for (i=0; i<NO; i++)
{
if (strcmp(contact[i].name,name)==0)
{
printf("\n\t\t以下是您要删除的联系人纪录:");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t是否删除?(y/n)");
if (getch()=='y')
{
for (j=i; j<NO-1; j++)
contact[j]=contact[j+1]; //用后一个联系人的信息将前一个联系人的信息覆盖
NO--;
mark++;
printf("\n\t\t^_^删除成功");
savefile();
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
deletename();
return;
}
else
return;
}
continue;
}
if (mark==0)
{
printf("\n\t\t没有该联系人的纪录");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
deletename();
return;
}
}
void deletephone()
{
int i,j;
int mark=0; //用于判断是否找到联系人的标志
char phone[20];
printf("\n\t\t请输入要删除联系电话:");
scanf("%s",phone);
if(NO==0)
{
printf("\n\t\t+_+对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
for (i=0; i<NO; i++)
{
if (strcmp(contact[i].phone,phone)==0)
{
printf("\n\t\t以下是您要删除的联系人纪录:");
printf("\n\t\t姓 名: %s",contact[i].name);
printf("\n\t\t联系电话: %s",contact[i].phone);
printf("\n\t\t家庭住址: %s",contact[i].adress);
printf("\n\t\t是否删除?(y/n)");
if (getch()=='y')
{
for (j=i; j<NO-1; j++)
contact[j]=contact[j+1];
NO--;
mark++;
printf("\n\t\t^_^删除成功");
savefile();
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
deletephone();
return;
}
else
return;
}
continue;
}
if (mark==0)
{
printf("\n\t\t+_+没有该联系人的纪录");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
deletephone();
return;
}
}
int loadfile()
{
FILE *fp;
if ((fp=fopen("C:\\contact.txt","a+"))==0)
{
printf("\n\t\t\t\t建立失败");
exit(0);
}
else
{
printf("\n\n\t\t\t 电话簿建立成功!");
}
while(!feof(fp) && fread(&contact[NO],sizeof(struct record),1,fp))
{
NO++;
}
printf("\n\t\t\t 按任意键进入主菜单");
getch();
return 0;
}
void paixu()
{
int i,j;
struct record temp; //交换变量
for(i=0;i<NO-1;i++)
for(j=0;j<NO-i-1;j++)
{
if(strcmp(contact[j].name,contact[j+1].name)>0)
{
temp=contact[j];
contact[j]=contact[j+1];
contact[j+1]=temp;
}
}
}
void savefile()
{
int i;
if ((fp=fopen("C:\\contact.txt","w"))==0)
{
printf("\n\t\t+_+文件打开失败!\n");
}
for (i=0; i<NO; i++)
{
if (fwrite(&contact[i],sizeof(struct record),1,fp)!=1)
{
printf("\n\t\t 写入文件错误!\n");
}
}
printf("\n\t\t 已成功保存至文件!\n");
fclose(fp);
}
0 0
- tongxunlu
- xxx is missing from working copy
- ReentrantLock ,Synchronized对比
- [学习笔记]实时SLAM的未来及深度学习与SLAM对比
- Java垃圾收集器(Garbage Collector)
- redis安装部署
- tongxunlu
- Cinema Director 教程——unity制作过程动画,剧情等
- 精通 CSS+DIV 网页样式与布局 12
- linux下安装vnc server
- TypeError: unhashable type: 'dict'
- 倒排索引
- MyBatis Generator自动创建代码
- WinDbg开启Local Kernel Debug
- 判断一个或多个字符串是否为空的时候统一的简便方法