LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING...
Transcript of LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING...
![Page 1: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/1.jpg)
Collage of Information Technology, University of Babylon, Iraq
By Dr. Samaher Hussein Ali
LECTURE NOTES ON PROGRAMMING
FUNDAMENTALS II USING C++ LANGUAGE
Department of Software The University of Babylon
4 May 2013 1
![Page 2: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/2.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
2
: ما یليیحوي C++ بلغةكتابة برنامج یتضمن
: یحوي ما یلي DataArray بناء كالس اسمه: أولا
:الصفات
.طالب في مادة لغة البرمجة 30خانة صحیحة، تحوي درجات 30مصفوفة مكونة من -
:السلوك
(. یستدعي دالة التصفیر)افتراضي یمأل المصفوفة بأصفار constructor - باني 0دالة تصفیر تعمل على إعطاء كل عناصر المصفوفة القیمة -.
100و 0دالة لملء المصفوفة بقیم عشوائیة بین -.
100و 0بشرط أن تكون أي منھا بین )دالة لملء المصفوفة بقیم من المستخدم -.)
. تستقبل القیمة الجدیدة و الموقع في المصفوفة الذي نرید تعدیلھ set - دالة . تستقبل الموقع الذي نرید إرجاعھ في المصفوفة get - دالة
.دالة ترجع أعلى قیمة في المصفوفة -
.دالة ترجع أقل قیمة في المصفوفة -
.دالة ترجع عدد الناجحین -
.دالة ترجع النسبة المئویة للناجحین -
.دالة ترجع مجموع عناصر المصفوفة -
.دالة ترجع المتوسط لعناصر المصفوفة -
:والذي یحسب كما یلي. دالة ترجع التشتت المعیاري لعناصر المصفوفة -
oاحسب المتوسط oاحسب مربعات الفروق بین المتوسط وكل عنصر
oاجمع مربعات الفروق كلھا oخذ الجذر التربیعي للمجموع
oانظر المثال التوضیحي للتشتت المعیاري أدناه :دالة لطباعة البیانات، والبیانات المراد طباعتھا ھي -
oعناصر المصفوفة oأعلى قیمة oأقل قیمة
oعدد الناجحین oنسبة الناجحین oعدد الراسبین oنسبة الراسبین
oمجموع العناصر oمتوسط العناصر التشتت المعیاري
![Page 3: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/3.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
3
:مثال توضیحي للتشتت المعیاري
:لحساب التشتت المعیاري نقوم بمایلي. 6و 4و 5عناصر صحیحة ھي 3لنفرض أن لدینا مصفوفة مكونة من
:المتوسط
:دالة إلظھار الخیارات التالیة: ثانیا
.تصفیر الدرجات -١
. عشوائیا إدخال الدرجات -٢
.إدخال الدرجات من قبل المستخدم -٣
.تعدیل درجة معینة -٤
.طباعة درجة معینة -٥
.طباعة الدرجات كاملة -٦
.طباعة درجة الطالب األول -٧
.طباعة درجة الطالب األخیر -٨
.طباعة عدد الناجحین ونسبتھم -٩
.طباعة عدد الراسبین ونسبتھم - ١٠
.طباعة مجموع درجات جمیع الطالب - ١١
.طباعة متوسط درجات الطالب - ١٢
.طباعة التشتت المعیاري للدرجات - ١٣
.طباعة البیانات كاملة - ١٤
.خروج من البرنامج - ١٥
:الدالة الرئیسیةَ :ثالثا ·. إظھار قائمة الخیارات بشكل متكرر، ومعالجة حاالتھا كاملة
.مسح محتویات الشاشة السابقة في كل مرة یتم فیھا إظھار الخیارات
![Page 4: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/4.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
4
#include<iostream.h> #include<conio.h> #include<ctype.h> #include<stdlib.h> #include<time.h> #include<math.h> class DataArray{ private: int degrees[30]; public: DataArray() { zeroArray(); } void zeroArray() { for(int i = 0; i < 30; i++) degrees[i] = 0; cout << "\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"; cout << "\n\t\t| REST DATA DONE |\n"; cout << "\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"; } void randDegrees() { for(int i = 0; i < 30; i++) degrees[i] = random(101) % 101; cout << "\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"; cout << "\n\t\t| SUCCESS RANDOM GENERATING |\n"; cout << "\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"; }
![Page 5: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/5.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
5
void userDegrees() { for(int i = 0; i < 30; i++) { int x; cout << "Enter degree of student # " << i + 1 << " : "; cin >> x; cout << endl; if((x >= 0) && (x <= 100)) degrees[i] = x; else { cout << "Degree must be between 0 and 100\n"; i--; } } cout << "\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"; cout << "\n\t\t| INPUT DATA DONE |\n"; cout << "\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"; } void setDegrees(int newValue, int i) { degrees[i - 1] = newValue; cout << "\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"; cout << "\n\t\t| SET DATA DONE |\n"; cout << "\n\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"; }
![Page 6: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/6.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
6
int getDegrees(int i) { return degrees[i - 1]; } int maxDegrees() { int max = degrees[0]; for(int i = 0; i < 30; i++) if(degrees[i] > max) max = degrees[i]; return max; } int minDegrees() { int min = degrees[0]; for(int i = 0; i < 30; i++) if(degrees[i] < min) min = degrees[i]; return min; } int countPass() { int counter = 0; for(int i = 0; i < 30; i++) if(degrees[i] >= 50) counter++; return counter; }
![Page 7: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/7.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
7
double averagePass() { return countPass() / 30.0 * 100; } int sumDegrees() { int sum = 0; for(int i = 0; i < 30; i++) sum += degrees[i]; return sum; } double averageDegrees() { return sumDegrees() / 30.0; } double standardDeviation() { double sd = averageDegrees(); double sumSD = 0.0; for(int i = 0; i < 30; i++) sumSD += pow((sd - degrees[i]), 2.0); return sqrt(sumSD); }
![Page 8: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/8.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
8
void printData() { cout << "\t\t________________________________________________\n"; cout << "\t\t============== Student Degrees =================\n"; for (int i = 0; i < 30; i++) cout << "\t\t\t Student " << i + 1 << " degree = " << degrees[i]<<endl; cout << "\t\t============== Student Degrees =================\n"; cout << "\t\t\tMax Degree : " << maxDegrees() << endl; cout << "\t\t\tMin Degree : " << minDegrees() << endl; cout << "\t\t\tPass Number : " << countPass() << " students " << endl; cout << "\t\t\tPass Average : " << averagePass() / 30.0 * 100 << " % " <<endl; cout << "\t\t\tFail Number : " << 30 - countPass() << " students " <<endl; cout << "\t\t\tFail Average : " << (30 - countPass())/30.0 * 100 << " % "<<endl; cout << "\t\t\tSum Degrees : " << sumDegrees() << endl; cout << "\t\t\tAverage Degrees : " << averageDegrees() << endl; cout << "\t\t\tStandard Deviation : " << standardDeviation() << endl; cout << "\t\t________________________________________________\n\n"; } };
![Page 9: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/9.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
9
void choicesList() { cout << "\t\t___________________________________________________\n"; cout << "\t\t| 1 : Make degrees zeros |\n"; cout << "\t\t| 2 : Randomly degrees |\n"; cout << "\t\t| 3 : Degrees from user |\n"; cout << "\t\t| 4 : Set certain degree |\n"; cout << "\t\t| 5 : Get certain degree |\n"; cout << "\t\t| 6 : Print all degrees |\n"; cout << "\t\t| 7 : Degree of frist student |\n"; cout << "\t\t| 8 : Degree of last student |\n"; cout << "\t\t| 9 : Number and percentage of pass students |\n"; cout << "\t\t| 10 : Number and percentage of fail students |\n"; cout << "\t\t| 11 : Sum degrees |\n"; cout << "\t\t| 12 : Average degrees |\n"; cout << "\t\t| 13 : Standard deviation |\n"; cout << "\t\t| 14 : Print all data |\n"; cout << "\t\t| 15 : Exit |\n"; cout << "\t\t___________________________________________________\n\t\t"; }
![Page 10: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/10.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
10
int main() { DataArray da; int choice; int deg,i; do { clrscr(); choicesList(); cin >> choice; switch(choice) { case 1: da.zeroArray();getch(); break; case 2: da.randDegrees();getch(); break; case 3: da.userDegrees();getch(); break; case 4: do { cout << "\t\tEnter degree : "; cin >> deg; cout << endl; if ((deg < 0) || (deg > 100)) cout << "\t\tDegree must be between 0 and100\n"; } while((deg < 0) || (deg > 100)); do{ cout << "\t\tSet student # "; cin >> i; cout << endl; if ((i < 1)||(i > 30)) cout << "\t\tNumber must be between 1 and30\n"; } while((i < 1)||(i > 30)); da.setDegrees(deg, i); getch(); break;
![Page 11: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/11.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
11
case 5: do{ cout << "\t\tGet student # "; cin >> i; cout << endl; if ((i < 1)||(i > 30)) cout << "\t\tNumber must be between 1 and30\n"; } while((i < 1)||(i > 30)); cout << "\t\tDegree = " << da.getDegrees(i) << endl; getch(); break; case 6: cout << "\t\t============== Student Degrees=================\n"; for (int i = 0; i < 30; i++) cout << " \t\t\tStudent " << i + 1 << "degree = " << da.getDegrees(i + 1) << endl; cout << "\t\t============== Student Degrees=================\n\n"; getch(); break; case 7: cout << "\t\tFirst student = " << da.maxDegrees() << endl; getch(); break; case 8: cout << "\t\tLast student = " << da.minDegrees() << endl; getch(); break; case 9: cout << "\t\tNumber of Pass Students " << da.countPass() <<endl; cout << "\t\tPercentage of Pass Students " << da.averagePass()<< endl; getch(); break;
![Page 12: LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II …LECTURE NOTES ON PROGRAMMING FUNDAMENTALS II USING C++ LANGUAGE Department of Software The University of Babylon 4 May 2013 1 . Dr.](https://reader035.fdocuments.us/reader035/viewer/2022070108/60295a006dba336f717fb18a/html5/thumbnails/12.jpg)
Dr. Samaher Hussein Ali
New Answer of the Same Example of Class
4 May 2013
12
case 10: cout << "\t\tNumber of Fail Students " << 30 -da.countPass() << endl;
cout << "\t\tPercentage of Fail Students " << 100.0 -da.averagePass() << endl; getch(); break; case 11: cout << "\t\tSum Degrees " << da.sumDegrees() << endl; getch(); break; case 12: cout << "\t\tAverage Degrees " << da.averageDegrees() <<endl; getch(); break; case 13: cout << "\t\tStandard Deviation " <<da.standardDeviation() << endl; getch(); break; case 14: da.printData(); getch(); break; } } while(choice !=15); getch(); return 0; }