Write a program that reads the student information from a tab separated values (tsv) file. The program then creates a text file that records the course grades of the students. Each row of the tsv file contains the Last Name, First Name, Midterm1 score, Midterm2 score, and the Final score of a student. A sample of the student information is provided in StudentInfo.tsv. Assume the number of students is at least 1 and at most 20.
The program performs the following tasks:
Read the file name of the tsv file from the user.
Open the tsv file and read the student information.
Compute the average exam score of each student.
Assign a letter grade to each student based on the average exam score in the following scale:
A: 90= B: 80=< X < 90
C: 70=< X < 80
D: 60=< X < 70
E: X < 60
Compute the average of each exam.
• Output the last names, first names, exam scores, and letter grades of the students into a text file named report.txt.
• Output one student per row and separate the values with a tab character.
• Output the average of each exam, with two digits after the decimal point at the end of report.txt. Hint: Use the setprecision manipulator to format the output.
Ex: If the input of the program is:
StudentInfo.tsv
and the contents of Studentinfo tsv are:
Barrett Edan 70 45 59
Bradshaw Reagan 96 97 88
Charlton Caius 73 94 80
Mayo Tyrese 88 61 36
Stern Brenda 90 86 45
the file report.txt should contain:
Barrett Edan 70 45 59 F
Bradshaw Reagan 96 97 88 A
Charlton Caius 73 94 80 B
Mayo Tyrese 88 61 36 D
Stern Brenda 90 86 45 C
Averages: midtermi 83.40, midterm2 76.60, final 61.60

Answers

Answer 1
#include
#include
#include
#include
#include
#include


using namespace std;

// Class student required to store the data
class Student{
public:
string lname;
string fname;
int marks[3];
char grade;

// Function which generates the grade for student
void calculate_grade(){
double sum = 0;
for(int i=0;i<3;i++){
sum+= marks[i];
}
double average = sum/3;
if(average>=90 && average<100)
this->grade = 'A';
else if(average>=80)
this->grade = 'B';
else if(average>=70)
this->grade = 'C';
else if(average>=60)
this->grade= 'D';
else this->grade = 'F';
}
};

// This function reads the file , and creates a vector of Students data
vector read_file(string fileName){

// Opening the file
fstream fin;
fin.open(fileName);


// Temp variables
vector list;
vector row ;
string line, word, temp;

// Read the data into vector
while(getline(fin,line)){
row.clear();
stringstream s(line);

while(getline(s,word,'\t')){

row.push_back(word);

}
Student st;
st.fname = row[0];
st.lname = row[1];
st.marks[0] = stoi(row[2]);
st.marks[1] = stoi(row[3]);
st.marks[2] = stoi(row[4]);
st.calculate_grade();
list.push_back(st);
}
fin.close();
return list;
}

// This function takes filname to be output as input, and list of student
void writeFile(string filename, vector list){

// Opening the new file
ofstream fin(filename);
for(int i=0;i string line = list[i].fname+"\t"+list[i].lname+"\t"+to_string(list[i].marks[0])+"\t"
+to_string(list[i].marks[1])+"\t"+to_string(list[i].marks[2])+"\t"+list[i].grade+"\n";
fin<
}


// Find the stats required
double average1 =0,average2 =0 ,average3 = 0;
for(int i=0;i average1+=list[i].marks[0];
average2+=list[i].marks[1];
average3+=list[i].marks[2];
}
average1/=list.size();
average2/=list.size();
average3/=list.size();

// Writting the stats
fin<<"\n"<<"Average: "<<"mid_term1 "<
// Closing the file
fin.close();
}
int main(){

// Taking the input
cout<<"Enter the filename: ";
string filename;
cin>>filename;
vector list;

// Reading and Writting to the file
list = read_file(filename);
writeFile("report.txt",list);


}

Related Questions

An ATM allows a customer to withdraw maximum amount of 500

Answers

Answer:

true

Explanation:

Algorithm:

Print "Enter the initial amount: $"
Get totalAmount

Repeat the following steps until totalAmount <= 0 or the user wants to exit
Get withdrawAmount

if withdrawAmount > 500
Print "You cannot withdraw amount of $500 per day."
otherwise
serviceCharge = 0

if withdrawAmount > 300
Find the serviceCharge as below
serviceCharge = (withdrawAmount - 300) * 0.04

Find the deductions as below
deductions = withdrawAmount + serviceCharge

if deductions > totalAmount
Print "Insufficient funds!"
Print "Allow with a service charge of $25? (Y/N): "
Get choice

