设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,电话号码 1,电话号码 2,qq 号组成,姓 名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能: (1)系统应显示这样的菜单,请选择系统功能项: a 信息录入功能 b 信息浏览功能 c 信息查询功能((按姓名查询) d 信息修改功能 e 系统退出功能 (2)执行一个具体的功能之后,程序将重新显示菜单。 (3)将通讯录基本信息保存到文件中。
时间: 2023-06-05 18:47:42 浏览: 93
这是一款设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名、电话号码1、电话号码2、QQ号组成,姓名和数字可以由字符和数字混合编码。电话号码可以由字符和数字组成。实现功能: (1)系统应显示这样的菜单,请选择系统功能项: a 信息录入功能 b 信息浏览功能 c 信息查询功能((按姓名查询) d 信息修改功能 e 系统退出功能 (2)执行一个具体的功能之后,程序将重新显示菜单。 (3)将通讯录基本信息保存到文件中。
相关问题
C语言编写程序设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能: (1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能 (6)系统退出功能
好的,以下是一个简单的C语言通讯录程序,具有添加,查询和删除功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 100 // 最大联系人数
#define MAX_NAME_LEN 50 // 姓名最大长度
#define MAX_PHONE_LEN 20 // 电话号码最大长度
#define MAX_EMAIL_LEN 100 // 电子邮箱最大长度
typedef struct {
char name[MAX_NAME_LEN];
char hometown[MAX_NAME_LEN];
char phone1[MAX_PHONE_LEN];
char phone2[MAX_PHONE_LEN];
char email[MAX_EMAIL_LEN];
} Contact;
Contact contacts[MAX_CONTACTS]; // 联系人数组
int numContacts = 0; // 当前联系人数
void printMenu() {
printf("\n\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");
}
void addContact() {
if (numContacts >= MAX_CONTACTS) {
printf("通讯录已满,无法添加新联系人!\n");
return;
}
Contact newContact;
printf("请输入联系人姓名:");
scanf("%s", newContact.name);
printf("请输入联系人籍贯:");
scanf("%s", newContact.hometown);
printf("请输入联系人电话1:");
scanf("%s", newContact.phone1);
printf("请输入联系人电话2:");
scanf("%s", newContact.phone2);
printf("请输入联系人电子邮箱:");
scanf("%s", newContact.email);
contacts[numContacts++] = newContact;
printf("联系人已添加!\n");
}
void printContact(Contact contact) {
printf("%s\t%s\t%s\t%s\t%s\n",
contact.name,
contact.hometown,
contact.phone1,
contact.phone2,
contact.email);
}
void browseContacts() {
if (numContacts == 0) {
printf("通讯录为空,没有联系人!\n");
return;
}
printf("姓名\t籍贯\t电话1\t电话2\t电子邮箱\n");
for (int i = 0; i < numContacts; i++) {
printContact(contacts[i]);
}
}
int findContact(char *name) {
for (int i = 0; i < numContacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
return i;
}
}
return -1;
}
void searchContact() {
char name[MAX_NAME_LEN];
printf("请输入要查询的联系人姓名:");
scanf("%s", name);
int index = findContact(name);
if (index == -1) {
printf("没有找到联系人 %s!\n", name);
} else {
printf("姓名\t籍贯\t电话1\t电话2\t电子邮箱\n");
printContact(contacts[index]);
}
}
void modifyContact() {
char name[MAX_NAME_LEN];
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
int index = findContact(name);
if (index == -1) {
printf("没有找到联系人 %s!\n", name);
} else {
printf("请输入联系人籍贯:");
scanf("%s", contacts[index].hometown);
printf("请输入联系人电话1:");
scanf("%s", contacts[index].phone1);
printf("请输入联系人电话2:");
scanf("%s", contacts[index].phone2);
printf("请输入联系人电子邮箱:");
scanf("%s", contacts[index].email);
printf("联系人 %s 已修改!\n", name);
}
}
void deleteContact() {
char name[MAX_NAME_LEN];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
int index = findContact(name);
if (index == -1) {
printf("没有找到联系人 %s!\n", name);
} else {
for (int i = index; i < numContacts - 1; i++) {
contacts[i] = contacts[i + 1];
}
numContacts--;
printf("联系人 %s 已删除!\n", name);
}
}
int main() {
int choice;
while (1) {
printMenu();
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
addContact();
break;
case 2:
browseContacts();
break;
case 3:
searchContact();
break;
case 4:
modifyContact();
break;
case 5:
deleteContact();
break;
case 6:
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("无效选项,请重新输入!\n");
}
}
return 0;
}
```
该程序使用结构体数组来存储联系人信息,通过菜单方式实现各种操作。当联系人数达到最大值时,添加操作将不再添加新联系人。在查询、修改和删除操作中,程序将要求用户输入联系人姓名,通过姓名在联系人数组中查找对应联系人。如果找不到该联系人,程序将给出相应提示。
用c语言编写 16. 题目:通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能: (1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能 (6)系统退出功能
以下是一个简单的通讯录程序的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CONTACTS 100
// 联系人结构体
typedef struct {
char name[50];
char hometown[50];
char phone1[20];
char phone2[20];
char email[50];
} Contact;
// 通讯录结构体
typedef struct {
Contact contacts[MAX_CONTACTS];
int size;
} AddressBook;
// 显示菜单
void showMenu() {
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");
}
// 添加联系人
void addContact(AddressBook *book) {
if (book->size >= MAX_CONTACTS) {
printf("通讯录已满,无法添加联系人!\n");
return;
}
Contact contact;
printf("请输入联系人姓名:");
scanf("%s", contact.name);
printf("请输入联系人籍贯:");
scanf("%s", contact.hometown);
printf("请输入联系人电话号码1:");
scanf("%s", contact.phone1);
printf("请输入联系人电话号码2:");
scanf("%s", contact.phone2);
printf("请输入联系人电子邮箱:");
scanf("%s", contact.email);
book->contacts[book->size] = contact;
book->size++;
printf("联系人添加成功!\n");
}
// 浏览联系人
void displayContacts(AddressBook book) {
if (book.size == 0) {
printf("通讯录为空!\n");
return;
}
printf("姓名\t\t籍贯\t\t电话1\t\t电话2\t\t电子邮箱\n");
for (int i = 0; i < book.size; i++) {
Contact contact = book.contacts[i];
printf("%s\t\t%s\t\t%s\t\t%s\t\t%s\n", contact.name, contact.hometown, contact.phone1, contact.phone2, contact.email);
}
}
// 查询联系人
void searchContact(AddressBook book) {
if (book.size == 0) {
printf("通讯录为空!\n");
return;
}
char name[50];
printf("请输入要查询的联系人姓名:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < book.size; i++) {
Contact contact = book.contacts[i];
if (strcmp(contact.name, name) == 0) {
printf("姓名\t\t籍贯\t\t电话1\t\t电话2\t\t电子邮箱\n");
printf("%s\t\t%s\t\t%s\t\t%s\t\t%s\n", contact.name, contact.hometown, contact.phone1, contact.phone2, contact.email);
found = 1;
break;
}
}
if (!found) {
printf("未找到联系人!\n");
}
}
// 修改联系人
void modifyContact(AddressBook *book) {
if (book->size == 0) {
printf("通讯录为空!\n");
return;
}
char name[50];
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < book->size; i++) {
Contact *contact = &book->contacts[i];
if (strcmp(contact->name, name) == 0) {
printf("请输入联系人籍贯:");
scanf("%s", contact->hometown);
printf("请输入联系人电话号码1:");
scanf("%s", contact->phone1);
printf("请输入联系人电话号码2:");
scanf("%s", contact->phone2);
printf("请输入联系人电子邮箱:");
scanf("%s", contact->email);
printf("联系人修改成功!\n");
found = 1;
break;
}
}
if (!found) {
printf("未找到联系人!\n");
}
}
// 删除联系人
void deleteContact(AddressBook *book) {
if (book->size == 0) {
printf("通讯录为空!\n");
return;
}
char name[50];
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < book->size; i++) {
Contact *contact = &book->contacts[i];
if (strcmp(contact->name, name) == 0) {
for (int j = i; j < book->size - 1; j++) {
book->contacts[j] = book->contacts[j+1];
}
book->size--;
printf("联系人删除成功!\n");
found = 1;
break;
}
}
if (!found) {
printf("未找到联系人!\n");
}
}
int main() {
AddressBook book;
book.size = 0;
int choice;
do {
showMenu();
printf("请输入操作编号:");
scanf("%d", &choice);
switch (choice) {
case 1:
addContact(&book);
break;
case 2:
displayContacts(book);
break;
case 3:
searchContact(book);
break;
case 4:
modifyContact(&book);
break;
case 5:
deleteContact(&book);
break;
case 6:
printf("谢谢使用!\n");
break;
default:
printf("无效的操作编号!\n");
break;
}
} while (choice != 6);
return 0;
}
```
该程序使用结构体来表示联系人和通讯录,包含添加、浏览、查询、修改和删除联系人等功能。可以通过菜单选择需要的功能,实现通讯录的基本操作。