虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C/C++编程 > C语言通讯录实例分享

C语言通讯录实例分享
类别:C/C++编程   作者:码皇   来源:互联网   点击:

这篇文章主要为大家分享了C语言通讯录实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言通讯录实例的具体代码,供大家参考,具体内容如下

main.c文件:

    // // main.c // c语言通讯录 // // Created by stevenchang on 9/6/15. // Copyright (c) 2015 cz. All rights reserved. // /** 1.添加联系人 2.删除联系人 3.更新联系人 4.显示所有联系人 5.查找联系人 6.退出系统 */ #include <stdio.h> int main(int argc, const char * argv[]) {
    //程序的初始化 initContacts();
    while(1) {
    int flag = 0;
    printf("*************C语言通讯录*************n");
    printf("************1.添加用户***************n");
    printf("************2.删除用户***************n");
    printf("************3.更新用户***************n");
    printf("************4.查找用户***************n");
    printf("************5.显示所有用户************n");
    printf("************6.退出系统***************n");
    printf("************************************n");
    printf("请输入1-6的功能编号 :n");
    scanf("%d",&flag);
    //判断编号是否合法 validateNum(flag, 1, 6);
    switch (flag) {
    case 1: addContact();
    //添加用户 break;
    case 2: deleteContact();
    //删除用户 break;
    case 3: updateContact();
    //更新用户 break;
    case 4: searchContact();
    //查找用户 break;
    case 5: listContact();
    //显示所有用户 break;
    case 6: printf("系统正在退出!n");
    printf("成功退出系统!n");
    return 0;
    break;
    default: break;
    }
    }
    return 0;
    }

MyFile.c文件:

    // // MyFile.c // c语言通讯录 // // Created by stevenchang on 9/6/15. // Copyright (c) 2015 cz. All rights reserved. // #include "MyFile.h" //**************函数的实现**********************// /** * 添加联系人 */ void addContact() {
    int flag = 0;
    printf("您选择的是添加联系人,请按操作进行!n");
    printf("请输入用户姓名(*注意联系人姓名中间不能有空格):n");
    scanf("%s",contacts[totalContactsCount].name);
    printf("请输入电话(*注意联系人电话中间不能有空格): n");
    scanf("%s",contacts[totalContactsCount].tel);
    printf("是否确认添加!1:是 0:否n");
    scanf("%d",&flag);
    if (flag) {
    //联系人个数加1 totalContactsCount++;
    //将联系人信息保存到文件中 writeFile();
    }
    printf("已经放弃添加!n");
    return ;
    }
    /** * 删除联系人 */ void deleteContact() {
    int no;
    printf("您选择的是删除联系人,请按操作进行!n");
    printf("请输入要删除的编号:n");
    scanf("%d",&no);
    //判断输入的编号是否合法 if (!validateNum(no, 1, totalContactsCount)) {
    printf("您输入的编号不合法!n");
    return ;
    }
    //合法 //如果删除的是最后一个元素 if (no == totalContactsCount) {
    totalContactsCount--;
    }
    else {
    //如果删除的不是最后一个元素 for (int i = no;
    i < totalContactsCount;
    i++) {
    contacts[no-1] = contacts[no];
    //元素的移动和覆盖 }
    totalContactsCount--;
    }
    //同步文件 writeFile();
    }
    /** * 更新联系人 */ void updateContact() {
    int no;
    char newName[NAMELENGTH];
    char newTel[TELLENGTH];
    printf("您选择的是更新联系人,请按操作进行!n");
    printf("请输入要修改的联系人编号:n");
    scanf("%d",&no);
    //判断编号是否合法 if (!validateNum(no, 1, totalContactsCount)) {
    return ;
    }
    //合法 printf("请重新输入用户名:n");
    scanf("%s",newName);
    printf("请重新输入电话号码n");
    scanf("%s",newTel);
    strcpy(contacts[no-1].name, newName);
    strcpy(contacts[no-1].tel, newTel);
    //写入文件 writeFile();
    }
    /** * 显示所有联系人 */ void listContact() {
    printf("您选择的是显示所有联系人,联系人如下!n");
    if (totalContactsCount > 0) {
    printf("序号t姓名t电话n");
    for (int i = 0 ;
    i < totalContactsCount;
    i++) {
    printf("%dt%st%sn",i+1,contacts[i].name, contacts[i].tel);
    }
    }
    else {
    printf("联系人为空,请添加联系人!n");
    return ;
    }
    }
    /** * 查找联系人 */ void searchContact() {
    printf("您选择的是查找联系人,请按操作进行!n");
    char searchName[NAMELENGTH];
    printf("请输入要查找的联系人姓名:n");
    scanf("%s",searchName);
    for (int i = 0 ;
    i < totalContactsCount;
    i++) {
    if (strcmp(searchName, contacts[i].name)==0) {
    //说明相同 printf("联系人姓名为:%s,电话号码为:%sn",contacts[i].name,contacts[i].tel);
    return ;
    }
    if (i == totalContactsCount-1) {
    printf("此联系人不存在!n");
    }
    }
    }
    /** * 通讯录的初始化 */ void initContacts() {
    printf("通讯录正在初始化!n");
    FILE *fp = fopen(filePath, "r");
    if (fp!=NULL) {
    //读取文件成功 //读取联系人的个数 fread(&totalContactsCount, sizeof(totalContactsCount), 1, fp);
    //读取每个联系人 for (int i = 0;
    i < totalContactsCount;
    i++) {
    //读取联系人数据,到联系人数组中 fread(&contacts[i], sizeof(Person), 1, fp);
    }
    }
    else {
    //读取文件失败 //创建文件 fp = fopen(filePath, "wb");
    //写入联系人的个数 fwrite(&totalContactsCount, sizeof(totalContactsCount), 1, fp);
    printf("通讯录文件创建成功!n");
    }
    //关闭文件指针 fclose(fp);
    printf("通讯录初始化成功!n");
    }
    /** * 判断功能编号是否合法 1:合法 0:非法 */ int validateNum(int num, int min, int max) {
    if (num < min || num > max) {
    printf("输入的功能编号不正确,请重新输入!n");
    return 0;
    }
    return 1;
    }
    /** *将联系人写入文件 */ void writeFile() {
    //以二进制文件打开文件 FILE *fp = fopen(filePath, "wb");
    if (fp != NULL) {
    //写入联系人个数 fwrite(&totalContactsCount, sizeof(totalContactsCount), 1, fp);
    //写入每个联系人个数 for (int i = 0;
    i < totalContactsCount;
    i++) {
    fwrite(&contacts[i], sizeof(Person), 1, fp);
    }
    }
    fclose(fp);
    printf("文件更新成功n");
    }

