mirror of
				https://github.com/dancojocaru2000/y3s2-cciot-hw.git
				synced 2025-11-04 07:56:32 +02:00 
			
		
		
		
	Corrected insertion implementation
This commit is contained in:
		
							parent
							
								
									12f46ca7e7
								
							
						
					
					
						commit
						4692b428f6
					
				
					 1 changed files with 25 additions and 3 deletions
				
			
		| 
						 | 
					@ -137,7 +137,26 @@ void insert_student(std::vector<Student>& students) {
 | 
				
			||||||
		std::getline(cin, tmp);
 | 
							std::getline(cin, tmp);
 | 
				
			||||||
		courses_grades.emplace_back(course_name, grade);
 | 
							courses_grades.emplace_back(course_name, grade);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	cout << "Added student." << endl;
 | 
						cout << "Position to insert after? ";
 | 
				
			||||||
 | 
						int k;
 | 
				
			||||||
 | 
						cin >> k;
 | 
				
			||||||
 | 
						if (!(-1 <= k && k < students.size())) {
 | 
				
			||||||
 | 
							cout << "Position " << k << " doesn't exist. Insert at beginning or end?" << endl;
 | 
				
			||||||
 | 
							cout << "1. Beginning" << endl;
 | 
				
			||||||
 | 
							cout << "2. End" << endl;
 | 
				
			||||||
 | 
							cin >> k;
 | 
				
			||||||
 | 
							switch (k) {
 | 
				
			||||||
 | 
							case 1:
 | 
				
			||||||
 | 
								k = -1;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case 2:
 | 
				
			||||||
 | 
								k = students.size() - 1;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
								cout << "Invalid choice!" << endl;
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Student new_student;
 | 
						Student new_student;
 | 
				
			||||||
	new_student.set_name(name);
 | 
						new_student.set_name(name);
 | 
				
			||||||
| 
						 | 
					@ -146,7 +165,9 @@ void insert_student(std::vector<Student>& students) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	new_student.set_year(year);
 | 
						new_student.set_year(year);
 | 
				
			||||||
	new_student.set_course_grades(courses_grades);
 | 
						new_student.set_course_grades(courses_grades);
 | 
				
			||||||
	students.push_back(new_student);
 | 
						students.insert(students.begin() + (k + 1), new_student);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						cout << "Added student." << endl;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int remove_alt5(std::vector<Student>& students) {
 | 
					int remove_alt5(std::vector<Student>& students) {
 | 
				
			||||||
| 
						 | 
					@ -274,11 +295,12 @@ int main() {
 | 
				
			||||||
		case 5:
 | 
							case 5:
 | 
				
			||||||
			insert_student(students);
 | 
								insert_student(students);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		case 6:
 | 
							case 6: {
 | 
				
			||||||
			// remove average less than 5
 | 
								// remove average less than 5
 | 
				
			||||||
			int removed = remove_alt5(students);
 | 
								int removed = remove_alt5(students);
 | 
				
			||||||
			cout << "Removed " << removed << " student" << (removed == 1 ? "" : "s") << endl;
 | 
								cout << "Removed " << removed << " student" << (removed == 1 ? "" : "s") << endl;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			cout << "Unknown choice!" << endl;
 | 
								cout << "Unknown choice!" << endl;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue