// main.c
// C语言第十二天:通讯录练习
// ps:
C语言最后一天老师带我们做的Project;
#include <stdio.h>
#include <string.h>
//宏列表
#define names 10
#define tongxunlu_MAX 200
//声明函数列表
void chushihua();
void ui ();
void tianjia();
void chakan();
void baocun();
void deltel();
void xiugai();
void sousuo();
//联系人结构体
typedef struct{
char name[names];//姓名
int phone;//电话
}person;
//定义一个通讯录数组
person tongxunlu[tongxunlu_MAX];
//实际保存的人数
int truenumber=0;
int main(int argc, const char * argv[]) {
chushihua();
while (1) {
//绘制主界面UI
ui();
//接受用户选择
int num;
scanf("%d",&num);
//根据用户的选择启动相应功能
switch (num) {
case 1://添加联系人
tianjia();
break;
case 2://删除联系人
deltel();
break;
case 3://修改联系人
xiugai();
break;
case 4://查看联系人
chakan();
break;
case 5://搜索联系人
sousuo();
break;
case 6://退出系统
{
printf("确定要退出系统吗?确定请输入y,否则按任意键返回.");
char a;//定义一个字符变量接受用户输入
scanf(" %c",&a);
if (a=='y') {
return 0;
}else {
break;
}
}
default:{
char temp;
scanf("%c",&temp);
printf("非法输入请重试\n");
}
break;
}
}
return 0;
}
//初始化函数
void chushihua(){
FILE *fp=fopen("/Users/LGD/Desktop/未命名.txt", "rb");
if (fp) {
fread(&truenumber, sizeof(int), 1, fp);
fread(tongxunlu, sizeof(person), truenumber, fp);
fclose(fp);
}
printf("欢迎使用通讯录\n");
}
//1.UI界面函数
void ui (){
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");
};
//2.函数
//3.添加联系人函数
void tianjia(){
person p;
printf("请输入姓名\n");
scanf("%s",p.name);
printf("请输入电话号码\n");
scanf("%d",&p.phone);
tongxunlu[truenumber]=p;
truenumber++;
baocun();
printf("添加成功\n");
}
//4.查看联系人函数
void chakan(){
for(int i=0;i<truenumber;i++){
printf("联系人列表\n");
printf("%d:��:%s��:%d\n",i+1,tongxunlu[i].name,tongxunlu[i].phone);
printf("\n");
}
}
//保存所有联系人数据到本地文件的函数
void baocun(){
FILE *fp=fopen("/Users/LGD/Desktop/未命名.txt", "wb");
if (fp) {
fwrite(&truenumber, sizeof(int), 1, fp);
fwrite(tongxunlu, sizeof(person), truenumber, fp);
fclose(fp);
}
}
//5.删除联系人函数
void deltel(){
chakan();
while (1) {
printf("请输入所要删除联系人的序号\n");
int num;
scanf("%d",&num);
if (num<1||num>truenumber) {
printf("输入非法,请重新输入");
continue;
}else{
if (num==truenumber) {
truenumber--;
}else{
for (int i =num-1; i<truenumber; i++) {
tongxunlu[i]=tongxunlu[i+1];
}
truenumber--;
}
baocun();
break;
}
}
}
//6.修改联系人函数
void xiugai(){
chakan();
while (1) {
printf("请输入要修改的序号\n");
int num;
scanf("%d",&num);
if (num<1||num>truenumber) {
printf("输入错误,请重新输入.\n");
}else{
printf("请输入要修改后的姓名\n");
scanf("%s",tongxunlu[num-1].name);
printf("请输入要修改后的号码\n");
scanf("%d",&tongxunlu[num-1].phone);
printf("修改成功\n");
baocun();
break;
}
}
}
//7.搜索联系人函数
void sousuo(){
printf("请输入要查找的姓名\n");
char name[names]={'0'};
scanf("%s",name);
int i=0;
for ( i=0; i<truenumber; i++) {
if (strcmp(tongxunlu[i].name, name)==0) {
printf("你搜索的联系人:%s电话号码是:%d\n",tongxunlu[i].name,tongxunlu[i].phone);
break;
}
}
if (i==truenumber) {
printf("查无此人\n");
}
}