fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <map>
  4. #include <set>
  5. #include <cmath>
  6. #include <vector>
  7. #include <climits>
  8. #include <string>
  9. #include <algorithm>
  10. #include <sstream>
  11. #include <numeric>
  12. using namespace std;
  13.  
  14. vector<string> split(string haystack, string needle) {
  15. vector<string> result;
  16. int startPos = 0;
  17. int foundPos = haystack.find(needle, startPos);
  18. while (foundPos != string::npos) {
  19. int count = foundPos - startPos;
  20. string token = haystack.substr(startPos, count);
  21. if (!token.empty()) {
  22. result.push_back(token);
  23. }
  24. startPos = foundPos + needle.length();
  25. foundPos = haystack.find(needle, startPos);
  26. }
  27. string token = haystack.substr(startPos, haystack.length() - startPos);
  28. if (!token.empty()) {
  29. result.push_back(token);
  30. }
  31. return result;
  32. }
  33.  
  34. string nameConvert(const string& name) {
  35. const string DELIMITER = " ";
  36. stringstream builder;
  37. auto parts = split(name, DELIMITER);
  38. for (auto part : parts) {
  39. part[0] = toupper(part[0]);
  40. transform(part.begin() + 1, part.end(), part.begin() + 1, ::tolower);
  41. builder << part << DELIMITER;
  42. }
  43. return builder.str();
  44. }
  45.  
  46. string dateConvert(const string& date) {
  47. const string DELIMITER = "/";
  48. stringstream builder;
  49. auto parts = split(date, DELIMITER);
  50. builder << setw(2) << setfill('0') << parts[0] << DELIMITER;
  51. builder << setw(2) << setfill('0') << parts[1] << DELIMITER;
  52. builder << parts[2];
  53. return builder.str();
  54. }
  55.  
  56. class Student {
  57. private:
  58. string name, dob;
  59. double gradeOne, gradeTwo, gradeThree;
  60.  
  61. public:
  62. Student(string name, string dob, double gradeOne, double gradeTwo, double gradeThree) :
  63. name(name), dob(dob), gradeOne(gradeOne), gradeTwo(gradeTwo), gradeThree(gradeThree) {
  64. };
  65.  
  66. public:
  67. string toString() {
  68. stringstream builder;
  69. builder << name << " " << dob << " " << fixed << setprecision(1) << (gradeOne + gradeThree + gradeTwo) << endl;
  70. return builder.str();
  71. }
  72. };
  73.  
  74. int main() {
  75. ios_base::sync_with_stdio(false);
  76. cin.tie(NULL);
  77.  
  78. string name, dob;
  79. double gradeOne, gradeTwo, gradeThree;
  80.  
  81. getline(cin, name);
  82. getline(cin, dob);
  83. cin >> gradeOne >> gradeTwo >> gradeThree;
  84.  
  85. Student student{ name,dob,gradeOne,gradeTwo,gradeThree };
  86.  
  87. cout << student.toString();
  88. return 0;
  89. }
  90.  
  91.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
  0.0