samedi 11 juin 2016

Sorting Students by Grades and Alphabet order c++


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