Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

please at the end ask the user if he wants to quit he enters \"Q\" then the pogr

ID: 3583686 • Letter: P

Question

please at the end ask the user if he wants to quit he enters "Q" then the pogram displays the student ID and name. Thank you

please note It is in java

Q2. Write a program that reads students information from the user. Your program must (2 Points) have 2 classes: 1. Class named (Students) that have: a- Two instance variables: Student ID and Student name and (Choose a good type for each of them). b- Methods for creating a new student (constructor),return information from existing instance (getter methods). 2. Runner class named as (StudentsRunner)that gets student information from the user and stores it. The program must give the user the ability to stop inserting new values. After the user finish inserting, the program prints the entire list (using for each loop). The following is a typical run of the program

Explanation / Answer

1a.

Stundent ID and Student Name:

#include <string>

using namespace std;

class student
{
public:
void setname ();
string getname ();

void setstudentid ();
int getstudentid ();

student ();


private:
string name;
int studentid;

};

#include "student.h"
#include <iostream>

using namespace std;

student::student ()
{
setname ();

setstudentid ();

cout << "Student's Name: " << getname () << endl;
cout << "Student's ID: " << getstudentid () << endl;
}

void student::setname ()
{
string x;

cout << "Enter student's name: ";
getline (cin , x);


name = x;
}

string student::getname ()
{
return name;
}

void student::setstudentid ()
{
int x;

cout << "Enter student's code: ";
cin >> x;
studentid = x;
}

int student::getstudentid ()
{
return studentid;
}

1b.

Creating a new Student constructor:

oop/dataclass/TestStudent2.java
Tests Student2 constructor.

import javax.swing.*;

public class TestStudent2 {
public static void main(String[] args) {
Student2 tatiana;
Student2 pupil;

tatiana = new Student2("Tatiana", "Johnson", 9950842);

String first = JOptionPane.showInputDialog(null, "First name");
String last = JOptionPane.showInputDialog(null, "Last name");
int studID= Integer.parseInt(JOptionPane.showInputDialog(null, "ID"));
pupil = new Student2(first, last, studID);

JOptionPane.showMessageDialog(null, "One student is named: "
+ tatiana.lastName + ", " + tatiana.firstName
+ " and another is named: "
+ pupil.lastName + ", " + pupil.firstName);
}
}

Return information from Getter Mathods:

class Student
{
int age
String name

public Student(int age,String name)
{
this.age=age;
this.name=name;
}


public Student getStudent()
{

return studentObject;
}

public int getAge()
{
return age;
}
}

2.

#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <cmath>

using namespace std;

struct StudentData
{
int studentID;
string first_name;
string last_name;
int exam1;
int exam2;
int exam3;
int total;
char ch;
};

const int SIZE = 9;
const int INFO = 4;
void openInputFile(ifstream &, string);
void getTotal(StudentData[]);
void getGrade(StudentData[]);
void calcLowest(StudentData[], int &, int &, int &, int &, int[]);
void calcHighest(StudentData[], int &, int &, int &, int &, int[]);
void getAverage(StudentData[], int, double &, double &, double &, double &, double[]);
void getStd(StudentData[], double &, double &, double &, double &, double &, double &, double &, double &, double[]);
void print(StudentData[], int[], int[], double[], double[]);
void sort(StudentData[]);

int main()
{
// Variables
StudentData arr[SIZE];
int lowest1, lowest2, lowest3, lowest4; // Stores lowest exam scores
int highest1, highest2, highest3, highest4; // Holds highest exam scores
double average1 = 0, average2 = 0, average3 = 0, average4 = 0; // Represents average of each exam
double std1 = 0, std2 = 0, std3 = 0, std4 = 0; // Holds standard deviation for Exams 1-3 and Total
int lowest[INFO] = {};
int highest[INFO] = {};
double average[INFO] = {};
double standardDeviation[INFO] = {};

ifstream inFile;
string inFileName = "C:\Users\Lisa\Desktop\scores.txt";

  
openInputFile(inFile, inFileName);

for(int count = 0; count < SIZE; count++)
{
inFile >> arr[count].studentID >> arr[count].first_name >> arr[count].last_name >> arr[count].exam1 >> arr[count].exam2 >> arr[count].exam3;
}

  
inFile.close();

getTotal(arr);
getGrade(arr);

  
calcLowest(arr, lowest1, lowest2, lowest3, lowest4, lowest);
chghest(arr, highest1, highest2, highest3, highest4, highest);

getAverage(arr, SIZE, average1, average2, average3, average4, average);
gtStd(arr, std1, std2, std3, std4, average1, average2, average3, average4, standardDeviation);

cout << " ";

print(arr, lowest, highest, average, standardDeviation);

cout << " ";

  
sort(arr);

Print(arr, lowest, highest, average, standardDeviation);

system("PAUSE");

return 0;
}

/**
* Pre-condition:
* Post-condition:
*/
void openInputFile(ifstream &inFile, string inFileName)
{
//Open the file
inFile.open(inFileName);

//Input validation
if (!inFile)
{
cout << "Error to open file." << endl;
cout << endl;
return;
}
}

/**
* Pre-condition:
* Post-condition:
*/
void getTotal(StudentData arr[])
{
for(int i = 0; i < SIZE; i++)
{
arr[i].total = arr[i].exam1 + arr[i].exam2 + arr[i].exam3;
}
}

