通讯录程序的实现【C语言】

实现一个通讯录;

通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址

  1. 添加联系人信息
  2. 删除指定联系人信息
  3. 查找指定联系人信息
  4. 修改指定联系人信息
  5. 显示所有联系人信息
  6. 清空所有联系人
  7. 以名字排序所有联系人

一、基础框架

        使用多文件编程的写法,把方法的具体实现和声明和分开编写。

1.界面设计

        先设计一个界面,其他的功能先写入分支循环中

main.cpp:

#define  _CRT_SECURE_NO_WARNINGS 1 
#include <iostream>
#include"contact.h"

enum Option
{
	EIXT,
	ADD,
	DEL,
	SEARCH,
	PRINT,
	MOD,
	SORT,
	CLEAN
};

void menu()
{
	printf("************ 1.添加联系人     ************\n");
	printf("************ 2.删除联系人     ************\n");
	printf("************ 3.查找指定联系人 ************\n");
	printf("************ 4.显示所有联系人 ************\n");
	printf("************ 5.修改联系人     ************\n");
	printf("************ 6.排序联系人     ************\n");
	printf("************ 7.清空联系人     ************\n");
	printf("************ 0.退出           ************\n");
}

int main()
{
	int input = 1;
	Contact person;
	InitContact(&person);

	while(input) {

		menu();
		printf("输入你的选择:>\n");
		scanf("%d", &input);

		switch (input)
		{
		case ADD:
			Add(&person);
			system("pause");
			system("cls");
			break;

		case DEL:
			Del(&person);
			system("pause");
			system("cls");
			break;

		case SEARCH:
			Search(&person);
		    system("pause");
			system("cls");
			break;

		case PRINT:
			PrintContact(&person);
			system("pause");
			system("cls");
			break;

		case MOD:
			Modify(&person);
			system("pause");
			system("cls");
			break;

		case SORT:
			Sort(&person);
			system("pause");
			system("cls");
			break;

		case CLEAN:
			Clean(&person);
			system("pause");
			system("cls");
			break;

		case EIXT:
			printf("退出\n");
			break;

		default:
			printf("输入错误,请重新输入\n");
		}
	}

	return 0;
}

        这种写法会发现跟我以前写的三子棋和扫雷异曲同工,不过这里使用switch做分支的时候,为了更方便的观察和理解代码,这里使用了枚举enum来做分支的标识。

2.设计结构体

        结构体要包含联系人的所有信息

contact.h: 

#define Max 1000
#define Name_Max 20
#define Tele_Max 12
#define Address_Max 20
#define Sex_Max 5

typedef struct PerInfo
{
	char name[Name_Max];
	int id;
	int age;
	char tele[Tele_Max];
	char address[Address_Max];
	char sex[Sex_Max];

}Perinfo,*pPerinfo;

         为了方便定义变量,这里把结构体重命名了。也同时为了修改方便,把所有数组里面的大小进行了宏定义。

        因为要查找和修改联系人,这里要把联系人存起来放到一个数组里。为了方便记录已经存储了多少联系人,定义一个变量sz,来做标识。那么就可以再设计一个结构体来操作这两个数据。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,通讯录管理系统C语言程序设计可以分为以下几个步骤: 1. 定义联系人结构体 在程序中,需要定义一个联系人的结构体,包含姓名、电话、地址等信息。 ``` struct Contact { char name[20]; char phone[20]; char address[50]; }; ``` 2. 添加联系人 定义一个添加联系人的函数,可以通过用户输入信息来创建一个联系人,并将其添加到通讯录中。 ``` void addContact(struct Contact *contacts, int *count) { printf("请输入联系人的姓名:"); scanf("%s", contacts[*count].name); printf("请输入联系人的电话:"); scanf("%s", contacts[*count].phone); printf("请输入联系人的地址:"); scanf("%s", contacts[*count].address); (*count)++; printf("添加联系人成功!\n"); } ``` 3. 查找联系人 定义一个查找联系人的函数,可以通过用户输入的姓名来查找通讯录中的联系人。 ``` void findContact(struct Contact *contacts, int count) { char name[20]; printf("请输入要查找的联系人姓名:"); scanf("%s", name); int found = 0; for (int i = 0; i < count; i++) { if (strcmp(contacts[i].name, name) == 0) { printf("姓名:%s,电话:%s,地址:%s\n", contacts[i].name, contacts[i].phone, contacts[i].address); found = 1; } } if (!found) { printf("未找到该联系人!\n"); } } ``` 4. 修改联系人 定义一个修改联系人的函数,可以通过用户输入的姓名来修改通讯录中的联系人信息。 ``` void modifyContact(struct Contact *contacts, int count) { char name[20]; printf("请输入要修改的联系人姓名:"); scanf("%s", name); int found = 0; for (int i = 0; i < count; i++) { if (strcmp(contacts[i].name, name) == 0) { printf("请输入修改后的电话:"); scanf("%s", contacts[i].phone); printf("请输入修改后的地址:"); scanf("%s", contacts[i].address); found = 1; printf("修改联系人成功!\n"); } } if (!found) { printf("未找到该联系人!\n"); } } ``` 5. 删除联系人 定义一个删除联系人的函数,可以通过用户输入的姓名来删除通讯录中的联系人。 ``` void deleteContact(struct Contact *contacts, int *count) { char name[20]; printf("请输入要删除的联系人姓名:"); scanf("%s", name); int found = 0; for (int i = 0; i < *count; i++) { if (strcmp(contacts[i].name, name) == 0) { for (int j = i; j < *count - 1; j++) { contacts[j] = contacts[j+1]; } (*count)--; found = 1; printf("删除联系人成功!\n"); } } if (!found) { printf("未找到该联系人!\n"); } } ``` 6. 显示所有联系人 定义一个显示所有联系人的函数,可以将通讯录中的所有联系人信息打印出来。 ``` void displayContacts(struct Contact *contacts, int count) { printf("所有联系人信息如下:\n"); for (int i = 0; i < count; i++) { printf("姓名:%s,电话:%s,地址:%s\n", contacts[i].name, contacts[i].phone, contacts[i].address); } } ``` 7. 主函数 在主函数中,可以通过循环菜单的方式来调用上述函数,实现通讯录管理系统的功能。 ``` int main() { struct Contact contacts[100]; int count = 0; int choice; while (1) { printf("-----------------------------\n"); printf("通讯录管理系统\n"); printf("1.添加联系人\n"); printf("2.查找联系人\n"); printf("3.修改联系人\n"); printf("4.删除联系人\n"); printf("5.显示所有联系人\n"); printf("0.退出系统\n"); printf("-----------------------------\n"); printf("请输入您的选择:"); scanf("%d", &choice); switch (choice) { case 1: addContact(contacts, &count); break; case 2: findContact(contacts, count); break; case 3: modifyContact(contacts, count); break; case 4: deleteContact(contacts, &count); break; case 5: displayContacts(contacts, count); break; case 0: printf("感谢使用通讯录管理系统,再见!\n"); return 0; default: printf("输入错误,请重新输入!\n"); break; } } } ``` 以上就是通讯录管理系统C语言程序设计的基本步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值