我的代码:
#include <iomanip>
#include <iostream>
#include <string>
#include <cmath>
#include <cstdlib>
#include <fstream>
#include <ctime>
using namespace std;
void insertionSort(int arrtosort[], int size);
const int SIZE = 10;
int main() {
ofstream out;
ifstream ingrades;
unsigned seed = time(0);
char doAgain = ' ';
int id = 0;
string grade = " ";
int choice = 0;
int fileid[SIZE];
int numgrade[SIZE];
int sum = 0;
int counter = 0;
int average = 0;
int idx = 0;
string letterGrade = " ";
srand(seed);
out.open("dataout.txt");
while(counter <= 10) {
out << (10000 + rand() % 99999);
out << " ";
out << (-1 + rand() % 10) << endl;
//out<<" ";
counter++;
}
out.close();
ingrades.open("dataout.txt");
for(idx = 0; idx < SIZE; idx++ ) {
ingrades >> fileid[idx] >> numgrade[idx];
sum = sum + numgrade[idx];
counter++;
}
ingrades.close();
average = sum / counter;
out.open("dataout.txt");
for( idx = 0; idx < SIZE; idx++ ) {
if(numgrade[idx] == average || numgrade[idx] == average + 1) {
out << fileid[idx] << " " << numgrade[idx] << " B";
out << endl;
} else if(numgrade[idx] == average + 2 || numgrade[idx] == average + 3) {
out << fileid[idx] << " " << numgrade[idx] << " A-";
out << endl;
} else if(numgrade[idx] == average + 4 || numgrade[idx] >= 7 || numgrade[idx] == 10) {
out << fileid[idx] << " " << numgrade[idx] << " A";
out << endl;
} else if(numgrade[idx] == average - 1) {
out << fileid[idx] << " " << numgrade[idx] << " C";
out << endl;
} else if(numgrade[idx] == average - 2) {
out << fileid[idx] << " " << numgrade[idx] << " F";
out << endl;
} else if (numgrade[idx] == -1) {
out << fileid[idx] << " " << numgrade[idx] << " N/A";
out << endl;
}
}
out.close();
ingrades.open("dataout.txt");
for(idx = 0; idx < SIZE; idx++ ) {
ingrades >> fileid[idx] >> numgrade[idx];
}
ingrades.close();
do {
cout << "\n" << right << setw(35) << "Teacher's Menu" << right << endl;
cout << "---------------------------------------------------------" << endl;
cout << "1) Sort the student list by id, and write it to your file" << endl;
cout << "2) Search for a student by id and display the id," <<
" numeric and letter grade to\n the console" << endl;
cout << "3) Search for students with a particular letter grade and display the results\n to the console" << endl;
cout << "4) Sort the student list by numeric grade and write it out to a file" << endl;
cout << "5) Find the percentage of students for a particular letter grade" << endl;
cout << "\n\tPlease enter which number option you wish to use: ";
cin >> choice;
ingrades.open("dataout.txt");
switch(choice) {
case 1:
break;
case 2:
ingrades.clear();
cout << "Enter in Student id: ";
cin >> id;
idx = 0;
for ( idx = 0; idx <= SIZE; idx++ ) {
ingrades >> fileid[idx] >> numgrade[idx] >> letterGrade[idx];
if ( fileid[idx] == id && idx <= SIZE ) {
cout << fileid[idx] << " " << numgrade[idx] << " " << letterGrade[idx] << endl;
break;
}
}
system("pause");
break;
case 3:
/* cout << "Enter in the Student letter grade: ";
cin >> grade;
for(idx = 0; idx < SIZE; idx++) {
if(grade == letterGrade[idx])
cout << fileid[idx] << " " << numgrade[idx] << " " << letterGrade[idx] << endl;
}
break;
*/
case 4:
break;
case 5:
break;
default:
cout << "Incorrect option" << endl;
}
cout << "Would you like to go back to the main menu y or n: " << endl;
cin >> doAgain;
} while(doAgain == 'y' || doAgain == 'Y');
ingrades.close();
//system("PAUSE");
return EXIT_SUCCESS;
}
void insertionSort(int arrtosort[], int size) {
int temp = arrtosort[0];
for(int i = 1; i <= size; i++) {
temp = arrtosort[i];
int j = 0;
for(j = i; j > 0; j--)
if(temp < arrtosort[j - 1])
arrtosort[j] = arrtosort[j - 1];
else break;
arrtosort[j] = temp;
}
}
这是一个学校项目,但我的课程失败了,但我决心完成这个项目并继续学习真的需要帮助我觉得我撞到了一堵砖墙。
我正在尝试从文本中读取 ID,它也可以在第四次运行,然后我会收到该错误,我想了解为什么这不起作用以及如何继续执行程序的其余部分非常感谢还可以使用帮助来应用我的自动排序功能,老师给了我们循环,但不确定它如何完全工作或如何正确应用它。
我遇到的麻烦从第 127 行开始,给了我错误,例如字符串子字符串超出范围和难以比较案例 3 上的字符串