努力学习fengge 发表于 2019-4-28 07:29:47

给位大佬能帮我看看这段代码的错误以及如何修改

/*The user will be able to add names upto a maximum of 10 names by selecting the A option.The user will be able to print a list of the stored names, sorted in ascending order, by selecting the P option.The user will be able to search for a name in the array by selecting the F option.The program quits when the user selects the Q option.

Include in your program the following functions, using the provided prototypes.

void printNames(string[], int);
Accepts an array of strings and the index of the last used element as its only arguments.Prints out the contents of the used elements of the array.

void sortNames(string[], int);
Accepts an array of strings and the index of the last used element as its only arguments.Sorts the used elements of the array in ascending order.Does not interact with the user in any way(no cin or cout statements).

bool findName(string[], string, int);
Accepts an array of strings, the index of the last used element, and a target string as its only arguments.Search the array of strings for the target string.Returns true if found, false otherwise.Does not interact with the user in any way(no cin or cout statements).
上面的是题目以及要求*/

//我是新手最好能用简单的办法修改



#include <iostream>
#include <string>

using namespace std;

void printNames(string[], int);
void sortNames(string[], int);
bool findNames(string[], string, int);

int main()
{
        const int SIZE = 10;
       
        string name;
       
        char letter;
       
        int x = 0;
       
        bool found_nofound;
       
        string idk;
       
        int counter = 1;
       
        do
        {
                cout << "(A)dd a name\n";
               
                cout <<"(F)ind a name\n";
               
                cout <<"(P)rint names\n";
               
                cout <<"(Q)uit\n";
               
                cout << ": ";
               
                cin >> letter;
               
                if (letter == 'a' || letter == 'f' || letter == 'p'|| letter == 'q' )
                {
                        if (counter <= 10)
                        {
                       
                                switch(letter)
                                {
                                        case 'a':
                                                        ++counter;
                                                       
                                                        cout << "enter a name: ";
                                       
                                                        while(x < SIZE)
                                                        {
                                                                cin >> name;
                                                                x++;
                                                                break;
                                                        }
                                                       
                                                break;
                                       
                                        case 'f':
                                                found_nofound = findNames(name, idk, SIZE);
                                                if (found_nofound == 1)
                                                cout << "name found!" << endl;
                                               
                                                else
                                                        cout << "name not found!" << endl;
                                                break;
                                       
                                        case 'p':
                                                printNames(name, SIZE);
                                                break;
                                }
                        }
                        else if(counter >= 10)
                                cout << "array full\n";
                }
                       
                else
                cout << "invalid selecation. try again" << endl;

               
               
        }while(letter != 'q' && letter != 'Q');
               
                cout << "goodbye!" << endl;
}

void printNames(string name1[], int len)
{
        cout << "name:" << endl;
       
        for (int x = 0; x < len; x++)
        {
                sortNames(name1, len);
               
                cout << name1 << " ";
        }
        cout << endl;
}
void sortNames(string name2[], int len)
{
        bool swap;
       
        string temp;
        do
        {
                swap = false;
               
                for (int x = 0; x < (len-1); x++)
                {
                        if (name2 > name2)
                        {
                                temp = name2;
                                name2 = name2;
                                name2 = temp;
                                swap = true;
                        }
                }
        }while(swap);
       
}
bool findNames(string name3[], string compare, int len)
{
        cout << "enter a name to search for: ";
       
        cin >> compare;
       
        for (int x = 0; x < len; x++)
        {
                if (compare == name3)
                        return 1;
               
                else
                        return 0;
        }
}

17625672480 发表于 2019-4-30 08:54:44

你确定??这么汉语在里面??
页: [1]
查看完整版本: 给位大佬能帮我看看这段代码的错误以及如何修改