C语言第十二天:通讯录练习(C语言最后一天老师带我们做的Project)

// 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");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值