黑马程序员技术交流社区
标题:
终于把通讯录写完啦~~~~~哈哈
[打印本页]
作者:
ydy2511000
时间:
2016-1-9 12:50
标题:
终于把通讯录写完啦~~~~~哈哈
//
// main.c
// 文件的通讯录
/*
通讯录文件创建成功!
数据初始化成功!...
**************************************
********欢迎使用通讯录************
*********1、添加联系人************
*********2、删除联系人************
*********3、修改联系人************
*********4、查看所有联系人*******
*********5、搜索联系人************
*********6、退出系统***************
**************************************
请选择1-6之间的操作
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//*********宏定义**********
#define N 100 //可存入联系人的个数
#define NAMELEN 21 //名字字符串数组的长度
#define NUM 13//电话字符串数组长度
//联系人结构体
struct tongXunLu{
char name[NAMELEN];
char num[NUM];
};
char *file = "TXL.data";
struct tongXunLu per[N]; //用来储存联系人的数组
int total = 0; //统计联系人个数
//*****************函数的声明************************
void set();//初始化~~
void JM(); //显示主界面~~
int judgment(int a, int min, int max); //判断输入是否合法~~
void writeFile(); //将数据写入文件~~
void add1(); //添加联系人~~
void del2(); //删除联系人~~
void change3(); //修改联系人~~
void showAll4();//查看所有联系人~~~~
void find5();//查找指定联系人~~~
int main(int argc, const char * argv[])
{
system("clear"); //清理屏幕
//初始化系统
set( );
int en = 10;
while(en != -1)
{
do
{
JM();
rewind(stdin);
scanf("%d",&en);
}while(judgment(en,1,6));
switch(en)
{
case 1:
add1();
break;
case 2:
del2();
break;
case 3:
change3();
break;
case 4:
showAll4();
break;
case 5:
find5();
break;
case 6:
printf("系统正在退出...\n");
printf("系统已经退出!\n");
return 0;
break;
}
}
return 0;
}
void set()
{
printf("文件正在初始化...\n");
FILE *p = fopen(file,"r");
if(p != NULL)
{
fread(&total,sizeof(total),1,p);
for(int i = 0; i < total; i++)
{
fread(&per[i],sizeof(struct tongXunLu),1,p);
}
}
else
{
p = fopen(file,"wb");
fwrite(&total,sizeof(total),1,p);
}
printf("文件初始化成功~~~\n");
fclose(p);
}
int judgment(int a, int min, int max)
{
if(a < min || a> max)
{
printf("非法输入!请重新输入:\n");
return 1;
}
else
{
return 0;
}
}
void JM()
{
printf("**************************************\n");
printf("********欢迎使用通讯录************\n");
printf("*********1、添加联系人************\n");
printf("*********2、删除联系人************\n");
printf("*********3、修改联系人************\n");
printf("*********4、查看所有联系人*******\n");
printf("*********5、收索联系人************\n");
printf("*********6、退出系统***************\n");
printf("**************************************\n");
printf("请选择1-6之间的操作:");
}
void writeFile()
{
FILE *p = fopen(file,"wb+");
if( p != NULL)
{
fwrite(&total,sizeof(total),1,p);
for(int i = 0; i < total;i++)
{
fwrite(&per[i],sizeof(struct tongXunLu),1,p);
}
fclose(p);
}
}
void add1()
{
printf("你选择的是添加联系人功能,请按提示操作:\n");
printf("请输入联系人姓名:\n");
scanf("%s",per[total].name);
printf("请输入联系人电话:\n");
scanf("%s",per[total].num);
printf("您是否确认添加联系人 0:取消 1:确认\n");
int flag = -1;
scanf("%d",&flag);
if(flag == 1)
{
total++;
writeFile();
printf("添加联系人成功\n");
}
else
{
printf("取消添加联系人\n");
}
}
void del2()
{
printf("你选择的是删除联系人功能,请按提示操作:\n");
showAll4();
printf("请输入您要删除的联系人的编号:\n");
int bianHao = 0;
scanf("%d",&bianHao);
while(judgment(bianHao,1,total));
printf("您是否确认删除联系人 0:取消 1:确认\n");
int flag = -1;
scanf("%d",&flag);
if(flag == 1)
{
for(int i = bianHao;i <total;i++)
{
per[i-1]= per[i];
}
total--;
writeFile();
printf("删除联系人成功\n");
}
else
{
printf("取消删除联系人\n");
}
}
void change3()
{
printf("你选择的是修改联系人功能,请按提示操作:\n");
showAll4();
printf("请输入您要修改的联系人的编号:\n");
int bianHao = 0;
scanf("%d",&bianHao);
while(judgment(bianHao,1,total));
printf("您是否确认修改联系人 0:取消 1:确认\n");
int flag = -1;
scanf("%d",&flag);
if(flag == 1)
{
printf("请重新输入联系人姓名:");
scanf("%s",per[bianHao-1].name);
printf("请重新输入联系人电话:");
scanf("%s",per[bianHao-1].num);
writeFile();
printf("修改联系人成功\n");
}
else
{
printf("取消修改联系人\n");
}
}
void showAll4()
{
printf("联系人列表如下:\n");
for(int i = 0; i < total; i++)
{
printf("%d、姓名:%s 电话:%s\n",i+1,per[i].name,per[i].num);
}
}
void find5()
{
struct tongXunLu temp;
printf("你选择的是修改联系人功能,请按提示操作:\n");
showAll4();
printf("请输入您要查找的联系人的姓名:\n");
scanf("%s",temp.name);
printf("搜索中...\n");
int flag = 1;
for(int i = 0; i < total;i++)
{
if((strcmp(temp.name,per[i].name))==0)
{
printf("通讯录中%s的电话为%s\n",per[i].name,per[i].num);
flag = 0;
break;
}
}
if(flag)
{
printf("并没有=。=\n");
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2