470,855 Members | 1,309 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,855 developers. It's quick & easy.


Write a program that reads information about youth soccer teams from a file, calculates the average score for
each team and prints the averages in a neatly formatted table along with the team name.
Please follow the specifications for assignment 3 as described below otherwise points will be taken off.
Input from a file
Please create an input file named input.txt using a text editor like notepad or the Visual C++ editor and put the following
data into it:
If you use Notepad do not add .txt to your file name or you could end up with a file named input.txt.txt. Notepad will add
the .txt. Or to preserve the entire file name you enter surround the file name with quotes: “input.txt”
Bugs 4 2 1 0 -1
Sharks 2 2 -1
Stallions 3 1 5 -1
Wildcats -1
Hawks 1 1 2 1 1 -1
Above main define two int constants named WIDTH1 and WIDTH2. You will use WIDTH1 to define the fieldwidth for
printing the name of the team using setw. You will use WIDTH2 to define the fieldwidth for printing the average score
of the team using setw. You can initialize WIDTH1 and WIDTH2 to values that you think are appropriate for lining up
the data per the requirements for the output section below.
String type
For this assignment use the string type. To use the string type use #include <string>
To declare a variable of string type simply say:
string name;
To assign values to a string type simply use the '=' sign:
name = “Fred”;
To print the contents of a string variable to the screen just use cout:
cout << name;
3 Functions - For help with functions see Lecture5.pdf and for help with working with files see fileIO.pdf on the class
web site.
1. Write a void function named PrintPurpose that has no parameters that will print the purpose of the program to
the screen. The first sentence at the top of this page states the purpose of the program.
2. Write a void function named PrintChar that has 2 parameters in the following order: a char passed by value that
stores the character to print and an int passed by value that stores the number of times to print the character.
This function should use a for loop to print to the screen the character passed in the number of times passed in,
all on one line. Only one character should be printed each time through the loop. For example if a '-' and 5 are
passed in then 5 dashes would be printed:
If a '*' and 8 are passed in then 8 '*' would be printed:
3. In the main function you should declare any variables you need. You will need a string variable to read the team
name into and an int variable to read the scores into as well as other variables. Please declare all variables at the
top of main, only one variable to a line and comment each variable declaration. Also use meaningful variable
Open the input file and check for successful opening. You should call function 1 to print the purpose of the
Print the report title. Under the report title print print a series of dashes by calling the PrintChar function.
In main you should read in the data from the file using a while loop that will terminate when the input stream
goes into a fail state. The loop should be able read any amount of data from the file and should terminate when
there is no more data or there is a read of invalid data. See fileIO.cpp on the class web site for an example.
Within the while loop you should also have another while loop which will be a sentinel controlled while loop
that will keep going until -1 is read from the file. This is the same type of loop you used for program 2.
Before the outer while loop do a priming read of the first soccer team name. Before the inner while loop do a
priming read of the first score for the team whose name you just read.
The inner loop reads all the scores for a team and subtotals the scores and keeps track of how many scores were
At the bottom of the inner while loop do the next read.
At the bottom of the outer while loop calculate the average for the scores just read. Print each team's name along
with that team's average score in a nicely formatted table per the example in the output section below.
Check for divide by 0. If 0 scores were read then print the team name and print 0 for that team's average.
At the bottom of the outer loop keep track of which team has the highest average score. You need to remember
the highest average score as well as the name of the team with the highest score. The algorithm for remembering
the highest score is as follows: Initialize a variable that stores the highest average score to -1. If the current
average score is higher than the previous highest average score then set the highest average score to the current
average score and the variable that stores the name of the team with the highest average score to the current
At the bottom of the outer loop do the read of the next team name.
After you exit the loops print another dashed line by calling the PrintChar function. Then print a blank line and
print the team name and average score for the team with the highest average per example in the output section
Please note what work is to be done in main and what work the functions 1 and 2 are supposed to do.
Please put the function prototypes above main and the function definitions (function implementation) below main.
Note: Please put a comment block before each function in the format described at the end of the Coding Conventions
Handout posted on my web site under documents. Also comment each function parameter per the coding conventions. If
you do not follow the coding conventions, points will be taken off.
Per the coding conventions for this class (Coding Conventions are posted on class web site) every function should have a
comment just before the function header to explain what the function does and what the return value is.
Each parameter should be on a separate line with comments.
Below find an example of commenting a function. Notice that the return value of a void function is NA since a void
function does not return a value.
//************************************************** **********
// CalcPay()- computes wages from the employee’s pay rate
// and the hours worked, taking overtime into account
// Returns: NA
//************************************************** ***********
void CalcPay (float payRate , //each employee's rate of pay
float hours , //total hours each employee worked
float& wages ) //total wages
//function code
For a value returning function describe what the function returns:
//************************************************** **********
// Cube()- computes the cube of a number
// Returns: The cube of the number
//************************************************** ***********
int Cube(int num) //number to cube
//function code
Output for program 3 is to the screen
Output is to the screen and should be formatted to look like the sample run below.
Avg Soccer Scores
Highest Average Score
Stallions 3.0
Use the following method to get the output to look like the above.
Use a combination of the left and right manipulators along with setw to print the name of the team and the average score
for the team. For the fieldwidth for setw define constants, WIDTH1 and WIDTH2 above main.
To print the dashes call the PrintChar function. For the number of dashes use the total of WIDTH1 and WIDTH2.
Use setprecision to print out the average score to 1 decimal place.
Use setfill to so that '.' will be printed for the fill character for setw instead of space.
Feb 18 '07 #1
1 5062
1,806 1GB
What is the nature of the problem? Where atre you struggling? I don't think you'll have someone write you the entire code here, I suggest you think about where and how you're struggling and try to ask a question specifically related to that. (Why is the CalcPay and cube methods included in the middle of a question about Soccer??)
Feb 18 '07 #2

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

9 posts views Thread by Tom | last post: by
6 posts views Thread by wukexin | last post: by
3 posts views Thread by Colin J. Williams | last post: by
7 posts views Thread by Corepaul | last post: by
5 posts views Thread by Steve | last post: by
8 posts views Thread by Mark | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.