C语言简单通讯录

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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("请输入联系人号码:");

相关文档
最新文档