C语言实现简单电子通讯录

需求

制作一个电子通信录,通过该通讯录能存入好友ID号、姓名(英文)、手机号码、公司电话。

模块

·主界面:主要显示软件功能
A) 添加好友信息
B) 列表好友信息
C) 搜索好友
D) 更新好友信息
F) 删除好友

·添加好友:
用户输入命令后,让用户输入好友信息,个人电话号码不能为空,添加成功或失败都需要提示信息。

·列表好友:
可以根据电话号码或名称排序进行显示,使用堆排序和快速排序。

·搜索好友:
要求可以根据三种方式搜索:ID、名字、个人号码。如果未搜索到请提示,如果搜索到,显示出该好友信息。

·更新好友信息:
根据好友名字进行更新,可以改写除名字外所有信息。

·删除好友:
要求可以根据三种方式删除:ID、名字、个人号码。如果不存在该用户则提示,删除成功后提示。

使用文件进行输入输出,初始信息存储在“data.txt”中,完成对通讯录的操作后将所有信息存入“datachange.txt”中。

声明部分

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define T 1
#define F 0
#define MAX 20
struct ListNode
{
    int number;
    char name[MAX];
    char phonenumber[MAX];
    char homenumber[MAX];
    char qqnumber[MAX];
};

typedef struct list
{
    struct ListNode p;
    struct list *next;
}*List;

int init(List *member,List pointer[]);
void menu();
int select1(List member,List pointer[]);
int input(List member);
void creatpointer(List member,List pointer[]);
int view(List member,List pointer[]);
int search(List member);
int delete(List member);
int change(List member);
void print1(List pointer[],int len);

void Quick  (List pointer[],int low,int high);
int pivotkey1(List pointer[],int low,int high);
int pivotkey2(List pointer[],int low,int high);
void swap(List pointer[],int low,int high);

void heapadjust(List pointer[],int i,int m);
void heap(List pointer[],int len);

int readfile(List member);
int writerfile(List pointer[]);

循环链表初始化

int init(List *member,List pointer[])
{
    List newnode = (List)malloc(sizeof(struct list));
    if(NULL == newnode)
    {
        return F;
    }
    newnode->p.number = 142000;
    newnode->next = newnode;
    *member = newnode;
    pointer[0] = newnode;
    return T;
}

菜单和选择函数

void menu()
{
    printf("***************************************\n");
    printf("*****这 是 一 个 简 单 的 通 讯 录*****\n");
    printf("********键 入 数 字 选 择 功 能********\n");
    printf("*******    1: 新 建 联 系 人    *******\n");
    printf("*******    2: 查 看 联 系 人    *******\n");
    printf("*******    3: 查 找 联 系 人    *******\n");
    printf("*******    4: 删 除 联 系 人    *******\n");
    printf("*******    5: 修 改 联 系 人    *******\n");
    printf("*******    6: 退 出 通 讯 录    *******\n");
    printf("*************** 请 输 入 **************\n");
    printf("***************************************\n");
}

int select1(List member,List pointer[])
{
    creatpointer(member,pointer);
    int option;
    while(option != 6)
    {
        menu();
        scanf("%d",&option);
        switch(option)
        {
            case 1:{
                    input(member);
                    printf("*******输 入 完 成,返 回 菜 单*******\n");
                    creatpointer(member,pointer);
                    break;
                  }

            case 2:{
                    view(member,pointer);
                    printf("*******查 看 完 成,返 回 菜 单*******\n");
                    break;
                 }

            case 3:{
                    search(member);
                    printf("*******查 找 完 成,返 回 菜 单*******\n");
                    break;
                  }

            case 4:{
                    delete(member);
                    printf("*******删 除 完 成,返 回 菜 单*******\n");
                    creatpointer(member,pointer);
                    break;
                  }
            case 5:{
                    change(member);
                    printf("*******修 改 完 成,返 回 菜 单*******\n");
                    break; 
                  }

            case 6:{
                    printf("*******欢 迎 再 次 使 用,谢 谢 !*******\n");
                    writerfile(pointer);
                    break;
                  }


            default:{
                    printf("*******输 入 有 误,请 重 新 输 入 !*******\n");
                    break; 
                }
         }
     }
    re
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值