[cpp] TheCpp.cpp

Viewer

copydownloadembedprintName: TheCpp.cpp
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include "LearningCpp.h"
  3.  
  4. #define check_leap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
  5.  
  6. NotLearning::NotLearning()  {
  7.  
  8.     ID = rand() % 1001 + 101;
  9.     average = ((double)rand() * (100- 0.)) / (double)RAND_MAX + 0.;
  10.  
  11.     static const std::string nameList[] = { "AHMET""ABRAHAM""ABIGAIL""ABBIE""AHMET""ELIZABETH""ELLA""ELIZABETH""AHMET""ELLEN""ELLEN""ELLEN""EPIPHANY""EPPIE""ETTA""EULA""FOREST""FORD""FOSTER""FOX",
  12.                                     "FOREST""FORD""FOSTER""FOX""EPIPHANY""EPPIE""ETTA""EULA""ABIGAIL""ABBIE""AHMET""ELIZABETH""ELLA""ABRAHAM""ABIGAIL""ABBIE""AHMET""ELIZABETH""ELLA""EULA",
  13.                                     "AHMET""ABRAHAM""ABIGAIL""ABBIE""AHMET""ELIZABETH""ELLA""ELIZABETH""AHMET""ELLEN""ELLEN""ELLEN""EPIPHANY""EPPIE""ETTA""EULA""FOREST""FORD""FOSTER""FOX",
  14.                                     "FOREST""FORD""FOSTER""FOX""EPIPHANY""EPPIE""ETTA""EULA""ABIGAIL""ABBIE""AHMET""ELIZABETH""ELLA""ABRAHAM""ABIGAIL""ABBIE""AHMET""ELIZABETH""ELLA""EULA",
  15.     };
  16.     name = nameList[rand() % 80];
  17.  
  18.     static const std::string surnameList[] = { "JOHNSON""ABBESTEGE""WILSON""JOHNSON""ABBESTEGE""HARRIS""JOHNSON""HARRIS""WILSON""JOHNSON""GARCIA""GARCIA""JOHNSON""RODRIGUEZ""RODRIGUEZ""COLEMAN""WILSON",
  19.                                       "JOHNSON""ABBESTEGE""WILSON""JOHNSON",     "GARCIA""GARCIA""JOHNSON""RODRIGUEZ""RODRIGUEZ"     ,  "ABBESTEGE""HARRIS""JOHNSON""HARRIS""WILSON""JOHNSON""GARCIA",
  20.                                       "JOHNSON""ABBESTEGE""WILSON""JOHNSON""ABBESTEGE""HARRIS""JOHNSON""HARRIS""WILSON""JOHNSON""GARCIA""GARCIA""JOHNSON""RODRIGUEZ""RODRIGUEZ""COLEMAN""WILSON",
  21.                                       "WILSON""JOHNSON""GARCIA""GARCIA""JOHNSON""RODRIGUEZ""RODRIGUEZ""COLEMAN""WILSON""JOHNSON""ABBESTEGE""WILSON""ABBESTEGE""HARRIS""JOHNSON""HARRIS",
  22.                                       "WILSON""JOHNSON""GARCIA""GARCIA""JOHNSON""RODRIGUEZ""RODRIGUEZ""COLEMAN""WILSON""JOHNSON""ABBESTEGE""WILSON""JOHNSON""ABBESTEGE",
  23.     };
  24.     surname = surnameList[rand() % 80];
  25.  
  26.     static const std::string  cityList[] = { "Alabama""Alaska""Arizona""Arkansas""California""Colorado""Connecticut""Delaware""Florida""Georgia""Hawaii""Connecticut""Delaware""Florida""Georgia""Hawaii""Colorado",
  27.                                  "Connecticut""Delaware""Florida""Georgia""Hawaii""Connecticut""Delaware""Florida""Georgia""Hawaii""Connecticut""Delaware""Louisiana""Maine""Maryland""Massachusetts",
  28.                                  "Idaho""Illinois""Indiana""Iowa""Kansas""Kentucky""Louisiana""Maine""Maryland""Massachusetts""Michigan""Connecticut""Delaware""Florida""Georgia""Hawaii""Connecticut""Delaware",
  29.                                  "Delaware""Florida""Georgia""Hawaii""Connecticut""Delaware""Louisiana""Maine""Maryland""Massachusetts""Connecticut""Delaware""Florida""Georgia""Hawaii""Connecticut""Delaware",
  30.                                  "Florida""Georgia""Hawaii""Alabama""Alaska""Arizona""Arkansas""California""Colorado""Connecticut""Delaware""Florida"
  31.     };
  32.     city = cityList[rand() % 80];
  33.     
  34.     year = rand() % (2020 - 1989 + 1) + 1989;
  35.     static const int daytabs[][13] = {
  36.                 {0312831303130313130313031},
  37.                 {0312931303130313130313031},
  38.     };
  39.     static const std::string pmons[] = { "","Ocak","Subat","Mart","Nisan","Mayis","Haziran","Temmuz","Agustos","Eylul","Ekim","Kasim","Aralik" };
  40.     int counter_date = rand() % 12 + 1;
  41.     day = daytabs[check_leap(year)][counter_date];
  42.     month = pmons[counter_date];
  43. }
  44.  
  45. int NotLearning::getID()const
  46. {
  47.     return ID;
  48. }
  49.  
  50. int NotLearning::getDay()const
  51. {
  52.     return day;
  53. }
  54.  
  55. int NotLearning::getYear()const
  56. {
  57.     return year;
  58. }
  59.  
  60. double NotLearning::getAverage()const
  61. {
  62.     return average;
  63. }
  64.  
  65. std::string NotLearning::getName()const
  66. {
  67.     return name;
  68. }
  69.  
  70. std::string NotLearning::getSurname()const
  71. {
  72.     return surname;
  73. }
  74.  
  75. std::string NotLearning::getCity()const
  76. {
  77.     return city;
  78. }
  79.  
  80. std::string NotLearning::getMonth()const
  81. {
  82.     return month;
  83. }
  84.  
  85. void fillVector(std::vector<NotLearning>& newClass)
  86. {
  87.     int total;
  88.     std::cin >> total;
  89.  
  90.     for (int i = 0; i < total; i++)
  91.     {
  92.         NotLearning newStudent;
  93.         newClass.push_back(newStudent);
  94.     }
  95. }
  96.  
  97. void showVector(const std::vector<NotLearning> newClass)
  98. {
  99.     unsigned int size = newClass.size();
  100.     std::cout << "Total size of vector: " << size << std::endl;
  101.     std::cout << "Total capacity of vector: " << newClass.capacity() << std::endl;
  102.  
  103.     for (unsigned int i = 0; i < size; i++)
  104.     {
  105.         std::cout << "Student " << i << ": " << std::flush;
  106.         std::cout << newClass[i].getID() << " " << std::flush;
  107.         std::cout << newClass[i].getAverage() << " " << std::flush;
  108.         std::cout << newClass[i].getName() << " " << std::flush;
  109.         std::cout << newClass[i].getSurname() << " " << std::flush;
  110.         std::cout << newClass[i].getCity() << " " << std::flush;
  111.         std::cout << newClass[i].getDay() << " " << std::flush;
  112.         std::cout << newClass[i].getMonth() << " " << std::flush;
  113.         std::cout << newClass[i].getYear() << " " << std::endl;
  114.     }
  115.     std::cout << std::endl;
  116. }
  117.  
  118. bool cmp_by_id(NotLearning& one, NotLearning& two)
  119. {
  120.     return one.getID() < two.getID();
  121. }
  122.  
  123. bool cmp_by_average(NotLearning& one, NotLearning& two)
  124. {
  125.     return (one.getAverage() < two.getAverage());
  126. }
  127.  
  128. bool cmp_by_name(NotLearning& one, NotLearning& two)
  129. {
  130.     return one.getName() < two.getName();
  131. }
  132.  
  133. bool cmp_by_surname(NotLearning& one, NotLearning& two)
  134. {
  135.     return one.getSurname() < two.getSurname();
  136. }
  137.  
  138. bool cmp_by_city(NotLearning& one, NotLearning& two)
  139. {
  140.     return one.getCity() < two.getCity();
  141. }
  142.  
  143. bool cmp_by_day(NotLearning& one, NotLearning& two)
  144. {
  145.     return one.getDay() < two.getDay();
  146. }
  147.  
  148. bool cmp_by_month(NotLearning& one, NotLearning& two)
  149. {
  150.     return one.getMonth() < two.getMonth();
  151. }
  152.  
  153. bool cmp_by_year(NotLearning& one, NotLearning& two)
  154. {
  155.     return one.getYear() < two.getYear();
  156. }
  157.  
  158. //Sorting the vector more detailed is still under construction.
  159. bool cmp_by_detail(NotLearning& one, NotLearning& two)
  160. {
  161.  
  162.     int cmp_result = (int)cmp_by_average(one, two);
  163.     if (cmp_result)
  164.         return cmp_result;
  165.  
  166.     cmp_result = cmp_by_id(one, two);
  167.     if (cmp_result)
  168.         return cmp_result;
  169.  
  170.     cmp_result = cmp_by_name(one, two);
  171.     if (cmp_result)
  172.         return cmp_result;
  173.  
  174.     cmp_result = cmp_by_surname(one, two);
  175.     if (cmp_result)
  176.         return cmp_result;
  177.  
  178.     cmp_result = cmp_by_city(one, two);
  179.     if (cmp_result)
  180.         return cmp_result;
  181.  
  182.     cmp_result = cmp_by_day(one, two);
  183.     if (cmp_result)
  184.         return cmp_result;
  185.  
  186.     cmp_result = cmp_by_month(one, two);
  187.     if (cmp_result)
  188.         return cmp_result;
  189.  
  190.     cmp_result = cmp_by_year(one, two);
  191.     if (cmp_result)
  192.         return cmp_result;
  193.  
  194.     return false;
  195.  
  196. }
  197.  
  198. void sortVectorByID(std::vector<NotLearning>& newClass)
  199. {
  200.    // std::sort(newClass.begin(), newClass.end(), [](NotLearning& one, NotLearning& two) { return one.getID() < two.getID(); });
  201.     std::sort(newClass.begin(), newClass.end(), cmp_by_id);
  202. }
  203.  
  204. void sortVectorByAverage(std::vector<NotLearning>& newClass)
  205. {
  206.     //std::sort(newClass.begin(), newClass.end(), [](NotLearning& one, NotLearning& two) { return one.getAverage() < two.getAverage(); });
  207.     std::sort(newClass.begin(), newClass.end(),cmp_by_average);
  208. }
  209.  
  210. void sortVectorByName(std::vector<NotLearning>& newClass)
  211. {
  212.     //std::sort(newClass.begin(), newClass.end(), [](NotLearning& one, NotLearning& two) { return one.getName() < two.getName(); });
  213.     std::sort(newClass.begin(), newClass.end(), cmp_by_name);
  214.  
  215. }
  216.  
  217. void sortVectorBySurname(std::vector<NotLearning>& newClass)
  218. {
  219.     //std::sort(newClass.begin(), newClass.end(), [](NotLearning& one, NotLearning& two) { return one.getSurname() < two.getSurname(); });
  220.     std::sort(newClass.begin(), newClass.end(), cmp_by_surname);
  221.  
  222. }
  223.  
  224. void sortVectorByCity(std::vector<NotLearning>& newClass)
  225. {
  226.     //std::sort(newClass.begin(), newClass.end(), [](NotLearning& one, NotLearning& two) { return one.getCity() < two.getCity(); });
  227.     std::sort(newClass.begin(), newClass.end(), cmp_by_city);
  228.  
  229. }
  230.  
  231. void sortVectorByDay(std::vector<NotLearning>& newClass)
  232. {
  233.     //std::sort(newClass.begin(), newClass.end(), [](NotLearning& one, NotLearning& two) { return one.getDay() < two.getDay(); });
  234.     std::sort(newClass.begin(), newClass.end(), cmp_by_day);
  235.  
  236. }
  237.  
  238. void sortVectorByMonth(std::vector<NotLearning>& newClass)
  239. {
  240.     //std::sort(newClass.begin(), newClass.end(), [](NotLearning& one, NotLearning& two) { return one.getMonth() < two.getMonth(); });
  241.     std::sort(newClass.begin(), newClass.end(), cmp_by_month);
  242.  
  243. }
  244.  
  245. void sortVectorByYear(std::vector<NotLearning>& newClass)
  246. {
  247.    //std::sort(newClass.begin(), newClass.end(), [](NotLearning& one, NotLearning& two) { return one.getYear() < two.getYear(); });
  248.      std::sort(newClass.begin(), newClass.end(), cmp_by_year);
  249.  
  250. }
  251.  
  252. //Sorting the vector more detailed is still under construction.
  253. void sortVectorByDetail(std::vector<NotLearning>& newClass)
  254. {
  255.     std::sort(newClass.begin(), newClass.end(), cmp_by_detail);
  256. }
  257.  
  258.  

Editor

You can edit this paste and save as new: