|
Answer» something is wrong in my program....why that it only outputs (INVALID gender) can someone help me FIX this program........i really need to finish my homework today.... i really this program to run properly.....
this is the problem:
Rewrite the program developed below so that the function MAIN is merely a collection of function calls. Your program should use the following functions. a. Function openFiles: This function opens the input and output files, and sets the output of the floating-point numbers to two decimal places in a fixed decimal format with a decimal point and trailing zeros b. Function initialize: This function initializes variables such as countFemale, countMale, sumFemaleGPA, and sumMaleGPA. c. Function sumGrades: This function finds the sum of female and male students' GPA's d. Function averageGrade: This function finds the average GPA for female and male students. e. Function printResults: This function outputs the relevant results. f. There can be no global variables. Use the appropriate parameters to pass information in and out of functions.
/* For research purposes and to better help students, the admissions office of your local university wants to know how well female and male students perform in certain courses. You receive a FILE that contains female and male student's GPA's for certain courses. Due to confidentiality, the letter code f is used for female students and m for male students. Every file entry consists of a letter code followed by a GPA. Each line has one entry. The number of entries in the file is unknown. Write a program that computes and outputs the average GPA for both female and male students. Format your results to two decimal places. */
#include #include #include
void main() { ifstream inData; char gender; FLOAT average_gpa, sum_gpa = 0, gpa; int count = 0;
inData.open("GPA_Detail.dat"); if(!inData) { cout<<"Cannot open input file. Program terminates!!!\n"; } cout<<"Processing data...\n"; inData>>gender>>gpa; count++; while(!inData.eof()) { sum_gpa += gpa; inData>>gender>>gpa; count++; }
average_gpa = sum_gpa / count; cout< cout<<"The average gpa is " < inData.close(); }
######################################################## for now.....this is my progress..pls help me....
#include #include #include using namespace std; void OpenFiles(char ch, float gpa); void initialize(int fcount, int mcount, float fgpa, float mgpa); void sumGrades( int fcount, int mcount, float fgpa, float mgpa); void averageGrades(float avfgpa, float avmgpa); void printResults(int fcount, int mcount, float avfgpa, float avmgpa); int main()
{ ofstream out; ifstream in; char ch; float gpa; float avfgpa; float avmgpa; int fcount, mcount; float fgpa; //define female GPA float mgpa; //define male GPA
initialize (fcount, mcount, fgpa, mgpa);
OpenFiles(ch, gpa);
while(!in.eof()) { sumGrades(fgpa,mgpa,fcount,mcount); in>>ch>>gpa; averageGrades(avfgpa, avmgpa);
}
printResults(fcount, mcount, avfgpa, avmgpa);
}
void OpenFiles(char ch, float gpa) {
ofstream out; ifstream in; in.open("GPA_Detail.dat",ios::out | ios::ate); if (!in) { cout<<"Can not open input file"<cout<<"program terminates!!"<} in.get(ch); in>>gpa; in.eof();
out.open("GPA_Detail.dat",ios::out | ios::ate); out<out<//out<<"Female" < }
void initialize(int fcount, int mcount, float fgpa, float mgpa)
{
fgpa = 0.0; mgpa= 0.0; fcount = 0; mcount = 0; }
void sumGrades(int fcount, int mcount, float fgpa, float mgpa) {
char ch; float gpa; OpenFiles(ch, gpa); switch (ch) { case 'F': case 'f': fgpa = fgpa+gpa; fcount++; //avfgpa = fgpa/fcount; break; case 'M': case 'm': mgpa = mgpa + gpa; mcount++; //avmgpa = mgpa/mcount; break; default: cout<<"invalid gender"<return; }
}
void averageGrades(float avfgpa, float avmgpa) {
float fgpa, mgpa; int fcount, mcount; sumGrades(fcount, mcount, fgpa, mgpa); avfgpa = fgpa/fcount; avmgpa = mgpa/mcount; }
void printResults(int fcount, int mcount, float avfgpa, float avmgpa) { ofstream out; out<<"Number of female ="<out<<"Average female GPA = "<out<<"Number of male ="<out<<"Average male GPA ="<out.close(); }
|