int main() { auto student0 = get_student(0); std::cout << "ID: 0, " << "GPA: " << std::get<0>(student0) << ", " << "grade: " << std::get<1>(student0) << ", " << "name: " << std::get<2>(student0) << '\n'; auto student3 = get_student(3); std::cout << "ID: 3, " << "GPA: " << std::get<0>(student3) << ", " << "grade: " << std::get<1>(student3) << ", " << "name: " << std::get<2>(student3) << '\n'; double gpa1; char grade1; std::string name1; std::tie(gpa1, grade1, name1) = get_student(1); std::cout << "ID: 1, " << "GPA: " << gpa1 << ", " << "grade: " << grade1 << ", " << "name: " << name1 << '\n'; double gpa3; char grade3; std::string name3; std::tie(gpa3, grade3, name3) = get_student(3); std::cout << "ID: 3, " << "GPA: " << gpa3 << ", " << "grade: " << grade3 << ", " << "name: " << name3 << '\n'; }
int remove_student_by_student_number(enrollment_node *enrollmentList, student_node *studentList, int student_number) { student *myStudent = get_student(student_number, studentList); if (myStudent == NULL) { //didn't find the student return 0; } student_node *iterator = studentList; while (iterator->next->current->student_number != myStudent->student_number) { //I don't have to check for NULL because I alredy know it contains it iterator = iterator->next; } student_node *studentToRemove = iterator->next; iterator->next = iterator->next->next; //remove from the student list enrollment_node *enrollment_iterator = enrollmentList; while(enrollment_iterator->next != NULL) { if (enrollment_iterator->next->current->e_student->student_number == studentToRemove->current->student_number) { enrollment_node *enrollment_to_delete = enrollment_iterator->next; enrollment_iterator->next=enrollment_iterator->next->next; free(enrollment_to_delete); } enrollment_iterator=enrollment_iterator->next; if (enrollment_iterator == NULL) { break; } } free(studentToRemove->current->firstName); free(studentToRemove->current); free(studentToRemove); return 1; }
void print_course_for_student(enrollment_node *enrollmentList, student_node *studentList, int student_number) { student *myStudent = get_student(student_number, studentList); if (myStudent == NULL) { printf("Student number %d: isn't in the database\n", student_number); return; } printf("Courses for student number %d:\n", student_number); course_node *studentsCourses = get_students_courses(enrollmentList, myStudent); print_courses(studentsCourses); }
void readEnrollments(enrollment_node *enrollmentList, student_node *studentList, course_node *courseList, char *s) { int student_number; int course_number; if (sscanf(s, "E %d %d", &student_number, &course_number) > 0) { student *myStudent = get_student(student_number, studentList); course *myCourse = get_course(course_number, courseList); enrollment *newEnrollment = create_enrollment(myStudent, myCourse); add_enrollment(enrollmentList, newEnrollment); } }
int main() { vector<tuple<double, char, std::string>> vectuple; auto student0 = get_student(0); vectuple.push_back(student0); std::cout << "ID: 0, " << "GPA: " << std::get<0>(student0) << ", " << "grade: " << std::get<1>(student0) << ", " << "name: " << std::get<2>(student0) << '\n'; double gpa1; char grade1; std::string name1; std::tie(gpa1, grade1, name1) = get_student(1); std::cout << "ID: 1, " << "GPA: " << gpa1 << ", " << "grade: " << grade1 << ", " << "name: " << name1 << '\n'; auto student1 = std::tie(gpa1, grade1, name1); vectuple.push_back(student1); auto it = find_if(vectuple.begin(), vectuple.end(), [](tuple<double, char, std::string> const & elem) { return std::get<0>(elem) == 3.8; }); //for (auto it = vectuple.begin(); it != vectuple.end(); ++it) { cout << "GPA: " << std::get<0>(*it) << ", " << "grade: " << std::get<1>(*it) << ", " << "name: " << std::get<2>(*it) << '\n'; } return 0; }
int enrol_student(enrollment_node *enrollmentList, student_node *studentList, course_node *courseList, int student_number, int course_number) { student *myStudent = get_student(student_number, studentList); if (myStudent == NULL) { //student doesn't exist printf("Student doesn't exist\n"); return 0; } course *myCourse = get_course(course_number, courseList); if (myCourse == NULL) { //course doesn't exist printf("Course doesn't exist\n"); return 0; } enrollment *myEnrollment = create_enrollment(myStudent, myCourse); add_enrollment(enrollmentList, myEnrollment); return 1; }
int main(void) { //declare the array of students apvector <STUDENT_TYPE> list(10); // input the list of students for(int i = 0; i < 10; i++) { cout<<"Please enter information for student " << i+1 << endl << endl; list[ i ] = get_student( ); //use function to get individual info } // print the array of students one struct at a time for(int j = 0; j < 10; j++) { print_student(list [ j ] ); } return 0; }
int main() { // Set of student id, name, gpa,grade std::set<std::tuple<int,std::string,char,double>> myset; // Current { bool success; std::set<std::tuple<int,std::string,char,double>>::iterator iterator; std::tie(iterator, success) = myset.insert(std::make_tuple(1,"John",'A',4.0)); if (success) { int id; std::string name; char grade; double gpa; std::tie(id, name, grade, gpa) = *iterator; std::cout << "Successfully inserted " << id << " " << " " << name << " " << grade << " " << gpa << "\n"; } } // auto_tie { auto r = AUTO_TIE(iterator, success) = myset.insert(std::make_tuple(2,"Raja",'B',3.1)); if (r.success) { auto s = AUTO_TIE_REF(id, name, grade, gpa) = *r.iterator; std::cout << "Successfully inserted " << s.id << " " << " " << s.name << " " << s.grade << " " << s.gpa << "\n"; } } auto s = AUTO_TIE(id, gpa, name) = get_student(); std::cout << "name: " << s.name << " id: " << s.id << " gpa: " << *s.gpa << "\n"; // Writing the above without macros // The AUTO_TIE(id,gpa,name) above essentially expands to the auto_tie function call below (without the id_gpa_name part) auto id_gpa_name = auto_tie([](auto id_, auto gpa_, auto name_) { struct auto_struct { decltype(id_) id; decltype(gpa_) gpa; decltype(name_) name; }; return static_cast<auto_struct*>(nullptr); }); auto s2 = id_gpa_name = get_student(); std::cout << "name: " << s2.name << " id: " << s2.id << " gpa: " << *s2.gpa << "\n"; // Should be error here // auto s2 = AUTO_TIE_REF(id, gpa, name) = get_student(); std::map<std::string, int> m = { { "John",1 } }; for (auto &p : m) { auto r = AUTO_TIE_REF(key, value) = p; std::cout << r.key << " " << r.value << "\n"; r.value = r.value * 2; } for (auto &p : m) { auto r = AUTO_TIE_REF(key, value) = p; std::cout << r.key << " " << r.value << "\n"; r.value = r.value * 2; } }