手机通讯录c实践报告
时间: 2023-11-22 09:54:33 浏览: 28
手机通讯录是一种常见的应用程序,用于管理手机上的联系人和联系方式。本文将介绍一个使用C语言实现的简单手机通讯录。
1. 功能需求
本次实践的手机通讯录需要支持以下功能:
- 添加联系人:输入姓名和电话号码,将联系人信息添加到通讯录中。
- 删除联系人:输入联系人姓名,将该联系人从通讯录中删除。
- 修改联系人:输入联系人姓名,修改该联系人的电话号码。
- 查询联系人:输入联系人姓名,查询该联系人的电话号码。
- 显示所有联系人:将通讯录中所有联系人的姓名和电话号码显示出来。
2. 设计思路
为了实现上述功能,我们需要设计一个数据结构来存储联系人信息。在本次实践中,我们选择使用结构体来表示一个联系人,结构体的定义如下:
```c
struct Contact {
char name[20]; // 联系人姓名
char phone_number[20]; // 联系人电话号码
};
```
通讯录则可以用一个数组来存储多个联系人,数组的大小需要预先定义,这里我们选择定义为100,即最多可以存储100个联系人。
```c
#define MAX_CONTACTS 100
struct Contact contacts[MAX_CONTACTS]; // 存储所有联系人的数组
int num_contacts = 0; // 当前通讯录中联系人的数量
```
接下来,我们可以通过一个菜单来实现用户与程序的交互。用户可以在菜单中选择需要执行的操作,程序则根据用户的选择来执行相应的功能。具体的实现方法如下:
```c
void print_menu() {
printf("Phonebook\n");
printf("1. Add contact\n");
printf("2. Delete contact\n");
printf("3. Modify contact\n");
printf("4. Query contact\n");
printf("5. Show all contacts\n");
printf("6. Quit\n");
printf("Please choose an operation: ");
}
void add_contact() {
if (num_contacts >= MAX_CONTACTS) {
printf("Phonebook is full.\n");
return;
}
struct Contact contact;
printf("Please enter the name: ");
scanf("%s", contact.name);
printf("Please enter the phone number: ");
scanf("%s", contact.phone_number);
contacts[num_contacts++] = contact;
printf("Contact added successfully.\n");
}
void delete_contact() {
char name[20];
printf("Please enter the name: ");
scanf("%s", name);
int index = -1;
for (int i = 0; i < num_contacts; i++) {
if (strcmp(name, contacts[i].name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("Contact not found.\n");
return;
}
for (int i = index; i < num_contacts - 1; i++) {
contacts[i] = contacts[i + 1];
}
num_contacts--;
printf("Contact deleted successfully.\n");
}
void modify_contact() {
char name[20];
printf("Please enter the name: ");
scanf("%s", name);
int index = -1;
for (int i = 0; i < num_contacts; i++) {
if (strcmp(name, contacts[i].name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("Contact not found.\n");
return;
}
printf("Please enter the new phone number: ");
scanf("%s", contacts[index].phone_number);
printf("Contact modified successfully.\n");
}
void query_contact() {
char name[20];
printf("Please enter the name: ");
scanf("%s", name);
int index = -1;
for (int i = 0; i < num_contacts; i++) {
if (strcmp(name, contacts[i].name) == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("Contact not found.\n");
return;
}
printf("Name: %s\nPhone number: %s\n", contacts[index].name, contacts[index].phone_number);
}
void show_all_contacts() {
printf("Name\tPhone number\n");
for (int i = 0; i < num_contacts; i++) {
printf("%s\t%s\n", contacts[i].name, contacts[i].phone_number);
}
}
int main() {
int choice;
while (1) {
print_menu();
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact();
break;
case 2:
delete_contact();
break;
case 3:
modify_contact();
break;
case 4:
query_contact();
break;
case 5:
show_all_contacts();
break;
case 6:
printf("Goodbye!\n");
return 0;
default:
printf("Invalid choice.\n");
}
}
return 0;
}
```
3. 测试结果
在编写完代码后,我们可以进行一些简单的测试来验证程序是否能够正常工作。下面是一些测试结果:
- 添加联系人:
```
Phonebook
1. Add contact
2. Delete contact
3. Modify contact
4. Query contact
5. Show all contacts
6. Quit
Please choose an operation: 1
Please enter the name: Alice
Please enter the phone number: 1234567890
Contact added successfully.
```
- 删除联系人:
```
Phonebook
1. Add contact
2. Delete contact
3. Modify contact
4. Query contact
5. Show all contacts
6. Quit
Please choose an operation: 2
Please enter the name: Alice
Contact deleted successfully.
```
- 修改联系人:
```
Phonebook
1. Add contact
2. Delete contact
3. Modify contact
4. Query contact
5. Show all contacts
6. Quit
Please choose an operation: 3
Please enter the name: Alice
Please enter the new phone number: 0987654321
Contact modified successfully.
```
- 查询联系人:
```
Phonebook
1. Add contact
2. Delete contact
3. Modify contact
4. Query contact
5. Show all contacts
6. Quit
Please choose an operation: 4
Please enter the name: Alice
Name: Alice
Phone number: 0987654321
```
- 显示所有联系人:
```
Phonebook
1. Add contact
2. Delete contact
3. Modify contact
4. Query contact
5. Show all contacts
6. Quit
Please choose an operation: 5
Name Phone number
Alice 0987654321
```
4. 总结
通过本次实践,我们学习了如何使用C语言来实现一个简单的手机通讯录。我们设计了一个数据结构来存储联系人信息,使用一个菜单来实现用户与程序的交互,最终实现了添加、删除、修改、查询联系人和显示所有联系人等功能。这些技术和方法在实际开发中也是非常有用的,希望读者能够掌握并应用到实际项目中。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)