/**
* Pre-condition:
* Post-condition:
*/
void getGrade(StudentData arr[])
{
for(int i = 0; i < SIZE; i++)
{
if(arr[i].total >= 270)
arr[i].ch = 'A';
else if(arr[i].total >= 240)
arr[i].ch = 'B';
else if(arr[i].total >= 210)
arr[i].ch = 'C';
else if(arr[i].total >= 180)
arr[i].ch = 'D';
else
arr[i].ch = 'F';
}
}

/**
* Pre-condition:
* Post-condition:
*/
void calcLowest(StudentData arr[], int &lowest1, int &lowest2, int &lowest3, int &lowest4, int lowest[])
{
int smallest = 0;

lowest1 = arr[0].exam1;
lowest2 = arr[0].exam2;
lowest3 = arr[0].exam3;
lowest4 = arr[0].total;

// Loop to determine lowest score from Exam1, 2, 3, and Total
for (int i = 0; i < SIZE; i++)
{
if (lowest1 > arr[i].exam1)
{
lowest1 = arr[i].exam1;
smallest = i;
}

if (lowest2 > arr[i].exam2)
{
lowest2 = arr[i].exam2;
smallest = i;
}

if (lowest3 > arr[i].exam3)
{
lowest3 = arr[i].exam3;
smallest = i;
}

if (lowest4 > arr[i].total)
{
lowest4 = arr[i].total;
smallest = i;
}
}

// Loop lowest values into an array of size 4
for(int index = 0; index < INFO; index++)
{
if(index == 0)
lowest[0] = lowest1;
else if(index == 1)
lowest[1] = lowest2;
else if(index == 2)
lowest[2] = lowest3;
else if(index == 3)
lowest[3] = lowest4;
else
cout << "Fail!" << endl;
}
}

/**
* Pre-condition:
* Post-condition:
*/
void calcHighest(StudentData arr[], int &highest1, int &highest2, int &highest3, int &highest4, int highest[])
{
int biggest = 0;

highest1 = arr[0].exam1;
highest2 = arr[0].exam2;
highest3 = arr[0].exam3;
highest4 = arr[0].total;

// Loop to determine highest score from Exam1, 2, 3, and Total
for (int i = 0; i < SIZE; i++)
{
if (highest1 < arr[i].exam1)
{
highest1 = arr[i].exam1;
biggest = i;
}

if (highest2 < arr[i].exam2)
{
highest2 = arr[i].exam2;
biggest = i;
}

if (highest3 < arr[i].exam3)
{
highest3 = arr[i].exam3;
biggest = i;
}

if (highest4 < arr[i].total)
{
highest4 = arr[i].total;
biggest = i;
}
}

// Loop highest values into an array of size 4
for(int index = 0; index < INFO; index++)
{
if(index == 0)
highest[0] = highest1;
else if(index == 1)
highest[1] = highest2;
else if(index == 2)
highest[2] = highest3;
else if(index == 3)
highest[3] = highest4;
else
cout << "Fail!" << endl;
}
}

/**
* Pre-condition:
* Post-condition:
*/
void getAverage(StudentData arr[], int size, double &average1, double &average2, double &average3, double &average4, double average[])
{
int sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0;

// Get sum of each category (Exam1, 2, 3, and Total)
for(int i = 0; i < SIZE; i++)
{
sum1 += arr[i].exam1;
sum2 += arr[i].exam2;
sum3 += arr[i].exam3;
sum4 += arr[i].total;
}

// Calculate average for each category
average1 += static_cast<double>(sum1)/size;

average2 += static_cast<double>(sum2)/size;

average3 += static_cast<double>(sum3)/size;

average4 += static_cast<double>(sum4)/size;

// Loop average values into an array of size 4
for(int index = 0; index < INFO; index++)
{
if(index == 0)
average[0] = average1;
else if(index == 1)
average[1] = average2;
else if(index == 2)
average[2] = average3;
else if(index == 3)
average[3] = average4;
else
cout << "Fail!" << endl;
}
}

/**
* Pre-condition:
* Post-condition:
*/
void getStd(StudentData arr[], double &std1, double &std2, double &std3, double &std4, double &average1, double &average2, double &average3, double &average4, double standardDeviation[])
{
double deviationSum1 = 0, deviationSum2 = 0, deviationSum3 = 0, deviationSum4 = 0;

for(int i = 0; i < SIZE; i++)
{
deviationSum1 += pow((arr[i].exam1 - average1), 2);
deviationSum2 += pow((arr[i].exam2 - average2), 2);
deviationSum3 += pow((arr[i].exam3 - average3), 2);
deviationSum4 += pow((arr[i].total - average4), 2);
}

std1 = sqrt(deviationSum1 / ((SIZE) - 1));
std2 = sqrt(deviationSum2 / ((SIZE) - 1));
std3 = sqrt(deviationSum3 / ((SIZE) - 1));
std4 = sqrt(deviationSum4 / ((SIZE) - 1));

// Loop average values into an array of size
for(int index = 0; index < INFO; index++)
{
if(index == 0)
standardDeviation[0] = std1;
else if(index == 1)
standardDeviation[1] = std2;
else if(index == 2)
standardDeviation[2] = std3;
else if(index == 3)
standardDeviation[3] = std4;
else
cout << "Fail!" << endl;
}
}

cout << " ";
}

/**
* Pre-condition:
* Post-condition:
*/
void sort(StudentData arr[])
{
StudentData temp;

for (int i = 0; i < (SIZE - 1); i++)
{
for (int j = i + 1; j < SIZE; j++)
{
if (arr[i].last_name > arr[j].last_name)
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}