Skip to content

Commit

Permalink
Changed message text
Browse files Browse the repository at this point in the history
  • Loading branch information
emilisb committed Feb 17, 2019
1 parent a596a46 commit d28ee60
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 37 deletions.
4 changes: 2 additions & 2 deletions main_array.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ vector<Student> getStudents(bool useRandom) {

while (filling) {
Student student;
cout << "Vardas: ";
cout << "Vardas (arba /q jeigu norite baigti vesti duomenis): ";
cin >> student.firstName;
if (student.firstName != EXIT_COMMAND) {
cout << endl << "Pavardė: ";
Expand All @@ -74,7 +74,7 @@ vector<Student> getStudents(bool useRandom) {
bool fillingHomework = true;

while (fillingHomework) {
cout << endl << "Namų darbų rez.: ";
cout << endl << "Namų darbų rez. (arba 0 jei norite baigti vesti duomenis): ";
cin >> homeworkResult;
if (cin.fail()) {
// discard 'bad' character(s)
Expand Down
70 changes: 35 additions & 35 deletions main_vector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,35 +32,35 @@ struct Student {

vector<Student> getStudents(bool useRandom) {
vector<Student> students;

bool filling = true;
unsigned int homeworkResult;

while (filling) {
Student student;
cout << "Vardas: ";
cout << "Vardas (arba /q jeigu norite baigti vesti duomenis): ";
cin >> student.firstName;
if (student.firstName != EXIT_COMMAND) {
cout << endl << "Pavardė: ";
cin >> student.lastName;

if (useRandom) {
std::random_device rd; // obtain a random number from hardware
std::mt19937 eng(rd()); // seed the generator
std::uniform_int_distribution<> distr(1, 10); // define the range

int numOfHomework = distr(eng);

for (int i = 0; i < numOfHomework; i++) {
student.homeworkResults.push_back(distr(eng));
}

student.examResult = distr(eng);
} else {
bool fillingHomework = true;

while (fillingHomework) {
cout << endl << "Namų darbų rez.: ";
cout << endl << "Namų darbų rez. (arba 0 jei norite baigti vesti duomenis): ";
cin >> homeworkResult;
if (cin.fail()) {
// discard 'bad' character(s)
Expand All @@ -73,38 +73,38 @@ vector<Student> getStudents(bool useRandom) {
fillingHomework = false;
}
}

cout << endl << "Egzamino rez.: ";
cin >> student.examResult;
cout << endl;
}

students.push_back(student);
} else {
filling = false;
}
}

return students;
}

int maxFirstNameLength(const vector<Student> &students) {
int length = 6; // default value is length of string "Vardas"

for (auto &student : students) {
length = std::max(static_cast<int>(student.firstName.length()), length);
}

return length + 3;
}

int maxLastNameLength(const vector<Student> &students) {
int length = 7; // default value is length of string "Pavarde"

for (auto &student : students) {
length = std::max(static_cast<int>(student.lastName.length()), length);
}

return length + 3;
}

Expand All @@ -113,17 +113,17 @@ void printResults(const vector<Student> &students, char mode) {
int lastNameLength = maxLastNameLength(students);
string modeLabel = (mode == 'v' ? "Vid." : "Med.");
string finalResultLabel = "Galutinis (" + modeLabel + ")";

cout << std::left
<< std::setw(firstNameLength) << "Vardas"
<< std::setw(lastNameLength) << "Pavardė"
<< std::setw(finalResultLabel.length()) << finalResultLabel
<< endl;

string separator = string(firstNameLength + lastNameLength + finalResultLabel.length(), '-');

cout << separator << endl;

for (auto &student : students) {
cout << std::left
<< std::setw(firstNameLength) << student.firstName
Expand All @@ -135,90 +135,90 @@ void printResults(const vector<Student> &students, char mode) {

char getMode() {
char mode = '\0';

while (mode != 'm' && mode != 'v') {
cout
<< "Ar norite naudoti vidurkį (v) ar medianą (m)?" << endl
<< "v - vidurkį" << endl
<< "m - medianą" << endl;
cin >> mode;

if (cin.fail()) {
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
}

return mode;
}

void calculateAverage(vector<Student> &students) {
for (auto &student : students) {
unsigned int sum = 0;
double average = 0;

if (!student.homeworkResults.empty()) {
for (int i = 0; i < student.homeworkResults.size(); i++) {
sum += student.homeworkResults.at(i);
}

average = (double)sum / student.homeworkResults.size();
}

student.finalResult = 0.4 * average + 0.6 * student.examResult;
}
}

void calculateMedian(vector<Student> &students) {
for (auto &student : students) {
double median = 0;

if (!student.homeworkResults.empty()) {
int results = student.homeworkResults.size();
std::sort(student.homeworkResults.begin(), student.homeworkResults.end());

if (results % 2 != 0) {
median = student.homeworkResults.at(results/2);
} else {
median = (double)(student.homeworkResults.at((results-1)/2) + student.homeworkResults.at(results/2))/2.0;
}
}

student.finalResult = 0.4 * median + 0.6 * student.examResult;
}
}

bool getUseRandom() {
char input = '\0';

while (input != 't' && input != 'n') {
cout
<< "Ar norite naudoti atsitiktinius pažymius?" << endl
<< "t - taip" << endl
<< "n - ne" << endl;
cin >> input;

if (cin.fail()) {
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
}

return input == 't';
}

int main(int argc, const char * argv[]) {
bool useRandom = getUseRandom();
vector<Student> students = getStudents(useRandom);
char mode = getMode();

if (mode == 'v') {
calculateAverage(students);
} else if (mode == 'm') {
calculateMedian(students);
}

printResults(students, mode);

return 0;
}

0 comments on commit d28ee60

Please sign in to comment.