By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,132 Members | 1,999 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,132 IT Pros & Developers. It's quick & easy.

Soccer teams

P: 2
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
Constants
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 = “whatever”;
To print the contents of a string variable to the screen just use cout:
cout << name;

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
names.
Open the input file and check for successful opening. You should call function 1 to print the purpose of the
program.
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. 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
read.
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
team.
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
below.
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.
Output is to the screen and should be formatted to look like the sample run below.
Avg Soccer Scores
-----------------
Bugs..........1.8
Sharks........2.0
Stallions.....3.0
Wildcats......0.0
Hawks.........1.2
-----------------
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 20 '07 #1
Share this Question
Share on Google+
1 Reply


Banfa
Expert Mod 5K+
P: 8,916
The experts on this site are more than happy to help you with your problems but they cannot do your assignment/program for you. Attempt the assignment/program yourself first and post questions regarding any difficulties you have or about a particular function of the code that you don't know how to achieve. This question will now be closed and you will have to post a new question when you're ready.

Please see this FAQ

Administrator
Feb 20 '07 #2

This discussion thread is closed

Replies have been disabled for this discussion.