通讯录管理系统带报告c语言
时间: 2023-07-13 16:22:23 浏览: 74
通讯录管理系统c语言
通讯录管理系统可以采用C语言编写,实现基本的增删改查功能,并生成报告。
以下是一个简单的通讯录管理系统的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char name[20];
char phone[20];
char email[30];
} Contact;
int menu();
void add_contact(Contact *contacts, int *count);
void del_contact(Contact *contacts, int *count);
void update_contact(Contact *contacts, int *count);
void search_contact(Contact *contacts, int count);
void print_report(Contact *contacts, int count);
int main() {
Contact contacts[100]; // 最多存储100个联系人
int count = 0; // 当前联系人数量
while (1) {
int choice = menu();
switch (choice) {
case 1:
add_contact(contacts, &count);
break;
case 2:
del_contact(contacts, &count);
break;
case 3:
update_contact(contacts, &count);
break;
case 4:
search_contact(contacts, count);
break;
case 5:
print_report(contacts, count);
break;
case 6:
printf("退出程序\n");
exit(0);
default:
printf("无效的选项\n");
break;
}
}
return 0;
}
int menu() {
printf("请选择操作:\n");
printf("1. 添加联系人\n");
printf("2. 删除联系人\n");
printf("3. 修改联系人\n");
printf("4. 查找联系人\n");
printf("5. 生成报告\n");
printf("6. 退出\n");
int choice;
scanf("%d", &choice);
return choice;
}
void add_contact(Contact *contacts, int *count) {
if (*count >= 100) {
printf("已达到最大联系人数量\n");
return;
}
printf("请输入姓名:");
scanf("%s", contacts[*count].name);
printf("请输入电话:");
scanf("%s", contacts[*count].phone);
printf("请输入Email:");
scanf("%s", contacts[*count].email);
(*count)++;
}
void del_contact(Contact *contacts, int *count) {
char name[20];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
int i;
for (i = 0; i < *count; i++) {
if (strcmp(name, contacts[i].name) == 0) {
int j;
for (j = i; j < *count - 1; j++) {
contacts[j] = contacts[j+1];
}
(*count)--;
printf("删除成功\n");
return;
}
}
printf("未找到该联系人\n");
}
void update_contact(Contact *contacts, int *count) {
char name[20];
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
int i;
for (i = 0; i < *count; i++) {
if (strcmp(name, contacts[i].name) == 0) {
printf("请输入新的电话:");
scanf("%s", contacts[i].phone);
printf("请输入新的Email:");
scanf("%s", contacts[i].email);
printf("修改成功\n");
return;
}
}
printf("未找到该联系人\n");
}
void search_contact(Contact *contacts, int count) {
char name[20];
printf("请输入要查找的联系人姓名:");
scanf("%s", name);
int i;
for (i = 0; i < count; i++) {
if (strcmp(name, contacts[i].name) == 0) {
printf("姓名:%s,电话:%s,Email:%s\n", contacts[i].name, contacts[i].phone, contacts[i].email);
return;
}
}
printf("未找到该联系人\n");
}
void print_report(Contact *contacts, int count) {
FILE *fp = fopen("report.txt", "w");
if (fp == NULL) {
printf("无法打开文件\n");
return;
}
int i;
for (i = 0; i < count; i++) {
fprintf(fp, "姓名:%s,电话:%s,Email:%s\n", contacts[i].name, contacts[i].phone, contacts[i].email);
}
fclose(fp);
printf("报告已生成\n");
}
```
该程序实现了添加联系人、删除联系人、修改联系人、查找联系人和生成报告等功能。在生成报告时,程序会将联系人信息输出到一个名为report.txt的文件中。
阅读全文