C语言简单通讯录
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
#include
#include
#define LEN sizeof(struct student)
#define TITLE_T "╔═══════════════╗\n"
#define NAME "║※姓名: 号码: ║\n"
#define GESHI "║※%-15s %-11s ║\n"
#define BOTTOM_B "╚═══════════════╝\n"
#define NEIRONG stu[i].name,stu[i].num
struct student //定义通讯录结构体
{
char name[15]; //姓名
char num[12]; //号码
};
struct student stu[50]; //定义结构体数组
void in(); //添加联系人
void show(); //显示联系人
void order(); //按字符排序
void del(); //删除联系人
void modify(); //修改联系人
void menu(); //主菜单
void total(); //计算总人数
void search(); //查找联系人
void main() //主函数
{
system("title 某某某通讯录"); //设置cmd窗口标题
system("mode con cols=85 lines=35"); //设置cmd窗口大小
system("color 8A");
int n;
menu(); //执行菜单命令
scanf("%d",&n); //输入选择功能的编号while(n)
{
switch(n)
{
case 1:
in();
break;
case 2:
show();
break;
case 3:
search();
break;
case 4:
del();
break;
case 5:
modify();
break;
case 6:
total();
break;
default:
printf("输入编码有误!正在返回...");
Sleep(3000);
break;
}
menu(); //执行完功能再次显示菜单界面
scanf("%d",&n);
}
}
void menu() //自定义函数实现菜单功能
{
system("cls");
system("date /t");
system("time /t");
printf("\n\n\n\n\n");
printf("\t\t╔══════════某某某通讯录══════════╗\n");
printf("\t\t║※0. 退出║\n");
printf("\t\t║※1. 添加║\n");
printf("\t\t║※2. 查看║\n");
printf("\t\t║※3. 查找║\n");
printf("\t\t║※4. 删除║\n");
printf("\t\t║※5. 修改║\n");
printf("\t\t║※6. 联系人总数║\n");
printf("\t\t╚══════════════════════════╝\n\n");
printf("\t\t请选择(0-6):");
}
void in() //添加联系人
{
int i,m=0; //m是记录的条数char ch[2];
FILE *fp; //定义文件指针if((fp=fopen("data","ab+"))==NULL) //打开指定文件
{
printf("打开文件失败!正在返回...");
Sleep(3000);
return;
}
while(!feof(fp))
{
if(fread(&stu[m] ,LEN,1,fp)==1)
m++; //统计当前记录条数}
fclose(fp);
if(m==0)
printf("当前无记录!\n");
else
{
system("cls");
printf(TITLE_T);
printf(NAME);
for(i=0;i printf(GESHI,NEIRONG); //将信息按指定格式输出 printf(BOTTOM_B); } if((fp=fopen("data","wb"))==NULL) //以只写二进制方式打开文件 { printf("打开文件失败!正在返回..."); Sleep(3000); return; } for(i=0;i fwrite(&stu[i] ,LEN,1,fp); //如果原来有记录,就将记录写入到磁盘文件中 printf("是否添加?(y/n):"); scanf("%s",ch); while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) //判断是否要添加联系人 { back:printf("请输入联系人姓名:"); scanf("%s",&stu[m].name); //输入姓名 for(i=0;i if(strcmp(stu[i].name,stu[m].name)==0) { printf("您输入的联系人已存在!\n"); goto back; } printf("请输入联系人号码:");