can someone help me change the program into a 2 dimensional

can someone help me change the program into a 2 dimensional array and without the ** please

#include <iostream>
#include<fstream>
#include<string>
using namespace std;
int number_of_crs = 0;
void input(char**, float**, char*);
void output(char**, float** , char* , float, char*);
int compute_gpa(float**, char*);
int main(){
char* name_of_student;
char* grades = new char[10];
char **course_name = new char*[10];
float **metrics = new float*[10];
float sem_gpa;
for(int i=0; i<10; i++)
{
metrics[i] = new float[3];
}
input(course_name, metrics, name_of_student);
sem_gpa = compute_gpa(metrics, grades);
return 0;
}
void input(char **course_name, float **metrics, char* name_of_student){
int i = 0;
ifstream infile;
infile.open(\"data.txt\");
name_of_student = new char[256];
infile.getline(name_of_student, 100);
course_name[i] = new char[256];
string line;
while(infile.getline(course_name[i], 1000)){
infile >> metrics[i][0] >> metrics[i][1];
course_name[++i] = new char[256];
infile.ignore();
}
number_of_crs = i;
}
int compute_gpa(float **metrics, char* grades){
float sum_of_gpa = 0;
float sum_of_cre = 0;
for(int i=0; i< number_of_crs; i++){
if(metrics[i][0] >= 90 && metrics[i][0] <= 100){
metrics[i][2] = metrics[i][1]*4;
grades[i] = \'A\';
}
else if(metrics[i][0] >= 80 && metrics[i][0] <= 89){
metrics[i][2] = metrics[i][1]*3;
grades[i] = \'B\';
}
else if(metrics[i][0] >= 70 && metrics[i][0] <= 79){
metrics[i][2] = metrics[i][1]*2;
grades[i] = \'C\';
}
else if(metrics[i][0] >= 60 && metrics[i][0] <= 69){
metrics[i][2] = metrics[i][1];
grades[i] = \'D\';
}
else if(metrics[i][0] >= 0 && metrics[i][0] <= 59){
metrics[i][2] = 0;
grades[i] = \'F\';
}
else{
cout << \"Wrong Input\";
}
sum_of_gpa = sum_of_gpa + metrics[i][2];
sum_of_cre = sum_of_cre + metrics[i][1];
}
return sum_of_gpa/sum_of_cre;
}
void output(char** course_name, float** metrics, char* name_of_student, float sem_gpa, char* grades){
ofstream output_file(\"output.txt\");
output_file << name_of_student << \"\ \";
output_file.setf(ios::left, ios::adjustfield);
output_file.width(10);
output_file << \"Course\";
output_file.setf(ios::left, ios::adjustfield);
output_file.width(7);
output_file << \"Grades\";
output_file.setf(ios::left, ios::adjustfield);
output_file.width(7);
output_file << \"GPA\";
output_file.setf(ios::left, ios::adjustfield);
output_file.width(7);
output_file << \"Credits\ \";
for(int i=0; i< number_of_crs; i++)
{
output_file.setf(ios::left, ios::adjustfield);
output_file.width(10);
output_file << course_name[i];

output_file.setf(ios::left, ios::adjustfield);
output_file.width(7);
output_file << grades[i];
output_file.setf(ios::left, ios::adjustfield);
output_file.width(7);
output_file << metrics[i][2];
output_file.setf(ios::left, ios::adjustfield);
output_file.width(7);
output_file << metrics[i][1] << \"\ \";
}
output_file.precision(4);
output_file << \"Semester GPA : \" << sem_gpa;
output_file.close();
return;
}

Solution

HI, Please find my code.

I have changed every thing in compile time memory allocation.

Please let me know in case of any issue.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int number_of_crs = 0;

// function declarations
void input(char course_name[][256], float metrics[][3], char name_of_student[]);
void output(char course_name[][256], float metrics[][3] , char name_of_student[] , float sem_gpa, char grades[]);
int compute_gpa(float metrics[][3], char grades[]);


int main(){

   char name_of_student[256];
   char grades[10];
   char course_name[10][256];
   float metrics[10][3];
   float sem_gpa;

   input(course_name, metrics, name_of_student);
   sem_gpa = compute_gpa(metrics, grades);

   return 0;
}

void input(char course_name[][256], float metrics[][3], char name_of_student[]){
   int i = 0;
   ifstream infile;
   infile.open(\"data.txt\");
   infile.getline(name_of_student, 100);
   string line;
   while(infile.getline(course_name[i], 1000)){
       infile >> metrics[i][0] >> metrics[i][1];
       i++;
       infile.ignore();
   }
   number_of_crs = i;
}

int compute_gpa(float metrics[][3], char grades[]){
   float sum_of_gpa = 0;
   float sum_of_cre = 0;
   for(int i=0; i< number_of_crs; i++){
   if(metrics[i][0] >= 90 && metrics[i][0] <= 100){
   metrics[i][2] = metrics[i][1]*4;
   grades[i] = \'A\';
   }
   else if(metrics[i][0] >= 80 && metrics[i][0] <= 89){
   metrics[i][2] = metrics[i][1]*3;
   grades[i] = \'B\';
   }
   else if(metrics[i][0] >= 70 && metrics[i][0] <= 79){
   metrics[i][2] = metrics[i][1]*2;
   grades[i] = \'C\';
   }
   else if(metrics[i][0] >= 60 && metrics[i][0] <= 69){
   metrics[i][2] = metrics[i][1];
   grades[i] = \'D\';
   }
   else if(metrics[i][0] >= 0 && metrics[i][0] <= 59){
   metrics[i][2] = 0;
   grades[i] = \'F\';
   }
   else{
   cout << \"Wrong Input\";
   }
   sum_of_gpa = sum_of_gpa + metrics[i][2];
   sum_of_cre = sum_of_cre + metrics[i][1];
   }
   return sum_of_gpa/sum_of_cre;
}

void output(char course_name[][256], float metrics[][3] , char name_of_student[] , float sem_gpa, char grades[]){
   ofstream output_file(\"output.txt\");
   output_file << name_of_student << \"\ \";
   output_file.setf(ios::left, ios::adjustfield);
   output_file.width(10);
   output_file << \"Course\";
   output_file.setf(ios::left, ios::adjustfield);
   output_file.width(7);
   output_file << \"Grades\";
   output_file.setf(ios::left, ios::adjustfield);
   output_file.width(7);
   output_file << \"GPA\";
   output_file.setf(ios::left, ios::adjustfield);
   output_file.width(7);
   output_file << \"Credits\ \";
   for(int i=0; i< number_of_crs; i++)
   {
   output_file.setf(ios::left, ios::adjustfield);
   output_file.width(10);
   output_file << course_name[i];
   output_file.setf(ios::left, ios::adjustfield);
   output_file.width(7);
   output_file << grades[i];
   output_file.setf(ios::left, ios::adjustfield);
   output_file.width(7);
   output_file << metrics[i][2];
   output_file.setf(ios::left, ios::adjustfield);
   output_file.width(7);
   output_file << metrics[i][1] << \"\ \";
   }
   output_file.precision(4);
   output_file << \"Semester GPA : \" << sem_gpa;
   output_file.close();
   return;
}

can someone help me change the program into a 2 dimensional array and without the ** please #include <iostream> #include<fstream> #include<string
can someone help me change the program into a 2 dimensional array and without the ** please #include <iostream> #include<fstream> #include<string
can someone help me change the program into a 2 dimensional array and without the ** please #include <iostream> #include<fstream> #include<string
can someone help me change the program into a 2 dimensional array and without the ** please #include <iostream> #include<fstream> #include<string

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site