Как я могу выйти из файла outputfile..
выходной файл не хочет выходить наружу . Вы не могли бы мне помочь? я пробовал, пока не получил только одну ошибку . есть ли что-нибудь тайское, что я пропустил? а я еще новичок . мне нужна помощь.
вопрос заключается в том, чтобы написать программу для ведения записей и выполнения статистического анализа для класса из 50 студентов. Для каждого студента у вас будет 10-значный идентификатор, 2 викторины, 2 задания, 2 лабораторных теста, 1 Тест, 1 проект и один итоговый экзамен. Данные учащихся должны храниться в массиве структур учащихся. Эта структура имеет следующие поля:
я)строку : код
ii)3 двойных массива : викторина, жопа, лабтест
iii)4 двойные переменные : тест, проект, финал, итого
iv)переменная 1 char: ранг.
Обеспечьте до 50 студентов.
Входные данные считываются из текстового файла. Каждая строка в файле содержит студенческий билет и баллы за 2 викторины, 2 задания, 2 лабораторных теста, 1 Тест, 1 проект и один итоговый экзамен по порядку. Ваша программа должна рассчитать общее количество баллов и назначить оценку каждому студенту
Что я уже пробовал:
#include<iostream> #include<fstream> #include<iomanip> #include<string> #include<cstdlib> using namespace std; struct DATA { string id; double quiz[2]; double ass[2]; double labTest[2]; double test; double proj; double final; double total; double midTerm; char grade; }; int main() { ifstream inputfile("studentResults.txt", ios::in); ofstream outputfile("result.txt", ios::out); if (!inputfile) { cerr << "the file could not be opened"; exit(1); } if (!outputfile) { cerr << "the file could not be opened"; exit(1); } cout << setw(10) << "Matrix Num" << setw(10) << "Quiz(5%)" << setw(10) << "Ass(15%)" << setw(10) << "LabTests(20%)" << setw(10) << "Project(15%)" << setw(10) << "MidTerm(15%)" << setw(10) << "Final(30%)" << setw(10) << "Total(100%) " << setw(10) << "Grade" << endl; void studentGrade(); void countGrade(); void outputResult(); DATA student[50]; int i; for (i = 0;i < 50;i++) while (inputfile >> student[i].id >> student[i].quiz[0] >> student[i].quiz[1] >> student[i].ass[0] >> student[i].ass[1] >> student[i].labTest[0] >> student[i].labTest[1] >> student[i].proj >> student[i].midTerm >> student[i].final >> student[i].total >> student[i].grade) { cout << student[i].id << student[i].quiz[0] << student[i].quiz[1] << student[i].ass[0] << student[i].ass[1] << student[i].labTest[0] << student[i].labTest[1] << student[i].proj << student[i].midTerm << student[i].final << student[i].total << student[i].grade; } cout << endl; } void studentGrade(DATA student[]) { for (int i = 0; i < 50; i++) { student[i].total = student[i].midTerm + student[i].proj + student[i].final + ((student[i].quiz[0] + student[i].quiz[1]) / 2) + (student[i].ass[0] + student[i].ass[1]) / 2 + (student[i].labTest[0] + student[i].labTest[1]) / 2; if (student[i].total >= 90 && student[i].total <= 100) student[i].grade = 'A'; else if (student[i].total >= 80) student[i].grade = 'B'; else if (student[i].total >= 60) student[i].grade = 'C'; else if (student[i].total >= 40) student[i].grade = 'D'; else student[i].grade = 'F'; } } void countGrade(DATA student[], int[]) { int i, a = 0, b = 0, c = 0, d = 0, f = 0; for (i = 0;i < 50;i++) { if (student[i].grade == 'A') a++; else if (student[i].grade == 'B') b++; else if (student[i].grade == 'C') c++; else if (student[i].grade == 'D') d++; else if (student[i].grade == 'F') f++; } } void outputResult(DATA student[], int g[5]) { ofstream outputfile("result.txt", ios::out); if (!outputfile) { cerr << "the file could not be opened"; exit(1); } int i; for (int i = 0;i < 50;i++) { student[i].quiz[2] = (student[i].quiz[0] + student[i].quiz[1]) / 2 * 0.05; student[i].ass[2] = (student[i].ass[0] + student[i].ass[1]) / 2 * 0.15; student[i].labTest[2] = (student[i].labTest[0] + student[i].labTest[1]) / 2 * 0.2; } outputfile << setw(10) << "Matrix Num" << setw(10) << "Quiz(5%)" << setw(10) << "Ass(15%)" << setw(10) << "LabTests(20%)" << setw(10) << "Project(15%)" << setw(10) << "MidTerm(15%)" << setw(10) << "Final(30%)" << setw(10) << "Total(100%) " << setw(10) << "Grade" << endl; for (int i = 0;i < 50;i++) { outputfile << setw(10) << setw(10) << student[i].id << setw(10) << student[i].quiz[2] << setw(10) << student[i].ass[2] << setw(10) << student[i].ass[2] << setw(10) << student[i].labTest[0] << setw(10) << student[i].labTest[1] << setw(10) << student[i].proj << setw(10) << student[i].midTerm << setw(10) << student[i].final << setw(10) << student[i].total << setw(10) << student[i].grade << endl; } outputfile << endl; outputfile << "Total Students for Grade A : " << g[0] << endl; outputfile << "Total Students for Grade B : " << g[1] << endl; outputfile << "Total Students for Grade C : " << g[2] << endl; outputfile << "Total Students for Grade D : " << g[3] << endl; outputfile << "Total Students for Grade F : " << g[4] << endl; outputfile << "\nA : "; for (i = 0;i < g[0];i++) outputfile << "* "; outputfile << "\nB : "; for (i = 0;i < g[1];i++) outputfile << "* "; outputfile << "\nC : "; for (i = 0;i < g[2];i++) outputfile << "* "; outputfile << "\nD : "; for (i = 0;i < g[3];i++) outputfile << "* "; outputfile << "\nF : "; for (i = 0;i < g[4];i++) outputfile << "* "; outputfile.close(); }