1 / 13

Managing Student Data with Arrays and Vectors in C++

This guide demonstrates how to effectively manage and manipulate student data using arrays and vectors in C++. Key concepts include creating structures to store student information, utilizing one-dimensional and two-dimensional arrays, and employing the STL vector and deque for dynamic memory management. The example showcases how to calculate and retrieve student GPAs, check data within structures, and implement basic operations like input and output of student details, making it a practical resource for understanding data handling in programming.

pia
Télécharger la présentation

Managing Student Data with Arrays and Vectors in C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Homogeneous aggregate name: Tom, John, student-3, student_4,........, student-20 mid1: 70, 67, 86, 59, ........, 80 final: 69, 77, 79, 64, ........, 90 GPA: 3.02, 2.89, 3.21, 2.78, ........, 3.67 // Using array string name[20]; int mid1[20]; int final[20]; double GPA[20]; name[0] = "Tom"; GPA[2] = 3.21; // Using tvector class #include "tvector.h" .............. tvector<string> name(20); tvector<int> mid1(20); tvector<int> final(20); tvector<double> GPA(20); name[1] = "John"; GPA[19] = 3.67;

  2. Search in a tvector // Using tvector class #include "tvector.h" .............. tvector<string> name(20); tvector<int> mid1(20); tvector<int> final(20); tvector<double> GPA(20); ..... ..... // What is Susan's GAP? for (int i=0; i < name.length(); i++) { if (name[i] == "Susan") cout << GPA[i]; }

  3. What can be in an Array // Using tvector class ..... ..... struct student { string name; int mid1; int final; double GPA; }; ...... struct student class101[20]; ..... // What is Susan's GAP? for (int i=0; i < class101.length(); i++) { if ( (class101[i]).name == "Susan") cout << (class101[i]).GPA; }

  4. Enumerated Types Sunday Monday Tuesday Wednesday Thursday Friday Saturday Monday Tuesday Wednesday Thursday Friday Saturday Sunday enum day {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}; tvector<int> MyclassHr(7); MyclassHr[Monday] = 2; MyclassHr[Tuesday] = MyclassHr[Thursday] = 0; MyclassHr[Wednesday] = 4; day ThreeDays[3]; day ADay; ThreeDay[0]=Saturday; ...... if (ADay == Saturday || ADay == Sunday) cout << "It's weekend"; day FirstDay = day(0);

  5. Two dimensional array, Matrix + = // Using array int A[3][3]; int B[3][3]; int C[3][3]; A[1][2] = 3; A[1][1] = 1; C[2][1] = A[2][1]+B[2][1]; // Using apmatrix class #include "apmatrix.h" .............. apmatrix<int> A(3,3); apmatrix<int> B(3,3); apmatrix<int> C(3,3); A[1][2] = 3; A[1][1] = 1; C[2][1] = A[2][1]+B[2][1];

  6. Operation on Matrix // Using apmatrix class #include "apmatrix.h" .............. apmatrix<int> A(3,3); apmatrix<int> B(3,3); apmatrix<int> C(3,3); int i,i; ..... ..... for (i=0;i<A.numrows();i++) for (j=0;j<A.numcols();j++) C[i][j] = A[i][j] + B[i][j]; Easy problem: How to printout a matrix? Challenging problem: How to do multiplication?

  7. <vector> in STL (Standard Template Library) #include <iostream> #include <vector> #include <string> .............. struct student { string name; int ssn; }; ............... student s; vector<student> CS2; while (true) { cout << "Input SSN:"; cin >> s.ssn; if (s.ssn == 0) break; cout << "Input name:"; cin >> s.name; CS2.push_back(s); } for (int i=0;i<CS2.size();i++) { cout << "\nName:" << CS2[i].name << " "; cout << "SSN:" << CS2[i].ssn; } CS2 CS2[0] CS2[1] CS2[2] CS2[3]

  8. Resize a vector CS2 CS2[0] CS2[1] CS2[2] the last push back here CS2[3] CS2[4] CS2.resize(6) CS2[5]

  9. Reserve a vector CS2 CS2[0] CS2[1] CS2[2] the last push back here CS2[3] CS2[4] CS2.resize(6) CS2[5] CS2.reserve(8)

  10. pop back a vector CS2 CS2[0] size CS2[1] .... CS2.resize(6); CS2.pop_back(); CS2.pop_back(); CS2.pop_back(); CS2[2] reserved CS2[3] CS2[4] CS2[5]

  11. Stack and Queue Stack: LCFS (Last Come First Service) c5 c4 Queue: FCFS (First Come First Service) c5 c1 Back Front

  12. <deque> in STL (Double Ended Queue) #include <iostream> #include <deque> #include <string> .............. deque<student> CS2; .............. while (true) { cout << "Input SSN:"; cin >> s.ssn; if (s.ssn == 0) break; cout << "Input name:"; cin >> s.name; CS2.push_front(s); CS2.push_back(s); } for (int i=0;i<CS2.size();i++) { cout << "\nName:" << CS2[i].name << " "; cout << "SSN:" << CS2[i].ssn; } CS2 CS2[0] CS2[1] CS2[2] CS2[3]

  13. pop back and pop front a deque CS2 CS2[0] CS2[0] CS2 CS2[1] CS2[0] CS2[2] .... CS2.pop_front(); CS2.pop_back(); CS2[1] CS2[3] CS2[2] CS2[4] CS2[4]

More Related