//My name is Chris Salazar and this is Assignment 7. This program is an upgraded grading program
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
const int STUDENTS = 100;
struct studentType
{
string fname;
string lname;
int test1;
int test2;
int test3;
int test4;
double average;
char grade;
};
void initRecords(studentType students[]);
int readData(studentType students[]);
double getStudentAverageGrade(studentType aStudent);
char getGrade(double average);
void sortRecords(studentType students[], int totalStudents);
void swapRecords(studentType& aStudent, studentType& bStudent);
void writeRecords(studentType students[], int totalStudents);
void drawLine(ofstream& fout, char ch, int width);
void checkRecords(studentType students[], int totalStudents);
int findMax(int, int);
int findMin(int, int);
int main(int argc,char** argv)
{
int totalStudents = 0;
studentType students[STUDENTS];
initRecords(students);
totalStudents = readData(students);
checkRecords(students, totalStudents);
sortRecords(students, totalStudents);
cout << "after sorting..." << endl;
checkRecords(students, totalStudents);
writeRecords(students, totalStudents);
cout << "Done!" << endl;
system("pause");
return 0;
}
int readData(studentType students[])
{
ifstream fin;
string fileName;
int i;
cout << "Enter filename: ";
cin >> fileName;
fin.open(fileName);
//if (!fin)
//{
// cout << "FILE NOT PRESENT" << endl;
// cin.get();
// cin.get();
// exit(0);
//}
i = 0;
while (fin && i < STUDENTS)
{
fin >> students[i].fname >> students[i].lname >> students[i].test1 >> students[i].test2 >> students[i].test3 >> students[i].test4;
if (!fin)
break;
students[i].average = getStudentAverageGrade(students[i]);
students[i].grade = getGrade(students[i].average);
i += 1;
}
fin.close();
return i;
}
void writeRecords(studentType students[], int totalStudents)
{
string fileName;
int i = 0;
ofstream fout;
cout << "Enter a file name to write to: " << endl;
getline(cin, fileName);
cin >> fileName;
fout.open(fileName);
while (fout && i < STUDENTS)
{
fout << STUDENTS << students[11].fname << " ";
fout << STUDENTS << students[11].lname << " ";
fout << STUDENTS << students[11].test1 << " ";
fout << STUDENTS << students[11].test2 << " ";
fout << STUDENTS << students[11].test3 << " ";
fout << STUDENTS << students[11].test4 << " ";
//<< students[i].lname << students[i].test1 << students[i].test2 << students[i].test3 << students[i].test4;
i += 1;
}
}
我的'writeRecords'函数没有返回任何准确的信息,而是返回随机数字/字母。这不是我的整个代码,而是为了让任何想要帮助的人都能减少阅读量。非常感谢任何帮助。
答案 0 :(得分:2)
你的功能声明:
void sortRecords(studentType students[], int totalStudents);
与您的函数定义不匹配:
void sortRecords(studentType students, int totalStudents[])