用c++编写一个程序,设计一个联系人类(包含姓名、性别、电话号码、公司名称、备注等信息),创建一个联系人列表,要求用list容器完成, 并能动态添加联系人、通过姓名查找到联系人信息并显示电话号码
时间: 2023-09-04 10:04:11 浏览: 128
数据结构课程设计:C++利用散列表实现的电话号码查找系统,优秀系统和报告!
### 回答1:
好的,我知道了。以下是C++代码实现。
```
#include <iostream>
#include <list>
#include <string>
using namespace std;
class Contact {
public:
Contact(string name, string gender, string phoneNumber, string company, string note) {
this->name = name;
this->gender = gender;
this->phoneNumber = phoneNumber;
this->company = company;
this->note = note;
}
string getName() const { return name; }
string getPhoneNumber() const { return phoneNumber; }
private:
string name;
string gender;
string phoneNumber;
string company;
string note;
};
int main() {
list<Contact> contactList;
// 添加联系人
contactList.push_back(Contact("张三", "男", "1234567890", "ABC公司", "备注1"));
contactList.push_back(Contact("李四", "女", "0987654321", "XYZ公司", "备注2"));
// 通过姓名查找联系人
string searchName = "张三";
for (auto it = contactList.begin(); it != contactList.end(); ++it) {
if (it->getName() == searchName) {
cout << "姓名:" << it->getName() << endl;
cout << "性别:" << it->getGender() << endl;
cout << "电话号码:" << it->getPhoneNumber() << endl;
cout << "公司名称:" << it->getCompany() << endl;
cout << "备注:" << it->getNote() << endl;
break;
}
}
return 0;
}
```
需要注意的是,这里根据要求使用了`list`容器来保存联系人列表。`Contact`类包含了姓名、性别、电话号码、公司名称、备注等信息。在`main`函数中,我们动态添加了两个联系人,并通过姓名查找并输出电话号码。
如果需要添加更多的联系人,可以使用`contactList.push_back()`方法。如果需要根据其他属性来查找联系人,可以添加相应的get方法并在查找时调用。
### 回答2:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Contact {
char name[50];
char gender[10];
char phone[20];
char company[50];
char remark[100];
} Contact;
int main() {
int choice;
int count = 0;
Contact* contacts = NULL;
while (1) {
printf("请选择操作:\n");
printf("1. 添加联系人\n");
printf("2. 查找联系人\n");
printf("3. 退出程序\n");
scanf("%d", &choice);
if (choice == 1) {
Contact contact;
printf("请输入联系人姓名:");
scanf("%s", contact.name);
printf("请输入联系人性别:");
scanf("%s", contact.gender);
printf("请输入联系人电话号码:");
scanf("%s", contact.phone);
printf("请输入联系人公司名称:");
scanf("%s", contact.company);
printf("请输入联系人备注:");
scanf("%s", contact.remark);
count++;
contacts = (Contact*)realloc(contacts, count * sizeof(Contact));
contacts[count - 1] = contact;
printf("联系人添加成功!\n\n");
} else if (choice == 2) {
char searchName[50];
int found = 0;
printf("请输入需要查找的联系人姓名:");
scanf("%s", searchName);
for (int i = 0; i < count; i++) {
if (strcmp(contacts[i].name, searchName) == 0) {
printf("联系人姓名:%s\n", contacts[i].name);
printf("联系人电话号码:%s\n\n", contacts[i].phone);
found = 1;
break;
}
}
if (!found) {
printf("未找到该联系人!\n\n");
}
} else if (choice == 3) {
break;
} else {
printf("无效的选择!\n\n");
}
}
free(contacts);
return 0;
}
### 回答3:
下面是一个使用C语言编写的程序来设计一个联系人类,并使用list容器来创建一个联系人列表。程序可以动态添加联系人,并通过姓名查找联系人信息并显示电话号码。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char name[50];
char gender[10];
char phoneNumber[20];
char companyName[50];
char remark[100];
} Contact;
int main() {
int choice;
int numOfContacts = 0;
char searchName[50];
// 创建联系人列表
Contact *contactList = (Contact *)malloc(10 * sizeof(Contact));
while (1) {
printf("\n联系人管理系统\n");
printf("1. 添加联系人\n");
printf("2. 查询联系人\n");
printf("3. 退出\n");
printf("\n请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("\n请输入联系人姓名:");
scanf("%s", contactList[numOfContacts].name);
printf("请输入联系人性别:");
scanf("%s", contactList[numOfContacts].gender);
printf("请输入联系人电话号码:");
scanf("%s", contactList[numOfContacts].phoneNumber);
printf("请输入联系人公司名称:");
scanf("%s", contactList[numOfContacts].companyName);
printf("请输入联系人备注:");
scanf("%s", contactList[numOfContacts].remark);
numOfContacts++;
printf("联系人添加成功!\n");
break;
case 2:
printf("\n请输入要查询的联系人姓名:");
scanf("%s", searchName);
int found = 0;
for (int i = 0; i < numOfContacts; i++) {
if (strcmp(searchName, contactList[i].name) == 0) {
printf("\n联系人姓名:%s\n", contactList[i].name);
printf("联系人电话号码:%s\n", contactList[i].phoneNumber);
found = 1;
break;
}
}
if (!found) {
printf("未找到联系人!\n");
}
break;
case 3:
free(contactList);
printf("程序已退出。\n");
return 0;
default:
printf("无效的选项!\n");
break;
}
}
}
```
以上程序使用一个switch语句提供了三个选项:添加联系人、查询联系人和退出。每个选项都有相应的操作,如添加联系人会要求用户输入相关信息,查询联系人会通过姓名查找联系人信息并显示电话号码。
程序使用动态分配内存来创建联系人列表,初始大小为10。当联系人列表满时,程序会自动重新分配更多的内存来存储更多的联系人。
此程序只是一个基础的示例,您可以根据需要进行功能的扩展和修改。希望对您有帮助!
阅读全文