Solved

C++ program

Posted on 2000-03-21
5
224 Views
Last Modified: 2010-04-02
I have some code that is meant to prompt the user to enter 10 scores and choose one of three structures(if, while, or do-while) to then evaluate and display the name, score(%), and letter grade.  This is to be done using call by value.  I have spent hours on this and keep getting an external linker error.  What am I doing wrong?  Do I need all of these libraries?

#include <iostream.h>
#include <conio.h>
#include<ctype.h>
#include<iomanip.h>
#include<stdlib.h>
#include<math.h>

int Prompt_User_For_Selection(char);
int Service_Selection_Using_IfElse(char);
int Determine_LtrGrd_Using_Switch(float);


int main()
{
 char x;
 clrscr();                 //clear screen
 Prompt_User_For_Selection(x);
}
int Prompt_User_For_Selection(char start)
{
  char ans,y;
  do{
  clrscr();
  cout<<"STRUCTURE               SELECTION\n";
  cout<<"\n";
  cout<<"While                       W\n";
  cout<<"DO While                    D\n";
  cout<<"For                         F\n";
  cout<<"\n";
  cout<<"Enter Selection <Q to Quit>:\n";
  cout<<"\n\n\t";
  getch();
  cin>>ans;
  ans=toupper(ans);
  }while(ans!='W'&& ans!='D'&& ans!='F'&& ans!='Q');
   if (ans!='Q')
     return 0;
   else
    clrscr();
    cout<<"\n\n\tYou Selected to Quit BYE";
    cout<<"\n\n\tHit any key to exit:";
  getch();
  ans=start;
  y=Service_Selection_Using_IfElse(ans);
  return(y);
}
int Service_Selection_Using_IfElse(char ans2)
{
     char choice;
     int  final;
     int Execute_While_Loop();
     int Execute_Do_While_Loop();
     int Execute_For_Loop();


     char firstname[20];
     cout<<"Enter Your First Name:\n";
     cin>>firstname;
     char lastname[20];
     cout<<"Enter Your Last Name:\n";
     cin>>lastname;

     clrscr();

     if(choice=='W'){
      cout<<"\n\n\tYou Selected the While Structure\n";
      choice=ans2;
      Execute_While_Loop();

     }
     else
       if(choice=='D'){
        cout<<"\n\n\tYou Selected the Do While Structure\n";
        choice=ans2;
        Execute_Do_While_Loop();
       }
       else
        if(choice=='F'){
         cout<<"\n\n\tYou Selected the For Structure\n";
         choice=ans2;
         Execute_For_Loop();
        }

     cout<<"\n\n\n\n\tStudent Name:\t"<<firstname<<' '<<lastname<<endl<<endl;
     cout<<"\tGrade Average:\t"<<final<<"%"<<endl;
     final=Determine_LtrGrd_Using_Switch(choice);
     return(final);
     cout<<"\n\n\tHit any key to continue:";
     getch();
}
int Execute_While_Loop(float avg)
{
       int zz,result;
       int total,
           scoreCounter,
           score;
       total=0;
       scoreCounter=1;

       cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
       cin>>score;
       total=total+score;

       while(scoreCounter<10){
        while(score>100||score<0){
         cout <<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
         cin>>score;
         }
        total=total+score;
        ++scoreCounter;
        cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
        cin>>score;
       }

       clrscr();
       zz=static_cast<float>(total)/scoreCounter;
       zz=avg;
       result=Determine_LtrGrd_Using_Switch(zz);
       return (result);
}
int Execute_Do_While_Loop(float avg2)
{
   int qq,result2;
   int total,
       scoreCounter,
       score;
   total=0;
   scoreCounter=1;

   cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
   cin>>score;
   total=total+score;
   do{
   cout <<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
   cin>>score;
    do{
    total=total+score;
    ++scoreCounter;
    cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
    cin>>score;
    }while(scoreCounter<10&&score>=0&&score<=100);
   }while(score>100||score<0);
   clrscr();

   qq=static_cast<float>(total)/scoreCounter;
   qq=avg2;
   result2=Determine_LtrGrd_Using_Switch(qq);
   return result2;
}
int Execute_For_Loop(float avg3)
{
   int vv,result3;
   int total,
      score,
      scoreCounter;
   for(int total=0,scoreCounter=1;scoreCounter<=10;++scoreCounter,
        total=total+score){
      for(int scoreCounter;0>score||score>100;scoreCounter){
        cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
        cin>>score;
     }
      cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
      cin>>score;
   }

    clrscr();
    vv=static_cast<float>(total)/scoreCounter;
    vv=avg3;
    result3=Determine_LtrGrd_Using_Switch(vv);
    return(vv);
}
int Determine_LtrGrd_Using_Switch(float results)
{   int last;
    char LtrGrd;

    LtrGrd=floor(last*10+.5)/100;

    switch(LtrGrd){
      case 10:
      case 9:
       cout<<"\n\tLetter Grade:\t"<<"A";
       break;
      case 8:
       cout<<"\n\tLetter Grade:\t"<<"B";
       break;
      case 7:
       cout<<"\n\tLetter Grade:\t"<<"C";
       break;
      case 6:
       cout<<"\n\tLetter Grade:\t"<<"D";
       break;
      case 5:
       cout<<"\n\tLetter Grade:\t"<<"F";
       break;
    }
      last=results;
      return 0;
}
0
Comment
Question by:licker
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 10

Expert Comment

by:RONSLOW
ID: 2642620
if it is a linker error then there is (probably) nothing wrong with the program (otherwise it wouldn't compile), but with how you are linking it (eg what libraries you are using).

Perhaps if you give us some details on the linker error we could help?
0
 

Author Comment

by:licker
ID: 2642677
It says:
[Linker Error] Unresolved external 'Execute_While_Loop()' referenced from C:\WINDOWS...
[Linker Error] Unresolved external 'Execute_Do_While_Loop()' referenced from C:\WINDOWS...
[Linker Error] Unresolved external 'Execute_For_Loop()' referenced from C:\WINDOWS...
0
 
LVL 1

Expert Comment

by:computerpunk
ID: 2642688
Have you tried putting the function prototypes for the 3 functions at the top of the program ??
0
 
LVL 10

Accepted Solution

by:
RONSLOW earned 125 total points
ID: 2642709
Your prototype doesn't match the function.

eg.

you declare it as:
int Execute_Do_While_Loop();
     
but it is really:
int Execute_Do_While_Loop(float avg2)

Make them consistent.

And (as a metter of style), but you function declarations at the file-scope level (like you did with Prompt_User_for_Selection etc).

0
 

Author Comment

by:licker
ID: 2647097
Thanx, I played with it and got it to work, though a little differently.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

What is C++ STL?: STL stands for Standard Template Library and is a part of standard C++ libraries. It contains many useful data structures (containers) and algorithms, which can spare you a lot of the time. Today we will look at the STL Vector. …
Container Orchestration platforms empower organizations to scale their apps at an exceptional rate. This is the reason numerous innovation-driven companies are moving apps to an appropriated datacenter wide platform that empowers them to scale at a …
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

740 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question