From 869e68986aa8f69af6e7842260a68d1e5c6f796f Mon Sep 17 00:00:00 2001 From: Carlos Maiolino Date: Thu, 10 Jul 2025 22:24:20 +0200 Subject: Add a bunch of code Signed-off-by: Carlos Maiolino --- CPP/Basics/CodeDemo.cpp | 34 ++++++++ CPP/Basics/Ex2/CodeDemo.cpp | 43 ++++++++++ CPP/Basics/Ex2/Makefile | 4 + CPP/Basics/Ex2/records.cpp | 188 +++++++++++++++++++++++++++++++++++++++++ CPP/Basics/Ex2/records.h | 63 ++++++++++++++ CPP/Basics/Makefile | 4 + CPP/Basics/basics.cpp | 150 ++++++++++++++++++++++++++++++++ CPP/Basics/calc.txt | 9 ++ CPP/Basics/cow.cpp | 24 ++++++ CPP/Basics/cow.h | 32 +++++++ CPP/Basics/files.cpp | 66 +++++++++++++++ CPP/Basics/flow.cpp | 117 +++++++++++++++++++++++++ CPP/Basics/functions.cpp | 41 +++++++++ CPP/Basics/main.cpp | 25 ++++++ CPP/Basics/people.txt | 12 +++ CPP/Basics/records/Course.cpp | 19 +++++ CPP/Basics/records/Grade.cpp | 19 +++++ CPP/Basics/records/Student.cpp | 14 +++ CPP/Basics/records/record.h | 41 +++++++++ CPP/Basics/records/records.cpp | 17 ++++ 20 files changed, 922 insertions(+) create mode 100644 CPP/Basics/CodeDemo.cpp create mode 100644 CPP/Basics/Ex2/CodeDemo.cpp create mode 100644 CPP/Basics/Ex2/Makefile create mode 100644 CPP/Basics/Ex2/records.cpp create mode 100644 CPP/Basics/Ex2/records.h create mode 100644 CPP/Basics/Makefile create mode 100644 CPP/Basics/basics.cpp create mode 100644 CPP/Basics/calc.txt create mode 100644 CPP/Basics/cow.cpp create mode 100644 CPP/Basics/cow.h create mode 100644 CPP/Basics/files.cpp create mode 100644 CPP/Basics/flow.cpp create mode 100644 CPP/Basics/functions.cpp create mode 100644 CPP/Basics/main.cpp create mode 100644 CPP/Basics/people.txt create mode 100644 CPP/Basics/records/Course.cpp create mode 100644 CPP/Basics/records/Grade.cpp create mode 100644 CPP/Basics/records/Student.cpp create mode 100644 CPP/Basics/records/record.h create mode 100644 CPP/Basics/records/records.cpp (limited to 'CPP/Basics') diff --git a/CPP/Basics/CodeDemo.cpp b/CPP/Basics/CodeDemo.cpp new file mode 100644 index 0000000..c84d8c0 --- /dev/null +++ b/CPP/Basics/CodeDemo.cpp @@ -0,0 +1,34 @@ +// Learning C++ +// Exercise 06_01 +// Opening a text file for reading, by Eduardo Corpeño + +#include +#include +#include + +using namespace std; + +ifstream inFile; +string str; +int number; +char letter; + +int main(){ + inFile.open("people.txt"); + if (inFile.fail()) + cout << endl << "File not found!" << endl; + else{ + while (!inFile.eof()){ + getline(inFile, str); + cout << str << ", "; + getline(inFile,str); + number = stoi(str); + cout << number << ", "; + getline(inFile, str); + letter = str[0]; + cout << letter << endl; + } + inFile.close(); + } + return (0); +} diff --git a/CPP/Basics/Ex2/CodeDemo.cpp b/CPP/Basics/Ex2/CodeDemo.cpp new file mode 100644 index 0000000..0afcd7a --- /dev/null +++ b/CPP/Basics/Ex2/CodeDemo.cpp @@ -0,0 +1,43 @@ +// Learning C++ +// Challenge 04_05 +// Calculate a GPA, by Eduardo Corpeño + +#include +#include +#include "records.h" + +using namespace std; + +void init_students(); + +StudentRecords SR; +int id; + +int main() +{ + init_students(); + + cout << "Enter a student ID: "; + cin >> id; + + SR.report_card(id); + return 0; +} + +void init_students() +{ + SR.add_student(1,"George P. Burdell"); + SR.add_student(2,"Nancy Rhodes"); + + SR.add_course(1,"Algebra",5); + SR.add_course(2,"Physics",4); + SR.add_course(3,"English",3); + SR.add_course(4,"Economics",4); + + SR.add_grade(1,1,'B'); + SR.add_grade(1,2,'A'); + SR.add_grade(1,3,'C'); + SR.add_grade(2,1,'A'); + SR.add_grade(2,2,'A'); + SR.add_grade(2,4,'B'); +} diff --git a/CPP/Basics/Ex2/Makefile b/CPP/Basics/Ex2/Makefile new file mode 100644 index 0000000..93d17b2 --- /dev/null +++ b/CPP/Basics/Ex2/Makefile @@ -0,0 +1,4 @@ +all: + gcc -o gpa CodeDemo.cpp records.cpp -lstdc++ +clean: + rm gpa diff --git a/CPP/Basics/Ex2/records.cpp b/CPP/Basics/Ex2/records.cpp new file mode 100644 index 0000000..530366a --- /dev/null +++ b/CPP/Basics/Ex2/records.cpp @@ -0,0 +1,188 @@ +#include +#include "records.h" + +using namespace std; + +Student::Student(int the_id, string the_name){ + id = the_id; + name = the_name; +} +int Student::get_id(){ + return id; +} +string Student::get_name(){ + return name; +} + +Course::Course(int the_id, string the_name, unsigned char the_credits){ + id = the_id; + name = the_name; + credits = the_credits; +} +int Course::get_id(){ + return id; +} +string Course::get_name(){ + return name; +} +int Course::get_credits(){ + return credits; +} + + +Grade::Grade(int sid, int cid, char grd){ + student_id = sid; + course_id = cid; + grade = grd; +} +int Grade::get_student_id(){ + return student_id; +} +int Grade::get_course_id(){ + return course_id; +} +char Grade::get_grade(){ + return grade; +} + +/* StudentRecords methods */ + +void StudentRecords::add_student(int sid, string sname) +{ + students.push_back(Student(sid, sname)); +} + +void StudentRecords::add_course(int cid, string cname, + unsigned char ccredits) +{ + courses.push_back(Course(cid, cname, ccredits)); +} + +void StudentRecords::add_grade(int sid, int cid, char grade) +{ + grades.push_back(Grade(sid, cid, grade)); +} + +float StudentRecords::get_num_grade(char letter) +{ + float cur_grade; + switch (letter) { + case 'A': + cur_grade = 4.0f; + break; + case 'B': + cur_grade = 3.0f; + break; + case 'C': + cur_grade = 2.0f; + break; + case 'D': + cur_grade = 1.0f; + break; + case 'F': + cur_grade = 0.0f; + break; + default: + cur_grade = -1; + break; + } + + return cur_grade; +} + +std::string StudentRecords::get_student_name(int sid) +{ + int i = 0; + while (i < students.size() && students[i].get_id() != sid) + i++; + + return students[i].get_name(); +} + +unsigned char StudentRecords::get_course_credits(int cid) +{ + unsigned char creds; + for (Course& c_iter : courses) + if (c_iter.get_id() == cid) { + creds = c_iter.get_credits(); + break; + } + + return creds; +} + +float StudentRecords::get_GPA(int sid) +{ + float points = 0.0f; + float credits = 0.0f; + unsigned char cur_creds; + + for (Grade& g_iter : grades) { + if (g_iter.get_student_id() != sid) + continue; + + cur_creds = get_course_credits(g_iter.get_course_id()); + points += get_num_grade(g_iter.get_grade()) * cur_creds; + credits += cur_creds; + } + + return points / credits; +} + +void StudentRecords::report_card(int sid) +{ + // print a report card on the screen + // name course letter grades and GPA. + std::cout << "REPORT CARD:" << std::endl; + + std::cout << "Student name: " << get_student_name(sid) << std::endl; + + std::cout << "Courses enrolled | Grade" << std::endl; + + for (Grade& sgrade : grades ) { + if (sgrade.get_student_id() != sid) + continue; + + for (Course& scourse : courses) + if (scourse.get_id() == sgrade.get_course_id()) + std::cout << " " << + scourse.get_name() << ": " << + sgrade.get_grade() << std::endl; + } + + std::cout << std::endl; + std::cout << "Student GPA: " << get_GPA(sid) << std::endl; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CPP/Basics/Ex2/records.h b/CPP/Basics/Ex2/records.h new file mode 100644 index 0000000..c0e92c6 --- /dev/null +++ b/CPP/Basics/Ex2/records.h @@ -0,0 +1,63 @@ +#ifndef RECORDS_H +#define RECORDS_H + +#include +#include + +class Student{ +private: + int id; + std::string name; + +public: + Student(int the_id, std::string the_name); + int get_id(); + std::string get_name(); +}; + +class Course{ +private: + int id; + std::string name; + unsigned char credits; + +public: + Course(int the_id, std::string the_name, unsigned char the_credits); + int get_id(); + std::string get_name(); + int get_credits(); +}; + +class Grade{ +private: + int student_id; + int course_id; + char grade; + +public: + Grade(int sid, int cid, char grd); + int get_student_id(); + int get_course_id(); + char get_grade(); +}; + +class StudentRecords { +private: + std::vector students; + std::vector courses; + std::vector grades; + + float get_num_grade(char); + +public: + void add_student(int, std::string); + void add_course(int, std::string, unsigned char); + void add_grade(int, int, char); + + std::string get_student_name(int); + unsigned char get_course_credits(int); + float get_GPA(int); + void report_card(int); +}; + +#endif /* RECORDS_H */ diff --git a/CPP/Basics/Makefile b/CPP/Basics/Makefile new file mode 100644 index 0000000..7735e38 --- /dev/null +++ b/CPP/Basics/Makefile @@ -0,0 +1,4 @@ +all: + gcc -o main cow.cpp main.cpp -lstdc++ +clean: + rm main files flow functions diff --git a/CPP/Basics/basics.cpp b/CPP/Basics/basics.cpp new file mode 100644 index 0000000..1ddd96c --- /dev/null +++ b/CPP/Basics/basics.cpp @@ -0,0 +1,150 @@ +#include +#include +#include // includes C string.h +#include +#include + +#define CAPACITY 5000 +//#define LENGTH 4 + +/* + * cout = Character out + * cin = Character in + * :: == Scope resolution operator + * << == insertion operator + */ + +using namespace std; + +void average() { + int arr[5]; + + arr[0] = 4; + arr[1] = 3; + arr[2] = 5; + arr[3] = 2; + arr[4] = 4; + + int i = 0; + float avg = 0; + + for (i = 0; i < 5; i++) + avg += arr[i]; + + avg /= 5; + + std::cout << "Average: " << avg << std::endl; +} + +void tcast() { + float f = -7.44f; + int32_t s; + uint32_t u; + + s = f; // Implicit type casting from float to int32 + u = s; // Implicit casting from int32 to uint32, we'll end up seeing 2's + // complement version of variable s, but interpreted as an + // unsigned int. + + std::cout << "float: " << f << endl; + std::cout << "int32: " << s << endl; + std::cout << "uint32: " << u << endl; +} + +void strings() { + const int LENGTH = 25; + char ch_arr1[LENGTH] = "Howdy! I'm a string... "; + char ch_arr2[] = "Sup bro?"; + + string std_str1 = "Hi everyone! "; + string std_str2 = "How's everybody doing?"; + + // Concatenate strings the traditional way + strcat(ch_arr1, ch_arr2); + std::cout << ch_arr1 << std::endl; + // Concatenate strings the C++ way using operator overloading + std::cout << std_str1 + std_str2 << std::endl; + std::cout << "Operator overloaded" << std::endl; +} + +void t_inference() { + auto a = 8; + auto b = 214312351235739; + auto c = 3.14f; + auto d = 3.14; + auto e = true; + auto f = 'd'; + + std::cout << "STARTING Type Inference" << std::endl; + std::cout << "Type of a: " << typeid(a).name() << std::endl; + std::cout << "Type of b: " << typeid(b).name() << std::endl; + std::cout << "Type of c: " << typeid(c).name() << std::endl; + std::cout << "Type of d: " << typeid(d).name() << std::endl; + std::cout << "Type of e: " << typeid(e).name() << std::endl; + std::cout << "Type of f: " << typeid(f).name() << std::endl; +} + +void varplay() { + int a, b = 5; + + float c = 2.4f; + double d = 9.234545; + long double ld = 9.234545; + char e = 'e'; + bool myBool = false; + string str = "This is a big string I don't care how it is handled"; + + std::cout << "Size of int: " << sizeof(a) << " sizeof float: " << + sizeof(c) << " sizeof double: " << sizeof(d) << + " sizeof long double: " << sizeof(ld) << " sizeof char: " << + sizeof(e) << " sizeof bool: " << sizeof(myBool) << std::endl; + + std::cout << "This is my string: " << str << std::endl; +} + +int main() { + string str; + +#ifdef CAPACITY + int32_t cap = CAPACITY; + uint32_t small = 37; + + const int LENGTH = 4; + int myArr[LENGTH]; + + myArr[0] = 3; + myArr[1] = 4; + myArr[2] = 5; + myArr[3] = 6; + cap += small; +#endif + + std::cout << "Please enter your first name: "; + cin >> str; + + std::cout << "Hello " << str << ", welcome to the world!" << std::endl; + + // Just relies on using namespace + cout << "Hello World, with namespace" << endl; + +// varplay(); + t_inference(); + +#ifdef DEBUG + std::cout << "DEBUGGING..." << std::endl; + std::cout << "Array size: " << LENGTH << std::endl; + std::cout << "Arr[0] = " << myArr[0] << std::endl; + std::cout << "Arr[1] = " << myArr[1] << std::endl; + std::cout << "Arr[2] = " << myArr[2] << std::endl; + std::cout << "Arr[3] = " << myArr[3] << std::endl; +#endif + +#ifdef CAPACITY + std::cout << "Current CAPS: " << cap << std::endl; +#endif + + strings(); + tcast(); + average(); + return 0; +} diff --git a/CPP/Basics/calc.txt b/CPP/Basics/calc.txt new file mode 100644 index 0000000..8f57534 --- /dev/null +++ b/CPP/Basics/calc.txt @@ -0,0 +1,9 @@ +Ronaldo +25 +J +Cretino +23 +C +Mano dos Pano +23 +M diff --git a/CPP/Basics/cow.cpp b/CPP/Basics/cow.cpp new file mode 100644 index 0000000..96a47d6 --- /dev/null +++ b/CPP/Basics/cow.cpp @@ -0,0 +1,24 @@ +#include "cow.h" + +// Constructor +cow::cow(std::string name_i, int age_i, unsigned char purpose_i) { + name = name_i; + age = age_i; + purpose = purpose_i; +} + +std::string cow::get_name() { + return name; +} + +int cow::get_age() { + return age; +} + +unsigned char cow::get_purpose() { + return purpose; +} + +void cow::set_age(int age_i) { + age = age_i; +} diff --git a/CPP/Basics/cow.h b/CPP/Basics/cow.h new file mode 100644 index 0000000..b9cdaae --- /dev/null +++ b/CPP/Basics/cow.h @@ -0,0 +1,32 @@ +#ifndef COW_H +#define COW_H + +#include + +enum cow_p { + DAIRY, + MEAT, + HIDE, + PET, +}; + +// By default class members are private +class cow { + +private: + std::string name; + int age; + unsigned char purpose; + +public: + // Constructor + cow(std::string name_i, int age_i, unsigned char purpose_i); + + std::string get_name(); + int get_age(); + unsigned char get_purpose(); + + void set_age(int age_i); +}; + +#endif /* COW_H */ diff --git a/CPP/Basics/files.cpp b/CPP/Basics/files.cpp new file mode 100644 index 0000000..1242224 --- /dev/null +++ b/CPP/Basics/files.cpp @@ -0,0 +1,66 @@ +#include +#include +#include + +using namespace std; + +void read_from_file() +{ + ifstream myFile; + string str, str2; + int number; + char letter; + + myFile.open("people.txt"); + + if (myFile.fail()) { + cout << endl << "File not found!" << endl; + } else { + while (!myFile.eof()) { + getline(myFile, str); + cout << str << ", "; + getline(myFile, str); + number = stoi(str); + cout << number << ", "; + getline(myFile, str); + cout << str << endl; + } + myFile.close(); + } +} + +void write_to_file() +{ + ofstream outFile; + float a = 4.333f; + float b = 5.302f; + + outFile.open("calc.txt"); + if (outFile.fail()) { + cout << endl << "Couldn't open the file!" << endl; + } else { + outFile << "Ronaldo" << endl; + outFile << "25" << endl; + outFile << "J" << endl; + outFile << "Cretino" << endl; + outFile << "23" << endl; + outFile << "C" << endl; + outFile << "Mano dos Pano" << endl; + outFile << "23" << endl; + outFile << "M" << endl; + outFile.close(); + cout << "File written successfully!" << endl; + + } +} +int main(void) +{ + + write_to_file(); + read_from_file(); + + // Reading a whole line from the terminal +// getline(cin, str2); +// cout << str2 << endl; + return 0; +} diff --git a/CPP/Basics/flow.cpp b/CPP/Basics/flow.cpp new file mode 100644 index 0000000..82b7062 --- /dev/null +++ b/CPP/Basics/flow.cpp @@ -0,0 +1,117 @@ +#include +#include + +void ifs(void) { + int a = 1024; + bool flag = false; + char letter = 'E'; + + if (a > 1000) + std::cout << "Warning: over 1k" << std::endl; + + if (a % 2) + std::cout << "a is odd" << std::endl; + else + std::cout << "a is even" << std::endl; + + std::cout << "The letter " << letter << " is "; + + if (letter != 'a' && letter != 'e' && letter != 'i' && + letter != 'o' && letter != 'u' && + letter != 'A' && letter != 'E' && letter != 'I' && + letter != 'O' && letter != 'U') + std::cout << "not "; + std::cout << "a vowel" << std::endl; + + if (flag) + std::cout << "The flag is true." << std::endl; +} + +void switches() { + + float num1, num2, result; + char op; + + std::cout << "Enter operand 1: " << std::endl; + std::cin >> num1; + std::cout << "Enter operand 2: " << std::endl; + std::cin >> num2; + std::cout << "Choose operation: + - * /: " << std::endl; + std::cin >> op; + + switch (op) { + case '+': + result = num1 + num2; + break; + case '-': + result = num1 - num2; + break; + case '*': + result = num1 * num2; + break; + case '/': + result = num1 / num2; + break; + default: + std::cout << "Invalid Operation." << std::endl; + return; + } + std::cout << "The result is: " << result << std::endl; +} + +void LWhile() { + + + // Declare and initialize a vector and an iterator + // in this case iterator is a type inside vector class + std::vector numbers = {12, 25, 31, 55, 24, 32, 99}; + std::vector::iterator ptr = numbers.begin(); + + // We can use auto type to avoid the mess up above: + auto ptr_auto = numbers.begin(); + int i = 0; + + while (ptr != numbers.end()) { + std::cout << *ptr << " "; + ptr = std::next(ptr, 1); + } + std::cout << std::endl; + do { + std::cout << numbers[i] << ":" << *ptr_auto << " "; + i++; + ptr_auto = std::next(ptr_auto, 1); + }while(i < numbers.size()); + std::cout << std::endl; +} + +void LFor() { + std::vector numbers = {12, 25, 31, 55, 24, 32, 99}; + std::vector::iterator ptr = numbers.begin(); + float avg = 0; + + for(int i = 0; i < numbers.size() ; i++) + avg += numbers[i]; + + avg /= numbers.size(); + std::cout << "The average is: " << avg << std::endl; + + // C++11 Iterator based for + avg = 0; + + // The iterator will copy the data from each element within the vector, + // to the iterator variable (iter) here. We may want to access by + // reference instead of copying it + // READ AS: for each iter in numbers + for(int iter : numbers) + avg += iter; + avg /= numbers.size(); + std::cout << "The average is: " << avg << std::endl; +} + +int main(void) { + ifs(); + switches(); + LWhile(); + LFor(); + return 0; +} diff --git a/CPP/Basics/functions.cpp b/CPP/Basics/functions.cpp new file mode 100644 index 0000000..5a26992 --- /dev/null +++ b/CPP/Basics/functions.cpp @@ -0,0 +1,41 @@ +#include + +// C++ can pass arguments are references + +// by value +int square(int x) +{ + return x * x; +} + +// swap by value (passing pointers) +void swap(int *x, int *y) +{ + int temp = *x; + *x = *y; + *y = temp; +} + +// Swap by reference - function overload +void swap(int& x, int& y) +{ + int temp = x; + x = y; + y = temp; +} + + +int main(void) { + + int a = 9, b; + b = square(a); + std::cout << "Square of a: " << b << std::endl; + std::cout << "A: " << a << " B: " << b << std::endl; + swap(&a, &b); + std::cout << "Swapping by addr value:" << std::endl; + std::cout << "New A: " << a << " New B: " << b << std::endl; + swap(a, b); + std::cout << "Swapping by reference:" << std::endl; + std::cout << "New A: " << a << " New B: " << b << std::endl; + return 0; +} diff --git a/CPP/Basics/main.cpp b/CPP/Basics/main.cpp new file mode 100644 index 0000000..1b6d751 --- /dev/null +++ b/CPP/Basics/main.cpp @@ -0,0 +1,25 @@ +#include +#include +#include "cow.h" + +int main(void) { + cow *my_cow; + my_cow = new cow("Hildy", 7, PET); + + std::cout << my_cow->get_name() << " is a type - " << + (int)my_cow->get_purpose() << + std::endl; + + std::cout << my_cow->get_name() << " is " << + my_cow->get_age() << " years old" << + std::endl; + + + my_cow->set_age(24); + std::cout << my_cow->get_name() << " is NOW " << + my_cow->get_age() << " years old" << + std::endl; + + delete my_cow; + return 0; +} diff --git a/CPP/Basics/people.txt b/CPP/Basics/people.txt new file mode 100644 index 0000000..b426faf --- /dev/null +++ b/CPP/Basics/people.txt @@ -0,0 +1,12 @@ +Jenny Drake +25 +J +George P. Burdell +62 +G +Jane Rogers +34 +J +Joe Petersen +30 +J \ No newline at end of file diff --git a/CPP/Basics/records/Course.cpp b/CPP/Basics/records/Course.cpp new file mode 100644 index 0000000..0c39e3e --- /dev/null +++ b/CPP/Basics/records/Course.cpp @@ -0,0 +1,19 @@ +#include "record.h" + +Course::Course(int c_id, std::string c_name, unsigned char c_credits) { + id = c_id; + name = c_name; + credits = c_credits; +} + +int Course::get_id(void) { + return id; +} + +int Course::get_credits() { + return credits; +} + +std::string Course::get_name() { + return name; +} diff --git a/CPP/Basics/records/Grade.cpp b/CPP/Basics/records/Grade.cpp new file mode 100644 index 0000000..8a300e6 --- /dev/null +++ b/CPP/Basics/records/Grade.cpp @@ -0,0 +1,19 @@ +#include "record.h" + +Grade::Grade(int g_student_id, int g_course_id, char g_grade) { + student_id = g_student_id; + course_id = g_course_id; + grade = g_grade; +} + +int Grade::get_student_id() { + return student_id; +} + +int Grade::get_course_id() { + return course_id; +} + +char Grade::get_grade() { + return grade; +} diff --git a/CPP/Basics/records/Student.cpp b/CPP/Basics/records/Student.cpp new file mode 100644 index 0000000..d8cccaf --- /dev/null +++ b/CPP/Basics/records/Student.cpp @@ -0,0 +1,14 @@ +#include "record.h" + +Student::Student(int s_id, std::string s_name) { + id = s_id; + name = s_name; +} + +int Student::get_id(void) { + return id; +} + +std::string Student::get_name(void) { + return name; +} diff --git a/CPP/Basics/records/record.h b/CPP/Basics/records/record.h new file mode 100644 index 0000000..ff0a9e7 --- /dev/null +++ b/CPP/Basics/records/record.h @@ -0,0 +1,41 @@ +#ifndef RECORDS_H +#define RECORDS_H +#include + +class Student { +private: + int id; + std::string name; +public: + Student(int s_id, std::string s_name); + int get_id(); + std::string get_name(); +}; + + +class Course { +private: + int id; + std::string name; + unsigned char credits; +public: + Course(int c_id, std::string c_name, unsigned char c_credits); + int get_id(); + std::string get_name(); + int get_credits(); + +}; + +class Grade { +private: + int student_id; + int course_id; + char grade; +public: + Grade(int g_student_id, int g_course_id, char g_grade); + int get_student_id(); + int get_course_id(); + char get_grade(); + +}; +#endif diff --git a/CPP/Basics/records/records.cpp b/CPP/Basics/records/records.cpp new file mode 100644 index 0000000..1052504 --- /dev/null +++ b/CPP/Basics/records/records.cpp @@ -0,0 +1,17 @@ +#include +#include "record.h" + +using namespace std; + +Student my_student(1,"Hilda Jones"); +Course my_course(7,"Physics 101",3); +Grade my_grade(1,7,'B'); + +int main(){ + cout << "Student: " << my_student.get_name() << endl; + cout << "Course: " << my_course.get_name() << endl; + cout << "Credits: " << my_course.get_credits() << endl; + cout << "Grade: " << my_grade.get_grade() << endl; + return (0); +} + -- cgit v1.2.3