I need to make program that can sort student by grades and by Alphabet order. Can someone tell me, which is the best and easyiest way to solve this problem
#include <iostream>
using namespace std;
class Student {
private:
string name;
int grades;
int score;
public:
string Name() { return name; }
int Score() { return score; }
char Grades() { return grades; }
void setName(string n) {
name = n;
}
void setScore(int score) {
score = s;
}
void setGrades(char g) {
grades = g;
}
};Student
void sortByScor(int n, Student data[]);
void sortByAlphabet (int n, Student data[]);
void main() {
Student s[20];
int max = 0;
int size = 0;
char cek = 'y';
while (cek == 'y') {
system("cls");
cout << "Enter number of student: ";
cin >> size;
for (int i = 0; i < size; i++)
{
cout << "student" << i+1 << "name: ";
cin >> s[i].Name;
cout << "Grades of student" << i + 1 << "score:";
cin >> s[i].Grades;
if (s[i].Score >= 90) s[i].Grades = 'A';
else
if (s[i].Score >= 80) s[i].Grades = 'B';
else
if (s[i].Score >= 70) s[i].Grades = 'C';
else
if (s[i].Score >= 60) s[i].Grades = 'D';
else
s[i].Grades = 'F';
if (max < s[i].Score) max = s[i].Score;
}
cout << endl;
for (int i = 0;i < size;i++) {
cout << i + 1 << "student" << endl;
cout << "name of student:" << s[i].Name << endl;
cout << "score of student" << s[i].Score << endl;
cout << "grade of student" << s[i].Grades << endl;
}
cout << endl << "highest grade: " << endl;
for (int i = 0;i < size;i++) {
if (s[i].Grades == max)
cout << s[i].Name << endl;
}
sortByAlphabet(size, s);
sortByScor(size, s);
cout << endl;
for (int i = 0;i < size; i++) {
cout << s[i].Name << endl;
}
}
}
void sortByAlphabet(int n, Student data[]) {
}
void sortByScore(int n, Student data[]) {
int i, j, min;
Student tmp;
for (int i = 0; i <= n; j++) {
if (data[j].Name < data[min].Name)
min = j;
}
tmp = data[i];
data[i] = data[min];
data[min] = tmp;
system("Pause");
}
Aucun commentaire:
Enregistrer un commentaire