MyFile.h文件:

    // // MyFile.h // c语言通讯录 // // Created by stevenchang on 9/6/15. // Copyright (c) 2015 cz. All rights reserved. // #ifndef __c_______MyFile__ #define __c_______MyFile__ #include <stdio.h> #include <string.h> #define N 100 //宏定义一个通讯录的容量 #define NAMELENGTH 22 //宏定义一个名字的长度 #define TELLENGTH 12 //宏定义一个电话号码的长度 //********************函数的声明*********************// void addContact();
    //添加联系人 void deleteContact();
    //删除联系人 void updateContact();
    //更新联系人 void listContact();
    //显示所有联系人 void searchContact();
    //查找联系人 void initContacts();
    //通讯录的初始化 int validateNum(int num, int min, int max);
    //判断功能编号是否合法 1:合法 0:非法 void writeFile();
    //将联系人写入文件 typedef struct Person {
    //定义一个结构体 char name[NAMELENGTH];
    //定义姓名数组 char tel[TELLENGTH];
    //定义结构体数组 }
    Person;
    //定义文件路径 char *filePath = "telData.data";
    int totalContactsCount = 0;
    Person contacts[N];
    //定义Person结构体数组 #endif /* defined(__c_______MyFile__) */

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

  • C语言通讯录管理系统课程设计
  • C语言通讯录管理系统完整版
  • C语言实现通讯录功能
  • C语言使用结构体实现简单通讯录
  • 用C语言实现简易通讯录
  • C语言实现一个通讯录
  • C语言实现通讯录系统
  • C语言实现简单的通讯录
  • 使用C语言打造通讯录管理系统和教学安排系统的代码示例
  • C语言基于哈希表实现通讯录
相关热词搜索: C语言 通讯录