Soccer teams

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • al2004
    New Member
    • Feb 2007
    • 2

    Soccer teams

    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.
  • Banfa
    Recognized Expert Expert
    • Feb 2006
    • 9067

    #2
    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

    Comment

    Working...