Untitled
unknown
c_cpp
2 years ago
19 kB
2
Indexable
#include <iostream> #include <string> #include<windows.h> void textDelay(std::string message,int delay) { for (int i = 0; i < message.length(); i++) { Sleep(delay); std::cout << message[i]; } std::cout << "\n"; } int main() { const int NSubjects = 4; const int NSystemMarks = 2; const int nMeanCommand = 3; const int NComands = 3; const int max_marks = 100; int allMarks[NSubjects][max_marks] = { }; int systemMArks[NSubjects][NSystemMarks] = { }; std::string menu = "Menu: "; const std::string subjects[NSubjects] = { "Russian", "Math", "Physics", "PE" }; const std::string MeanCommand[nMeanCommand] = { "All", "Best subject", "Worst subject" }; const std::string commands[NComands] = { "Add marks", "Show average mark", "Exit" }; //menu + commads std::string AskSubject = "Enter you subject "; std::string AskMarks = "Enter you marks "; std::string Saved = "Ok men, i saved it "; std::string AverageMark = "Bro, what marks do you want to see: "; std::string AnyMArks = "Brovskiy, you dont have any marks yet( "; std::string ByeBye = "Bye bye"; std::string nCommand; std::string EnteredSubject; std::string marks; std::string AverageCommand; bool AllEmpty; bool flag = true; int StatusCommand; int statusObject; int marks_sub; int buffer = 0; int len_marks; int maxLen; int maxLenMean = 0; int maxLenSubject = 0; int MaxLenMarks = 0; int MaxSubject = -1; float MaxAverage = 0; int MinSubject = -1; float MinAverage = 6; int lenSub; int lenMeanMax = 0; int len_mean; int len_mean1; float mean; float mean1; do { //menu textDelay(menu, 45); for (int comand = 1; comand <= NComands; comand++) { std::cout << comand << ") "; textDelay(commands[comand - 1], 40); } do { std::getline(std::cin, nCommand); } while (nCommand == " "); // check what is command if (nCommand == "Add marks" || nCommand == "1" || nCommand == "add marks") { //check entered subject marks_sub = -1; do { textDelay(AskSubject, 35); for (int i = 1; i <= NSubjects; i++) { std::cout << i << ") "; textDelay(subjects[i - 1], 40); } std::getline(std::cin, EnteredSubject); if (EnteredSubject == "Russian" || EnteredSubject == "russian" || EnteredSubject == "1") { marks_sub = 0; } else if (EnteredSubject == "Math" || EnteredSubject == "math" || EnteredSubject == "2") { marks_sub = 1; } else if (EnteredSubject == "Physics" || EnteredSubject == "physics" || EnteredSubject == "3") { marks_sub = 2; } else if (EnteredSubject == "PE" || EnteredSubject == "pe" || EnteredSubject == "4") { marks_sub = 3; } else { textDelay("Brovskiy, i dont know this subject(, select another", 30); } } while (marks_sub == -1); do { //ask for marks textDelay(AskMarks, 30); // проверка на пустоту do { std::getline(std::cin, marks); } while (marks == " "); buffer = 0; len_marks = marks.length(); // считание оценок for (int i = 0; i < len_marks; i++) { switch (marks[i]) { case '2': { buffer += 2; break; }case '3': { buffer += 3; break; }case '4': buffer += 4; break; case '5': buffer += 5; break; default: textDelay("Something is wrong, try again", 30); buffer = -300; i = len_marks; break; } } } while (buffer <= 0); //len marks //sum marks systemMArks[marks_sub][1] += buffer; for (int i = 0; i < len_marks; i++) { switch (marks[i]) { case '2': { allMarks[marks_sub][i + systemMArks[marks_sub][0]] = 2; break; }case '3': { allMarks[marks_sub][i + systemMArks[marks_sub][0]] = 3; break; }case '4': allMarks[marks_sub][i + systemMArks[marks_sub][0]] = 4; break; case '5': allMarks[marks_sub][i + systemMArks[marks_sub][0]] = 5; break; default: break; } } systemMArks[marks_sub][0] += len_marks; lenSub = subjects[marks_sub].length(); if (lenSub > maxLenSubject) { maxLenSubject = lenSub; } if (systemMArks[marks_sub][0] > MaxLenMarks) { MaxLenMarks = systemMArks[marks_sub][0]; } mean1 = trunc(float(systemMArks[marks_sub][1]) / float(systemMArks[marks_sub][0]) * 10) / 10.0; if (mean1 == trunc(mean1)) { len_mean1 = 1; } else { len_mean1 = 3; } if (len_mean1 > maxLenMean) { maxLenMean = len_mean1; } if (mean1 > MaxAverage) { MaxAverage = mean1; MaxSubject = marks_sub; } if (mean1 < MinAverage) { MinAverage = mean1; MinSubject = marks_sub; } textDelay(Saved, 30); } if (nCommand == "Show average mark" || nCommand == "2" || nCommand == "show average mark") { textDelay(AverageMark, 35); int i; for (i = 1; i <= NSubjects; i++) { std::cout << i << ") "; textDelay(subjects[i - 1], 40); }for (int j = 1; j <= nMeanCommand; j++) { std::cout << i + j - 1 << ") "; textDelay(MeanCommand[j - 1], 40); } do { std::getline(std::cin, AverageCommand); } while (AverageCommand == " "); StatusCommand = 0; // 0 = subject; 1 = all; 2 = Best subject; 3 = Worst subject; statusObject = -1; //check if (AverageCommand == "Russian" || AverageCommand == "russian" || AverageCommand == "1") { StatusCommand = 0; statusObject = 0; } else if (AverageCommand == "Math" || AverageCommand == "math" || AverageCommand == "2") { StatusCommand = 0; statusObject = 1; } else if (AverageCommand == "Physics" || AverageCommand == "physics" || AverageCommand == "3") { StatusCommand = 0; statusObject = 2; } else if (AverageCommand == "PE" || AverageCommand == "pe" || AverageCommand == "4") { StatusCommand = 0; statusObject = 3; } else if (AverageCommand == "All" || AverageCommand == "all" || AverageCommand == "5") { StatusCommand = 1; } else if (AverageCommand == "Best subject" || AverageCommand == "best subject" || AverageCommand == "6") { StatusCommand = 2; } else if (AverageCommand == "Worst subject" || AverageCommand == "worst subject" || AverageCommand == "7") { StatusCommand = 3; } if (StatusCommand == 0) { if (systemMArks[statusObject][1] != 0) { mean = trunc(float(systemMArks[statusObject][1]) / float(systemMArks[statusObject][0]) * 10) / 10.0; if (mean == trunc(mean)) { len_mean = 1; } else { len_mean = 3; } std::cout << "+"; //lenght Subject for (int i = 0; i < subjects[statusObject].length(); i++) { std::cout << "-"; } std::cout << "+"; //lenght marks; for (int i = 0; i < systemMArks[statusObject][0]; i++) { std::cout << "-"; } std::cout << "+"; for (int i = 0; i < len_mean; i++) { std::cout << "-"; } std::cout << "+" << "\n"; //new line std::cout << "|"; // object std::cout << subjects[statusObject]; std::cout << "|"; //marks for (int i = 0; i < systemMArks[statusObject][0]; i++) { std::cout << allMarks[statusObject][i]; } std::cout << "|"; std::cout << mean; std::cout << "|" << '\n'; std::cout << "+"; //lenght Subject for (int i = 0; i < subjects[statusObject].length(); i++) { std::cout << "-"; } std::cout << "+"; //lenght marks; for (int i = 0; i < systemMArks[statusObject][0]; i++) { std::cout << "-"; } std::cout << "+"; for (int i = 0; i < len_mean; i++) { std::cout << "-"; } std::cout << "+" << "\n"; } else { textDelay(AnyMArks, 20); } } else if (StatusCommand == 1) { AllEmpty = true; for (int obj = 0; obj < NSubjects; obj++) { if (systemMArks[obj][1] != 0) { AllEmpty = false; } }if(AllEmpty == false){ for (int obj = 0; obj < NSubjects; obj++) { if (systemMArks[obj][1] != 0) { mean = trunc(float(systemMArks[obj][1]) / float(systemMArks[obj][0]) * 10) / 10.0; if (mean == trunc(mean)) { len_mean = 1; } else { len_mean = 3; } std::cout << "+"; for (int i = 0; i < maxLenSubject; i++) { std::cout << "-"; } std::cout << '+'; for (int i = 0; i < MaxLenMarks; i++) { std::cout << "-"; } std::cout << "+"; for (int i = 0; i < maxLenMean; i++) { std::cout << "-"; } std::cout << "+" << "\n"; std::cout << "|"; lenSub = subjects[obj].length(); std::cout << subjects[obj]; for (int i = 0; i < maxLenSubject - lenSub; i++) { std::cout << " "; } std::cout << "|"; for (int i = 0; i < systemMArks[obj][0];i++) { std::cout << allMarks[obj][i]; } for (int i = 0; i < MaxLenMarks - systemMArks[obj][0]; i++) { std::cout << " "; } std::cout << "|"; std::cout << mean; for (int i = 0; i < maxLenMean - len_mean; i++) { std::cout << " "; } std::cout << "|" << "\n"; } }std::cout << "+"; for (int i = 0; i < maxLenSubject; i++) { std::cout << "-"; } std::cout << '+'; for (int i = 0; i < MaxLenMarks; i++) { std::cout << "-"; } std::cout << "+"; for (int i = 0; i < maxLenMean; i++) { std::cout << "-"; } std::cout << "+" << "\n"; } else { textDelay(AnyMArks, 20); } } else if (StatusCommand == 2) { if (MaxSubject != 6) { if (MaxAverage == trunc(MaxAverage)) { len_mean = 1; } else { len_mean = 3; } std::cout << "+"; //lenght Subject for (int i = 0; i < subjects[MaxSubject].length(); i++) { std::cout << "-"; } std::cout << "+"; //lenght marks; for (int i = 0; i < systemMArks[MaxSubject][0]; i++) { std::cout << "-"; } std::cout << "+"; for (int i = 0; i < len_mean; i++) { std::cout << "-"; } std::cout << "+" << "\n"; //new line std::cout << "|"; // object std::cout << subjects[MaxSubject]; std::cout << "|"; //marks for (int i = 0; i < systemMArks[MaxSubject][0]; i++) { std::cout << allMarks[MaxSubject][i]; } std::cout << "|"; std::cout << MaxAverage; std::cout << "|" << '\n'; std::cout << "+"; //lenght Subject for (int i = 0; i < subjects[MaxSubject].length(); i++) { std::cout << "-"; } std::cout << "+"; //lenght marks; for (int i = 0; i < systemMArks[MaxSubject][0]; i++) { std::cout << "-"; } std::cout << "+"; for (int i = 0; i < len_mean; i++) { std::cout << "-"; } std::cout << "+" << "\n"; } else { textDelay(AnyMArks, 20); } } else if (StatusCommand == 3) { if (MinSubject != 6) { if (MinAverage == trunc(MinAverage)) { len_mean = 1; } else { len_mean = 3; } std::cout << "+"; //lenght Subject for (int i = 0; i < subjects[MinSubject].length(); i++) { std::cout << "-"; } std::cout << "+"; //lenght marks; for (int i = 0; i < systemMArks[MinSubject][0]; i++) { std::cout << "-"; } std::cout << "+"; for (int i = 0; i < len_mean; i++) { std::cout << "-"; } std::cout << "+" << "\n"; //new line std::cout << "|"; // object std::cout << subjects[MinSubject]; std::cout << "|"; //marks for (int i = 0; i < systemMArks[MinSubject][0]; i++) { std::cout << allMarks[MinSubject][i]; } std::cout << "|"; std::cout << MinAverage; std::cout << "|" << '\n'; std::cout << "+"; //lenght Subject for (int i = 0; i < subjects[MinSubject].length(); i++) { std::cout << "-"; } std::cout << "+"; //lenght marks; for (int i = 0; i < systemMArks[MinSubject][0]; i++) { std::cout << "-"; } std::cout << "+"; for (int i = 0; i < len_mean; i++) { std::cout << "-"; } std::cout << "+" << "\n"; } else { textDelay(AnyMArks, 20); } } }if (nCommand == "Exit" || nCommand == "3" || nCommand == "exit") { flag = false; textDelay(ByeBye, 40); } } while (flag); }
Editor is loading...
Leave a Comment