if choice == 'y' or choice == 'Y'
Find the totalAmount as below
totalAmount -= (deductions + 25)
Print "Service charges: $" serviceCharge
Print "Additional charge: $25"
Print "Current balance: $" totalAmount
otherwise
Find the totalAmount as below
totalAmount -= deductions
Print "Service charges: $" serviceCharge
Print "Current balance: $" totalAmount

if totalAmount > 0
Print "Continue to withdraw? (Y/ N): "
Get choice;

if choice != 'y' and choice != 'Y'
Print "Current balance: $" totalAmount
Set repeat = false;

if totalAmount <= 0
Print "You should deposit an amount of money."

-------------------------------------------------------------------------------

Complete Program:

#include
#include
using namespace std;

int main()
{
double totalAmount;
double withdrawAmount;
double deductions;
char choice;
bool repeat = true;

cout << "Enter the initial amount: $";
cin >> totalAmount;

while(totalAmount > 0 && repeat)
{
cout << "\nEnter an amount to withdraw: $";
cin >> withdrawAmount;

if(withdrawAmount > 500)
{
cout << "You cannot withdraw amount of $500 per day." << endl;
}
else
{
double serviceCharge = 0;

if(withdrawAmount > 300)
serviceCharge = (withdrawAmount - 300) * 0.04;

deductions = withdrawAmount + serviceCharge;

if(deductions > totalAmount)
{
cout << "Insufficient funds!" << endl;
cout << "Allow with a service charge of $25? (Y/N): ";
cin >> choice;

if(choice == 'y' || choice == 'Y')
{
totalAmount -= (deductions + 25);

cout << "Service charges: $" << serviceCharge << endl;
cout << "Additional charge: $25" << endl;
cout << "Current balance: $" << totalAmount << endl;
}
}
else
{
totalAmount -= deductions;

cout << "Service charges: $" << serviceCharge << endl;
cout << "Current balance: $" << totalAmount << endl;
}
}

if(totalAmount > 0)
{
cout << "\nContinue to withdraw? (Y/ N): ";
cin >> choice;

if(choice != 'y' && choice != 'Y')
{
cout << "Current balance: $" << totalAmount << endl;
repeat = false;
}
}
}

if(totalAmount <= 0)
cout << "You should deposit an amount of money." << endl;

cout << endl;
system("pause");
return 0;
}
Other Questions
what does las posadas commemorate during the advent season Did Akhenaten have any military conquests? Patrick took out a loan for $500 at 4.2% simple interest. If he pays it back in 2 years, how much interest will he have to pay? ROCKETS The height in feet of a rocket t seconds after launch is modeledby h(t) =16t2 + 72t. Find its average speed from 3 to 4 seconds.F-56 ft/sG40 ft/s H 40 ft/sJ 56 ft/s The fastest possible rate of rotation of a planet is that for which the gravitational force on material at the equator just barely provides the centripetal force needed for the rotation. Calculate the minimum rotation period assuming a density of 3.70 g/cm3. Which class bonds did Marx call for ending? Even at moderate temperatures, attractions between molecules seem to have little effect on the elasticity of gas-gas collisions because. What is it called when water moves through pores in soil? things to write to your fav author Find the measures of the missingangles of the right triangles below.36ab Conflict is normal in all enduring relationships.a. Trueb. False which sentce uses the past perfect tense Helpppppppp pleaseeeee!!The mass of an atom is concentrated in itsa. nucleusb. electronc. neutrond. angstrome. isotope SPANISH HELP PLEASEWhich word pair shows two ways to say a or an in Spanish?A. la, unaB. el, laC. un, unaD. el, un Which sentence would a writer use to best appeal to the reader's sense of smell? He made a heaping pile of spaghetti and topped it with steaming marinara sauce. The room was hot from all the cooking, and the smell of spaghetti was strong in the steamy kitchen that day. When she entered the kitchen, she met the sweet aroma of cheese and marinara melting on warm pasta. The whole family had gathered in the kitchen, and they stood in silence, big smiles on their faces, as they smelled the dinner to come. solve pls brainliest When c=-7, evaluate 4(9/4+5/7c) A graph of y=f(x) is given. No formula for f is given. Find the graph of g(x)=f(-1/2x). Write and solve a system of THREE inequalities that models the situation below.Terrence is going to make and sell cupcakes and giant cookies as a fundraiser to earn money for his bank uniform. He sells the cupcakes for $1.25 each and the cookies for $0.75. He knows he will sell at least 10 cupcakes and 24 cookies. He wants to make at least $50. Find a possible combination of cupcakes and cookies he needs to sell to meet his goal. If (2a+b,11) and (1, a-3b) are equal ordered pair then (a,b) = ______.