C中模拟实现一个简单的通讯录,最全功能代码

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/ZhangaZhaoLong/article/details/84038441
  1. #ifndef info_h
    #define info_h

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define NUM 1000
    #define SIZE 1024
    
    void init();
    int menu();
    void add_user();
    void print_user();
    void del_user();
    void modify_user();
    void find_user();
    void clear_user();
    
    #endif//__info_h__
    
  2. #define _CRT_SECURE_NO_WARNINGS 1

    #include "info.h"
    
    enum
    {
    	ADD = 1,
    	DEL,
    	MODIFY,
    	FIND,
    	PRINT,
    	CLEAR,
    	EXIT,
    };
    
    int main()
    {
    	int choice = 0;
    
    	init();
    	do
    	{
    		choice = menu();
    		switch (choice)
    		{
    		case ADD:
    		{
    			add_user();
    			break;
    		}
    		case DEL:
    		{
    			del_user();
    			break;
    		}
    		case MODIFY:
    		{
    			modify_user();
    			break;
    		}
    		case FIND:
    		{
    			find_user();
    			break;
    		}
    		case PRINT:
    		{
    			print_user();
    			break;
    		}
    		case CLEAR:
    		{
    			clear_user();
    			break;
    		}
    		case EXIT:
    		{
    			printf("Good baby!\n");
    			break;
    		}
    		default:
    		{
    			printf("输入有误,请重新输入!\n");
    			break;
    		}
    		}
    	} while (choice != EXIT);
    
    	system("pause");
    	return 0;
    }
    
  3. #define _CRT_SECURE_NO_WARNINGS 1

    #include "info.h"
    
    typedef struct userinfo
    {
    	char name[SIZE];
    	char telphone[SIZE];
    }userinfo;
    
    typedef struct usercount
    {
    	userinfo usernum[NUM];
    	int size;
    }usercount;
    usercount user_count;
    
    void init()
    {
    	user_count.size = 0;
    	memset(user_count.usernum, 0x0, sizeof(user_count.usernum));
    }
    
    int menu()
    {
    	int choice = 0;
    
    	printf("***************************************\n");
    	printf("*************   *1.ADD*   *************\n");
    	printf("*************   *2.DEF*   *************\n");
    	printf("*************   *3.MODIFY*   **********\n");
    	printf("*************   *4.FIND*   ************\n");
    	printf("*************   *5.PRINT*   ***********\n");
    	printf("*************   *6.CLEAR*   ***********\n");
    	printf("*************   *7.EXIT*   ************\n");
    	printf("***************************************\n");
    	while (1)
    	{
    		scanf("%d", &choice);
    		if (choice > 0 && choice <= 7)
    		{
    			return choice;
    		}
    		else
    		{
    			printf("输入错误,请重新输入!\n");
    		}
    	}
    }
    
    void add_user()
    {
    	if (user_count.size >= SIZE)
    	{
    		printf("用户已满!\n");
    	}
    	else
    	{
    		printf("请添加一个新用户!\n");
    		printf("请输入要添加人的姓名:\n");
    		scanf("%s", user_count.usernum[user_count.size].name);
    		printf("请输入要添加人的电话号码:\n");
    		scanf("%s", user_count.usernum[user_count.size].telphone);
    		printf("添加成功!\n");
    		++user_count.size;
    	}
    }
    
    void print_user()
    {
    	int i = 0;
    
    	printf("打印所有用户信息!\n");
    	for (i = 0; i < user_count.size; i++)
    	{
    		printf("[%d] %s %s\n", i, user_count.usernum[i].name, user_count.usernum[i].telphone);
    	}
    	printf("共打印了%d条用户信息\n", i);
    }
    
    void del_user()//顺序
    {
    	char user[SIZE] = { 0 };
    	int i = 0;
    
    	printf("删除用户!\n");
    	printf("请输入要删除的用户姓名:\n");
    	scanf("%s", user);
    	for (i = 0; i < user_count.size; i++)
    	{
    		if (strcmp(user, user_count.usernum[i].name) == 0)
    		{
    			user_count.usernum[i] = user_count.usernum[user_count.size - 1];
    		}
    	}
    	printf("删除用户成功!\n");
    	user_count.size--;
    }
    
    void modify_user()
    {
    	char user[SIZE] = { 0 };
    	int i = 0;
    
    	printf("修改一个用户\n");
    	printf("请输入要修改用户的姓名:\n");
    	scanf("%s", user);
    	for (i = 0; i < user_count.size; i++)
    	{
    		if (strcmp(user, user_count.usernum[i].name) == 0)
    		{
    			printf("[%d] %s %s\n", i, user_count.usernum[i].name, user_count.usernum[i].telphone);
    			printf("请输入修改过的名字:\n");
    			scanf("%s", user_count.usernum[i].name);
    			printf("请输入修改过的手机号:\n");
    			scanf("%s", user_count.usernum[i].telphone);
    			printf("[%d] %s %s\n", i, user_count.usernum[i].name, user_count.usernum[i].telphone);
    		}
    	}
    	printf("修改成功!\n");
    }
    
    void find_user()
    {
    	char user[SIZE] = { 0 };
    	int i = 0;
    
    	printf("查找一个用户!\n");
    	printf("请输入要查找的用户的姓名:\n");
    	scanf("%s", user);
    	for (i = 0; i < user_count.size; i++)
    	{
    		if (strcmp(user, user_count.usernum[i].name) == 0)
    		{
    			printf("[%d] %s %s\n", i, user_count.usernum[i].name, user_count.usernum[i].telphone);
    		}
    	}
    	printf("查找成功,共找到了%d条结果!\n", i);
    }
    
    void clear_user()
    {
    	char a[SIZE] = { 0 };
    
    	printf("您确认要全部清除吗?(y/n)\n");
    	scanf("%s", a);
    	if (strcmp("y", a) == 0)
    	{
    		init();
    	}
    }
    

猜你喜欢

转载自blog.csdn.net/ZhangaZhaoLong/article/details/84038441