2015-05-31 67 views
0

所以,我是新来的c + +编程,作为一个任务,我的老师让我们创建一个应用程序。我开始编码它,这就是我想出的。我试图编译代码块的代码,它给了我不少的错误:通过switch语句的情况下,3预期主表达式前的情况下,1 INT主要()“petProfile” :你如何解决C++预期的主要表达式错误?

错误。

错误:不对应的 '运营商=' 在 '(*(petProfile +((的SizeType)((无符号整型)petIndex)* 4U)))) - >宠物:: vaccNames = nextVaccN' 它来自以下这行代码:petProfile [petIndex] - > vaccNames = nextVaccN;

同类错误为:petProfile [petIndex] - > vaccDates = nextVaccD;

而且,petProfile [petIndex] - > timeBetween = nextTimeDiff;

任何帮助我可以得到真的很感激,谢谢。

//Constant 

const int maxNumOfPet = 8; 

//Functions 

void newProfile(Pet petProfile); 

void updateExist(Pet petProfile); 

void viewPetFile(Pet petProfile); 

void howToUse(); 

int main() 
{ 
    int usersOption; 
    int* optionPointer = &usersOption; 
    Pet petProfile[maxNumOfPet]; 

    //the do while loop will start here, it will display the start menu, and direct to the different functions 
    //until the user selects to exit. 
    do 
    { 
     //Displays the different options to the user. 
     cout << "\n1) Create New Pet Profile" << endl; 
     cout << "2) Update A Existing Profile" << endl; 
     cout << "3) View A Pet Profile" << endl; 
     cout << "4) How To Use" << endl; 
     cout << "5) Quit" << endl; 

     cout << "Please pick the option you wish to do." << endl; 
     cin >> *optionPointer; 

     switch (usersOption) 
     { 
     case 1: 
      newProfile(Pet petProfile); 
      break; 
     case 2: 
      updateExist(Pet petProfile); 
      break; 
     case 3: 
      viewPetFile(Pet petProfile); 
      break; 
     case 4: 
      howToUse(); 
      break; 
     case 5: 
      cout << "Bye, Bye!"; 
      return 0; 
     } //End of Switch Statement 
    } while (usersOption >= 1 || usersOption < 5); 

    return 0; 
} 

void newProfile(Pet *petProfile[], const int maxNumOfPet) 
{ 
    int changeOp; 
    int nextVaccD; 
    char correct; 
    double nextTimeDiff; 
    string nextVaccN; 
    int petIndex = 0; 

    while (petIndex <= maxNumOfPet) 
    { 
     //check if Pet is empty 
     while (petProfile[petIndex]->petNames.empty()) 
     { 
      //Will receive the users input for the following topics, and add it to their vectors. 

      cout << "Please enter your pet's name, Or enter 0 to quit. " << endl; 
      if (cin.peek() == '\n') 
       cin.ignore(); 

      string nextPetN; 
      getline(cin, nextPetN); 

      if (nextPetN == "0") 
       return; 

      //Will add an element to the vector petNames and save the users input to it. 
      petProfile[petIndex]->petNames = nextPetN; 

      cout << "Please enter the type of animal you have:" << endl; 
      if (cin.peek() == '\n') 
       cin.ignore(); 

      string nextAnimalT; 
      getline(cin, nextAnimalT); 

      //Will add an element to the vector animalType and save the users input to it. 
      petProfile[petIndex]->animalType = nextAnimalT; 

      cout << "Please enter the name of a vaccine the pet has got: " << endl; 
      cin >> nextVaccN; 

      //Will add an element to the vector vaccNames and save the users input to it. 
      petProfile[petIndex]->vaccNames = nextVaccN; 

      cout << "Please enter the date " << nextVaccN << " was given, in this format MMDDYYYY." << endl; 
      cin >> nextVaccD; 

      //Will add an element to the vector vaccDates and save the users input to it. 
      petProfile[petIndex]->vaccDates = nextVaccD; 

      cout << "Please enter the time difference between each administration of this vaccine: " << endl; 
      cin >> nextTimeDiff; 

      //Will add an element to the vector timeBetween and save the users input to it. 
      petProfile[petIndex]->timeBetween = nextTimeDiff; 

      //Recap the information entered, and change if it is necessary. 
      cout << "\nSo far you entered: " << endl; 
      cout << nextPetN << endl; 
      cout << nextAnimalT << endl; 
      cout << nextVaccN << endl; 
      cout << nextVaccD << endl; 
      cout << nextTimeDiff << endl; 

      cout << "Is this information correct?" << endl; 
      cout << "Answer T if this is true or F if this is false" << endl; 
      cin >> correct; 

      if (correct == 'F' || correct == 'f') 
      { 
       cout << "What do you wish to change: " << endl; 
       cout << "1) " << nextPetN << endl; 
       cout << "2) " << nextAnimalT << endl; 
       cout << "3) " << nextVaccN << endl; 
       cout << "4) " << nextVaccD << endl; 
       cout << "5) " << nextTimeDiff << endl; 
       cin >> changeOp; 

       switch (changeOp) 
       { 
       case 1: 
        cout << "Please enter your pets' name: " << endl; 
        getline(cin, nextPetN); 
        break; 

       case 2: 
        cout << "Please enter the type of animal you have:" << endl; 
        getline(cin, nextAnimalT); 
        break; 

       case 3: 
        cout << "Please enter the name of the vaccines the pet has got: " << endl; 
        getline(cin, nextVaccN); 
        break; 

       case 4: 
        cout << "Please enter the date " << nextVaccN << " was given, in this format MMDDYYYY." << endl; 
        cin >> nextVaccD; 
        break; 

       case 5: 
        cout << "Please enter the time difference between each administration of this vaccine: " << endl; 
        cin >> nextTimeDiff; 
        break; 
       } //end switch 
      } //end if statement 
     }//end second while loop 
    } //end first while loop 

    petIndex++; 
} //end newProfile function 
+0

学习使用getter和setter。学习使用参考。学习'const'上的用法 –

回答

2

你的函数声明

void newProfile(Pet petProfile); 

不符合定义

void newProfile(Pet *petProfile[], const int maxNumOfPet) 

而且,线(S)

case 1: 
     newProfile(Pet petProfile); 

应该

case 1: 
     newProfile(petProfile); // no Pet here, same for the other case-s 

检查您的其他函数声明是否符合其定义。

+0

谢谢Vsoftco帮助解决了这些问题。 – TMNTforever77

相关问题