미국 유학생인데요.
8시간 뒤에 제출인 과제가 있는데 아직도 잔뜩 헤매고 있네요 ㅠㅠ
1. text 형식의 점수만 잔뜩 써있는 file을 읽고나서
2. A,B,C,D,F 의 기준을 정하고 (ex: 91점까지 A, 78점까지 B, 등등)
3. Min, Max 점수를 찾고 (text file 안에 있는 점수중 제일 낮은 점수와 제일 높은 점수)
4. 모든 점수들의 평균을 구하고
5. 그 파일 안에 점수가 총 몇개가 있는지 구하고 나서
6. 그 점수들 안에서 A가 몇명인지 부터 F가 몇명인지 까지를 구하는 프로그램인데요.
Array를 사용해야하구요,
5번까지는 하는방법은 대충 이해가 되는데 프로그램으로 어떻게 하는지 모르겠어요.
1,2,3,4,5번까지 각각 다른 펑션 썼구요
궁금한건 그 각각 다른 펑션 에서 어떻게 숫자를 이어가냐 에요.
예를들어 1번 펑션 에서 array를 사용해서 i의 값(점수들의 갯수)이 32가 나왔을때
4번의 펑션 에서 평균을 구할려면 총 합에서 1번에서 나온 i값으로 나눠야 평균이 나오잖아요?
근데 그런 방식을 전혀 모르니깐 어떻게 하는지 방법을 모르겠네요.
8시간 뒤에 제출입니다.
고수님들 꼭 도와주세요.
뭘 어떻게 고쳐야하는지, 혹은 제 프로그램중에 틀린부분좀 알려주세요
===============================================================================================
#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;
void GetScores (ifstream&fin, int Score[]) ;
void FindMaxMin (int Score[], int &Number) ;
void FindAvg (ifstream &fin, int Score[]) ;
void CutOff (int GradeScore[]) ;
int main ()
{
ifstream fin;
float Avg;
int Numbersize = 200, Score[200], BadScore = 0, Counter = 0, GradeScore[200], Number ;
string Grade ;
GetScores(fin, Score) ;
FindMaxMin (Score, Number) ;
FindAvg (fin, Score) ;
CutOff(GradeScore) ;
fin.ignore(100, '\n');
//close file
fin.close();
return 0;
}
void GetScores (ifstream&fin, int Score[])
{
int Number = 0, Sum = 0 ;
string File1 ;
//enter input file name
cout << "Please enter input file name: " ;
getline(cin, File1);
fin.open(File1.c_str());
//verify failure opening input file
if (fin. fail())
cout << "File has not been found" << endl ;
while (!fin.fail())
{
fin>> Score[Number] ;
Sum += Score[Number];
Number++ ;
}
cout << Number << endl ;
cout << Sum << endl ;
}
void FindMaxMin (int Score[], int &Number)
{
int Max =0, Min =0 ;
Max=Min=Score[0];
if (Score[Number] > Max)
Max = Score[Number] ;
if (Score[Number] < Min)
Min = Score[Number] ;
cout << Max << endl;
cout << Min << endl;
}
void FindAvg (ifstream &fin, int Score[])
{
float Avg = 0, Sum=0 ;
int Number = 0 ;
Avg = Sum/Number ;
cout << Avg << endl;
}
void CutOff (int GradeScore[])
{
int Counter = 0 ;
cout << left << setfill ('=') << setw(70) << " " << setfill(' ') <<endl;
cout << "Enter the lowest grade for an A: " ;
cin >> GradeScore[Counter] ;
cout << endl;
Counter++ ;
cout << "Enter the lowest grade for an B: " ;
cin >> GradeScore[Counter] ;
cout << endl;
Counter++ ;
cout << "Enter the lowest grade for an C: " ;
cin >> GradeScore[Counter] ;
cout << endl;
Counter++ ;
cout << "Enter the lowest grade for an D: " ;
cin >> GradeScore[Counter] ;
cout << endl;
Counter++ ;
}
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.