In this program I am trying to color the answers. If the answer is correct it is green and if incorrect it is colored red. But it wont color the individual letters. Il'l mark the area with the important stuff.
Yes the code is long but i marked the part that needs to be looked at.
FYI: There are no actual errors, it runs fine.
If you hadnt noticed, the source file is under this post, so you can run it yourself. It will make more sence if you do.
Code:#include <iostream.h> #include <iomanip.h> #include "apmatrix.h" #include "apvector.h" #include <stdlib.h.> #include <windows.h> //Easy Coloring Of Words/Letters #define Color_White SetConsoleTextAttribute(stdOut, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED); #define Color_Red SetConsoleTextAttribute(stdOut, FOREGROUND_RED | FOREGROUND_INTENSITY); #define Color_Green SetConsoleTextAttribute(stdOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY); HANDLE stdOut = GetStdHandle(STD_OUTPUT_HANDLE); int main() { Color_White //Welcome cout<<"***Welcome to Quiz Machine***"<<endl<<"*****************************" <<endl<<"Please follow the directions"<<endl<<"to see the" <<" results of your"<<endl<<"True/False test."<<endl<<endl; //Declaration of Varibles apvector<int> student(2); apmatrix<char> score(10, 3, 'F'); apvector<int> count(2); apvector<char> grade(2); int size, size2; //Gets amount of students cout<<"How many students took the test? "; cin>>size; size2 = size +1; //Resises vectors and matrix student.resize(size); score.resize(10, size2); count.resize(size); grade.resize(size); for(int t=0; t<size; ++t) count[t] = 0; for(t=0; t<size; ++t) grade[t] = '-'; //Insert answer key cout<<"Enter the correct answers(10):"<<endl; for(int x = 0; x<10; ++x) { cin>>score[x][0]; if(score[x][0] == 't') score[x][0] = 'T'; if(score[x][0] == 'f') score[x][0] = 'F'; } //Insert ID #'s for(x=0; x<size; ++x) { cout<<"Please enter student "<<x+1<<"'s 4-digit ID number: "; cin>>student[x]; while(student[x] > 9999 || student[x] < 1000) { cout<<"Please re-enter the student number: "; cin>>student[x]; } } //Insert Test Answers for(x=1; x<size2; ++x) { cout<<"Please enter student "<<x<<"'s test scores(T/F):"<<endl; for(int y=0; y<10; ++y) { cin>>score[y][x]; if(score[y][x] == 't') score[y][x] = 'T'; if(score[y][x] == 'f') score[y][x] = 'F'; } } //Count correct Answers for(x=1; x<size2; ++x) { for(int y=0; y<10; ++y) { if(score[y][0] == score[y][x]) ++count[x-1]; } } //Sets Margin Left cout<<setiosflags(ios::left); //Sets letter grades of all students for(x=0; x<size; ++x) { if(count[x] == 10) grade[x] = 'A'; else if(count[x] == 9) grade[x] = 'B'; else if(count[x] == 8) grade[x] = 'C'; else if(count[x] == 7) grade[x] = 'C'; else if(count[x] == 6) grade[x] = 'D'; else if(count[x] == 5) grade[x] = 'D'; else grade[x] = 'F'; } system("cls"); //Print Key cout<<setw(7)<<"Key"; for(int y=0; y<10; ++y) cout<<score[y][0]; /////////////////////////////////////////////////////////////// HERE //Prints results for(x=0; x<size; ++x) { cout<<endl<<setw(7)<<student[x]; for(y=0; y<10; ++y) { if(score[y][0] != score[y][x]) { Color_Red cout<<score[y][x+1]; } else if(score[y][0] == score[y][x]) { Color_Green cout<<score[y][x+1]; } } // Color_White cout<<" # Correct: "<<setw(5)<<count[x]<<"Grade: "<<grade[x]; } cout<<endl<<endl; ///////////////////////////////////////////////////////////////// TO HERE //Class Average double avg = 0; for(x=0; x<size; ++x) { avg = avg + count[x]; } avg = avg / size; cout<<"Class Average: "<<avg<<" Correct"<<endl; //Class Letter Average char letter; if(avg == 10) letter = 'A'; else if(avg == 9) letter = 'B'; else if(avg == 8) letter= 'C'; else if(avg == 7) letter = 'C'; else if(avg == 6) letter = 'D'; else if(avg == 5) letter = 'D'; else letter = 'F'; cout<<"Letter Average: "<<letter<<endl<<endl; return 0; }



LinkBack URL
About LinkBacks


