Computer Networking: A Top-Down Approach (7th Edition)
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
Bartleby Related Questions Icon

Related questions

Question

num 3 in  c ++

answer it as simple as possible with no complicated codes, please 

Write a C++ program that prompts the user to enter a file name that contains
the total mark of students. Each line in the input file contains a student name
followed by the student's total mark. The program should ask the user for
the passing threshold (i.e. student whose total mark is greater than or equal
the threshold will pass the course) and copy the students who pass the course
to a new file (the name of the output file is specified by the user). Moreover,
the output file should be format so that all the marks are displayed with two
digits after the decimal point. The width for the names and marks fields
should be eight and seven, respectively. A sample input and output files are
shown below (the passing mark in this sample is assumed to be 60).
total.txt (sample)
pass.txt (sample)
Ahlam 80.123
Ahlam
80.12
Bader 83.1
Bader 83.10
Nabil 91.25
Nabil
91.25
Khoula 70
Khoula 70.00
Saif 55.333
Saif
65.33
Salem 50
Sultan
92.50
Sultan 92.5
Qais 77.20
Qais 77.2
expand button
Transcribed Image Text:Write a C++ program that prompts the user to enter a file name that contains the total mark of students. Each line in the input file contains a student name followed by the student's total mark. The program should ask the user for the passing threshold (i.e. student whose total mark is greater than or equal the threshold will pass the course) and copy the students who pass the course to a new file (the name of the output file is specified by the user). Moreover, the output file should be format so that all the marks are displayed with two digits after the decimal point. The width for the names and marks fields should be eight and seven, respectively. A sample input and output files are shown below (the passing mark in this sample is assumed to be 60). total.txt (sample) pass.txt (sample) Ahlam 80.123 Ahlam 80.12 Bader 83.1 Bader 83.10 Nabil 91.25 Nabil 91.25 Khoula 70 Khoula 70.00 Saif 55.333 Saif 65.33 Salem 50 Sultan 92.50 Sultan 92.5 Qais 77.20 Qais 77.2
Expert Solution
Check Mark
Step 1: Program

A C++ program is as follows,

File name: “main.cpp”

//Define header files

#include<iostream>

#include<string>

#include<map>

#include<fstream>

#include<iomanip>

using namespace std;

int main () { 

    // store the names in a map

    std::map<std::string, float> marks_db;

    std::string in_file_name, out_file_name;

    std::cout<<"Enter input file name: ";

    //Get the input file name

    std::cin>>in_file_name;

    std::cout<<"Enter output file name: ";

    //Get the output file name

    std::cin>>out_file_name;

    std::fstream in_file, out_file;

    // open files for respective operations

    in_file.open(in_file_name.c_str(), ios::in);

    out_file.open(out_file_name.c_str(), ios::out);

    // check for file opening status

    if (!(in_file.is_open() && out_file.is_open()))

    {

        std::cout<<"Couldn't open file/files.\n";

        return -1;

    }

    std::string name = "";

    std::string marks = "";  

    // Read the file and store the details in the map

    while (!in_file.eof())

    {

        in_file >> name;

        in_file >> marks;

        marks_db.insert(std::make_pair(name, stof(marks)));

    }  

    // Close the input file

    in_file.close();

    float cut_off;

    std::cout<<"Enter the threshold mark: ";

    std::cin>>cut_off;  

    // apply the cut off for the given database

    std::map<std::string, float> :: iterator it;

    for (it = marks_db.begin(); it != marks_db.end(); ++it) {

        //Check for the pass mark

        if (it->second < cut_off) {

            continue;

        }  

        // print to output file with iomanip formatters

        out_file.fill(' ');

        //Set the width for the names to "8"

        out_file.width(8);

        out_file << it->first << " ";  

        //Set the width for the marks to "7"

        out_file.width(7);

        //Set the decimal digit to "2" and print to output file

        out_file << setprecision (2) << fixed << it->second <<"\n";

    }

    // close the output file

    out_file.close();

}

Input file: "total.txt"

Computer Engineering homework question answer, step 1, image 1

Step 2: Screenshots

Screenshot #1:

Computer Engineering homework question answer, step 2, image 1

Screenshot #2:

Computer Engineering homework question answer, step 2, image 2

Screenshot #3:

Computer Engineering homework question answer, step 2, image 3

bartleby

Step by stepSolved in 3 steps with 6 images

Blurred answer
Knowledge Booster
Background pattern image
Similar questions
Recommended textbooks for you
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY