0 سمير عبود نشر 26 أكتوبر 2020 أرسل تقرير نشر 26 أكتوبر 2020 مرحباً @Mari Carmen الأسئلة الثلاثة الأولى تطلب منك إنشاء الدالة البانية (constructor) لأصناف الثلاثة (School، Node، Student) أما السؤال الرابع لإنشاء مُدمر (destructor) للصنف Student إنشاء School constructor class school { string Name; Node *Head; int n;//number of classes in school public: school(string name) { this->Name = name; this->n = 0; } }; إنشاء Node constructor class Node { int ID; int NoOfStudents; int NoOfExams; student *t;// a linked list of students is allocated dynamically Node *Next; public: Node(int id) { this->ID = id; this->NoOfStudents = 0; this->NoOfExams = 0; this->t = nullptr; this->Next = nullptr; } }; إنشاء Student constructor class student { long ID; string Name; string Address; float grades[3]; student *below; public: student(long id, string name, string address) { this->ID = id; this->Name = name; this->Address = address; } }; إنشاء Student destructor: يقوم فقط بطباعة الجملة المطلوبة: ~student() { cout << "student destructor is called"; } ليُصبح الكود بهذا الشكل: class student { long ID; string Name; string Address; float grades[3]; student *below; public: student(long id, string name, string address) { this->ID = id; this->Name = name; this->Address = address; } ~student() { cout << "student destructor is called"; } }; class Node { int ID; int NoOfStudents; int NoOfExams; student *t;// a linked list of students is allocated dynamically Node *Next; public: Node(int id) { this->ID = id; this->NoOfStudents = 0; this->NoOfExams = 0; this->t = nullptr; this->Next = nullptr; } }; class school { string Name; Node *Head; int n;//number of classes in school public: school(string name) { this->Name = name; this->n = 0; } }; يُمكنك إنجاز بقية الأسئلة كما يُمكنك الإعتماد على هذه الدروس: سلسلة ++c للمحترفين بالتوفيق. 1 اقتباس
0 ayoubridouani نشر 26 أكتوبر 2020 أرسل تقرير نشر 26 أكتوبر 2020 مرحبا ماري ستجدين ها هنا جواب للأسئلة 6 الموجودة في الباوربوينت مع شرح لها: #include <string> using namespace std; class student{ int ID; string Name; string Address; float grades[3]; student *below; public: // سؤال 3 // هنا قمت بإنشاء البناء // الخاص بالكلاس student(string Name, string Address){ this->Name = Name; this->Address = Address; } // سؤال 4 // هنا قمت بتدمير جميع الأوبجكت الموجودة بالكلاس التي تم حجزها يدويا ~student() { delete below; } }; class Node{ // the node represents a class in school int ID; int NoOfStudents; int NoOfExams; student *t;// a linked list of students is allocated dynamically Node *Next; public: // سؤال 2 // هنا قمت بإنشاء البناء // الخاص بالكلاس Node(string school_name){ this->NoOfStudents = 0; this->NoOfExams = 0; this->Next = NULL; } // سؤال 5 // هنا قمت بتدمير جميع الأوبجكت الموجودة بالكلاس التي تم حجزها يدويا ~student() { delete Next; } }; class school{ string Name; Node *Head; int n;//number of classes in school public: // سؤال 1 // هنا قمت بإنشاء البناء // الخاص بالكلاس school(string school_name){ this->Name = school_name; this->n = 0; } // سؤال 6 // هنا قمت بتدمير جميع الأوبجكت الموجودة بالكلاس التي تم حجزها يدويا ~school() { delete Head; } }; int main(){ return 0; } كما يمكنك من هنا تنفيد البرنامج مباشرة. للمزيد من المعلومات حول البناء constructors في C++ من هنا ومن هنا حول destructors. تحياتي. 1 اقتباس
0 Mari Carmen نشر 26 أكتوبر 2020 الكاتب أرسل تقرير نشر 26 أكتوبر 2020 1. Create a class: This function creates a new class in the school by reading the class information from a text file that has the following format. The class is added to the end of the school linked list. Note that this will call the Node constructor (once)+ the student constructor (multiple times). 2. Read exam grades: This function takes the class ID and the number of the exam (first:0, second:1, Final:2) from keyboard and reads the grades for all students in the class in a certain exam. Sort the students alphabetically then read their grades (this calls the function sort students (8)). 3. Compute student’s average: Take a student’s ID and return his average 4. Add student: Enter class ID, read a student’s information (ID & name & address from keyboard), add a student to the beginning of the class list. Note that this calls the student’s constructor. Also, read (NoOfExams) grades for this student اريد هذه اقتباس
0 سمير عبود نشر 27 أكتوبر 2020 أرسل تقرير نشر 27 أكتوبر 2020 بتاريخ 10 ساعات قال Mari Carmen: 1. Create a class: This function creates a new class in the school by reading the class information from a text file that has the following format. The class is added to the end of the school linked list. Note that this will call the Node constructor (once)+ the student constructor (multiple times). 2. Read exam grades: This function takes the class ID and the number of the exam (first:0, second:1, Final:2) from keyboard and reads the grades for all students in the class in a certain exam. Sort the students alphabetically then read their grades (this calls the function sort students (8)). 3. Compute student’s average: Take a student’s ID and return his average 4. Add student: Enter class ID, read a student’s information (ID & name & address from keyboard), add a student to the beginning of the class list. Note that this calls the student’s constructor. Also, read (NoOfExams) grades for this student اريد هذه مرحباً بك، الأسئلة ليست سهلة و ليست صعبة لكنها تحتاج منك بحث لذلك أنصحك بالتمرن عليها و البحث حتى تستطيعي حلها بخصوص السؤال الأول يطلب منك إنشاء class أي قسم جديد داخل المدرسة و قراءة معلومات القسم من ملف txt مع إدخال كافة الطلاب في القائمة المترابطة الخاصة بالطلاب بإمكانك عمل هذا من خلال الدالة التالية: Node* create_class() { ifstream file("file.txt"); // فتح الملف string line; // إنشاء متغير سيحمل مُحتوى كل سطر من الملف Node* node; // إنشاء مؤشر على كائن من النوع قسم int node_id; // إنشاء متغير سيحمل قيمة ID للقسم التي سنقرأها من الملف int i = 0; // عداد if (file.is_open()) { // فحص إذا كان الملف مفتوح while (getline(file, line)) // عمل حلقة و جلب كل مرة سطر من الملف { stringstream ss(line); // نستخدمه لفصل الكلمات التي في السطر الواحد if (i == 0) { // في حالة السطر الأول ss >> node_id; // الخاصة بالقسم وتخزينها في متغير IDأخذ قيمة ال node = new Node(node_id); // إنشاء القسم } else if(i == 1) { // في حالة السطر الثاني ss >> node->NoOfStudents; // أخذ قيمة عدد الطلاب و تخزينها } else { // من هنا نبدأ في قراءة معلومات الطلاب و كل سطر يحوي معلومات طالب long id; // إنشاء بعض المتغيرات لتخزين البيانات string name; string address; ss >> id; // IDأخذ ال getline(ss, name, ','); // أخذ الإسم getline(ss, address); // أخذ العُنوان student* s = new student(id, name, address); // إنشاء طالب بإستخدام المعلومات s->below = nullptr; //NULL جعل مؤشر الطالب الموالي node->add_student(s); // إضافة الطالب للقسم } i++; // رفع قيمة العداد } file.close (); // غلق الملف } else cout << "Unable to open file"; node->Next = nullptr; // NULL جعل مؤشر القسم التالي return node; // إرجاع مؤشر القسم الذي أنشأناه } بإمكانك تجربة المثال من هنا و هذا مُحتوى الملف: و هذه نتيجة المثال: بالتوفيق. اقتباس
السؤال
Mari Carmen
DS-SinglyList.pptx
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.