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("

0 0
原创粉丝点击