C语言版通讯录
来源:互联网 发布:it技术总监岗位职责 编辑:程序博客网 时间:2024/05/19 10:37
#include <stdio.h>
#include <string.h>
//宏定义部分
#define NAME_LEN 20
#define ARRAY_LEN 200//定义联系人数组的长度,即通讯录中最多存储多少个联系人
//函数的声明部分
void start();
void drawMainUi();
void addContact();
void showList();
void writeData();
void delContact();
void search();
void editContact();
//全局变量定义部分
int realCount=0;//通讯录中实际保存的联系人个数
//定义联系人结构体
typedefstruct{
char name[NAME_LEN];//姓名
char gender; //性别
int telNum; //电话
} person;
//定义联系人结构体数组
person contacts[ARRAY_LEN];
int main(int argc,const char * argv[]) {
start();//初始化
while (1) {
drawMainUi();
//定义变量保存用户输入的序号
int select;
scanf("%d",&select);
switch (select) {
case1:
//添加联系人
addContact();
break;
case2:
//删除联系人
delContact();
break;
case3:
//修改联系人
editContact();
break;
case4:
//查看所有联系人
showList();
break;
case5:
//搜索联系人
search();
break;
case6:
//退出系统
printf("确定要退出吗?确定请输入:y 否则按任意键返回\n");
char answer;
scanf(" %c",&answer);
if (answer=='y') {
return 0;
}else{
break;
}
default:
printf("输入非法请重新输入\n");
char ch;
scanf("%c",&ch);//此处是用来容错的
break;
}
}//while到此结束
return0;
}
/**
* 初始化函数
*/
void start(){
//通讯录初始化操作
FILE *fp=fopen("contact.data","rb");
if (fp) {
fread(&realCount,sizeof(int),1, fp);
fread(contacts,sizeof(person),realCount, fp);
}
fclose(fp);
//通讯录初始化结束----------------》
}
/**
* 绘制主界面函数
*/
void drawMainUi(){
printf("**************************\n");
printf("******欢迎使用通讯录 ******\n");
printf("****** 1、添加联系人 ******\n");
printf("****** 2、删除联系人 ******\n");
printf("****** 3、修改联系人 ******\n");
printf("****** 4、查看所有联系人 ****\n");
printf("****** 5、搜索联系人 ******\n");
printf("****** 6、退出系统 ******\n");
printf("**************************\n\n");
printf("请输入您要进行的操作(请输入序号)\n");
}
/**
* 添加联系人函数
*/
void addContact(){
printf("请输入联系人姓名\n");
scanf("%s",contacts[realCount].name);
printf("请输入性别,男:m女:w\n");
scanf(" %c",&contacts[realCount].gender);
printf("请输入联系人电话号码\n");
scanf("%d",&contacts[realCount].telNum);
printf("添加联系人成功\n");
//让实际联系人个数+1
realCount++;
//更新写入数据
writeData();
}
/**
* 查看所有联系人函数
*/
void showList(){
if (realCount==0) {
printf("一个联系人都没有,查看个毛线\n");
}else{
printf("联系人列表如下\n");
for (int i=0; i<realCount; i++) {
if (contacts[i].gender=='m') {
printf("