用c语言写:通讯录管理:设计一个通讯录管理程序,要求包含下列基本功能:1.创建通讯录,支持多条信息的输入;2.增加一组记录;3.删除指定记录;4.根据给定条件查询记录;5.显示通讯录中所有记录信息;【要求】:1)在通讯录中,每个人的通讯信息用一条记录表示,其中至少包括姓名、电话号码、邮箱地址三个数据项。2)为了能够将通讯录的信息独立于程序永久性地保存起来,建议利用C语言提供的文件类型将通讯录信息存储成磁盘文件。3)考虑设计一个菜单,其中列出程序提供的功能,用户可以自由地选择其中的某项操作
时间: 2024-03-09 08:44:13 浏览: 47
C语言,通讯录管理程序设计
4星 · 用户满意度95%
好的,以下是基础框架代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_PERSONS 100 // 最大记录数
#define MAX_NAME 20 // 姓名最大长度
#define MAX_PHONE 12 // 电话号码最大长度
#define MAX_EMAIL 30 // 邮箱地址最大长度
/* 定义通讯录结构体 */
struct Person {
char name[MAX_NAME]; // 姓名
char phone[MAX_PHONE]; // 电话号码
char email[MAX_EMAIL]; // 邮箱地址
};
struct Person persons[MAX_PERSONS]; // 定义全局变量,存储所有记录
int num_persons = 0; // 记录当前记录数
/* 显示菜单 */
void show_menu() {
printf("通讯录管理系统\n");
printf("1. 创建新记录\n");
printf("2. 增加一组记录\n");
printf("3. 删除指定记录\n");
printf("4. 根据给定条件查询记录\n");
printf("5. 显示所有记录\n");
printf("6. 退出程序\n");
printf("请选择操作:");
}
/* 创建新记录 */
void create_person() {
if (num_persons >= MAX_PERSONS) {
printf("记录已满,无法创建新记录!\n");
return;
}
printf("请输入姓名:");
scanf("%s", persons[num_persons].name);
printf("请输入电话号码:");
scanf("%s", persons[num_persons].phone);
printf("请输入邮箱地址:");
scanf("%s", persons[num_persons].email);
num_persons++;
printf("记录创建成功!\n");
}
/* 增加一组记录 */
void add_person() {
if (num_persons >= MAX_PERSONS) {
printf("记录已满,无法增加新记录!\n");
return;
}
printf("请输入姓名:");
scanf("%s", persons[num_persons].name);
printf("请输入电话号码:");
scanf("%s", persons[num_persons].phone);
printf("请输入邮箱地址:");
scanf("%s", persons[num_persons].email);
num_persons++;
printf("记录增加成功!\n");
}
/* 删除指定记录 */
void delete_person() {
char name[MAX_NAME];
printf("请输入要删除的记录的姓名:");
scanf("%s", name);
int i;
for (i = 0; i < num_persons; i++) {
if (strcmp(name, persons[i].name) == 0) {
/* 找到记录,将后面的记录向前移动一位 */
int j;
for (j = i; j < num_persons - 1; j++) {
persons[j] = persons[j + 1];
}
num_persons--;
printf("记录删除成功!\n");
return;
}
}
printf("未找到该记录!\n");
}
/* 根据给定条件查询记录 */
void search_person() {
char name[MAX_NAME];
printf("请输入要查询的记录的姓名:");
scanf("%s", name);
int i;
for (i = 0; i < num_persons; i++) {
if (strcmp(name, persons[i].name) == 0) {
printf("姓名:%s,电话号码:%s,邮箱地址:%s\n", persons[i].name, persons[i].phone, persons[i].email);
return;
}
}
printf("未找到该记录!\n");
}
/* 显示所有记录 */
void show_persons() {
if (num_persons == 0) {
printf("记录为空!\n");
return;
}
printf("姓名\t电话号码\t邮箱地址\n");
int i;
for (i = 0; i < num_persons; i++) {
printf("%s\t%s\t%s\n", persons[i].name, persons[i].phone, persons[i].email);
}
}
int main() {
int choice;
while (1) {
show_menu();
scanf("%d", &choice);
switch (choice) {
case 1:
create_person();
break;
case 2:
add_person();
break;
case 3:
delete_person();
break;
case 4:
search_person();
break;
case 5:
show_persons();
break;
case 6:
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("无效选择,请重新输入!\n");
break;
}
}
return 0;
}
```
这个程序可以满足你的要求,你可以根据需要进行修改和优化。需要注意的是,这个程序只是一个基础框架,没有对文件存储进行处理。如果需要将通讯录信息存储成磁盘文件,你需要在程序中添加文件读写相关的代码。
阅读全文