我正在从事一项具有以下目标的任务:
- 将用户提供的客户信息存储到结构数组中。
- 编写函数以添加,显示全部或检索客户。
我在编写自己的findCust(检索例程)时遇到问题。我想提示用户输入任何客户的名字和姓氏,然后在一系列客户中找到相关客户并打印出他们的信息。我有点困惑,不确定如何进行。
这是我到目前为止所拥有的:
void findCust(Customer customers[], int loc)
{
string name;
const int t = 100;
cout << "\nEnter the name of the customer you would like to look up: ";
getline(cin, name);
cout << endl;
for (int i = 0; i <= loc; i++) {
}
}
这是“客户”结构的方式:
struct Customer {
string firstname;
string lastname;
Address home;
Address business;
};
这是我的主要功能:
int main() {
title("Customer Contact Menu");
int choice = 0;
int loc = 0;
const int SIZE = 100;
Customer contacts[SIZE];
while (choice < 5) {
choice = displayMenu();
switch (choice) {
case 1:
contacts[loc] = getCustomer();
loc++;
break;
case 2:
for (int x = 0; x < loc; x++) {
showCustomer(contacts[x]);
}
break;
case 3:
findCust(contacts,loc);
break;
case 4:
endProg();
}
}
}
我想知道如何准确地读取存储在客户数组中的信息,并将其与用户输入进行比较。我尝试使用customer.compare命令,也尝试了一些操作,尝试了线性搜索等。但是,这样做的问题是用户输入无法与结构进行比较。那就是我坚持的部分。
答案 0 :(得分:1)
如果我正确理解了您的问题,那么您想阅读并找到客户,然后打印他们的信息。为了做到这一点,我将像这样构造函数:
void findCust(Customer customers[], int array_size)
{
string first_name, last_name;
cout << "\nEnter the name of the customer you would like to look up: ";
cin >> first_name >> last_name;
for (int i = 0; i < array_size; i++) {
}
}
在for循环中,您可以运行线性搜索,然后遍历所有客户并进行比较。即遍历数组,并为每个customers[i].firstname
和customers[i].lastname
检查它们是否与first_name
和last_name
变量匹配。
如果他们这样做,则调用print(customers[i])
,该函数将打印出给定的客户。您可以使函数的定义类似于void print(Customer customer)
,并且可以包含流中的所有打印内容。
希望能帮助您入门。