الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اين الخطاء ؟؟؟؟؟؟؟؟ ارجوا المساعده للاهميه

بدأه ام رانيا في 11 مايو 2010 · 6 رد · 604 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

//* وفكرة البرنامج عباره عن حساب راتب الموظفين الشهري بحيث يتم ادخال ايام الغياب وساعات التأخير وبعد ذلك يتم خصمها من راتب الموظف وعرضها في جدول*//

# include <iostream>

# include <iomanip>

# include <cmath>

# include <string>

using namespace std;

int y,e;

//كلاس تم تعريف المتغيرات داخله ووضع الفنكشن في البابلك

class employee

{

private:

int Numabsence,Numdelay,salary,y;

public:

//يوجد مشكله في تعريف الواي الموجوده في البروتوتايب المعرفه لعمود المصفوفه

//فانكشن لحساب ايام الغياب

int absenc(int a[][y],int Numabsence);

//فانكشن لحساب ساعات التاخير

int delay(int a[][y],int Numdelay);

//فانكشن لحساب الراتب بعد عملية الخصم

int salry (int a[][y],int salary);

//فانكشن لطباعة الجدول

void print (int a[][y]);

};

void main()

{

employee obj1;

//*عرفنا مصفوفه وتم فيها وضع بيانات الموظفين ولكن هناك مشكله في كيفية تعريف المصفوفه حيث انها تحتو على سترنق+انتجر*//

//(ACCOUNT,NAME,RANK,APSENCE,DELAY,SALARY)

int emp[19][5]={{1,"Ahmed Abdullah",2,0,0,10000},{2,"Nasser Ahmed",1,0,0,8000},{3,"Emad Abdualrahman",2,0,0,10000},{4,"Ibrahim Mohammed",3,0,0,12000},{5,"Anass Khaleel",3,0,0,12000},{6,"Monther Ibrahim",1,0,0,8000},{7,"Saleh Abdulaziz",3,0,0,12000},{8,"Ayman Hussain",2,0,0,10000},{9,"Khaled Youssif",2,0,0,10000},{10,"Abdulaziz Ahmed",2,0,0,10000},{11,"Fahad Abdullah",3,0,0,12000},{12,"Yasser Nasser",2,0,0,10000},{13,"Rayan Rakan",3,0,0,12000},{14,"Eyad Hussain",1,0,0,8000},{15,"Sami Rakan",3,0,0,12000},{16,"Waleed Khaled",3,0,0,12000},{17,"Hazem Ahmed",2,0,0,10000},{18, "Eyass Anass",1,0,0,8000},{19,"Asem Abdulrahman",1,0,0,8000},{20,"Nezar

Mohammed",3,0,0,12000"}};

int i,j,n,m;

cout<<"The Employers Data In The First Day Of The Month: "<<endl;

//نداء لفانكشن الطباعه لطباعة الجدول على الشاشه في بداية الشهر

obj1.print(emp);

//عباره عن لووب ليتم ادخال بيانات الموظفين من غياب وتأخير وذلك من قبل موظف شؤون الموظفين

while(i<20)

for (i=0;i<=19;i++)

{

for (j=0;j<=5;j++)

cout<<"Employer Name: "<<emp[1]<<endl;

cout<<"How many days of his absence this month?"<<endl;

cin>>n;

//نداء للفانكشن من الكلاس لحساب الغياب

obj1.absenc(emp,n);

cout<<"How many hours of delay?"<<endl;

cin>>m;

//نداء الفنكشن ممن الكلاس لحساب ساعات التاخير

opj1.delay(emp,m);

}

cout<<"The Employer Data At The Last Of The Month: "<<endl;

//نداء لعملية طباعة الجدول على الشاشه في آخر الشهر بعد حصر الغياب والتأخير وتحديد الراتب

opj1.print(emp);

}

//تعريف الفانكشن وحساب ايام الغياب

int employee ::absenc(int a[e][y],int Numabsence)

{

int i=e,sum=0;

sum=Numabsence+ a[3];

a[3]=sum;

return a[3];

}

//تعريف فانكشن حساب ساعات التأخير

int employee:: delay(int a[e][y],int Numdelay)

{

int i=e,sum=0;

sum=Numdelay+a[4];

a[4]=sum;

return a[4];

}

//حساب الراتب بعد الخصومات

int employee:: salry (int a[e][y],int salary)

{

int i,n,m,s,x,z;

a[3]=n;

a[4]=m;

x=n*500;

z=m*50;

s=x+z;

a[5]=a[5]-s;

return a[5];

}

//تعريف فانكشن الطباعه حيث يتم طباعة البيانات على شكل جدول

void employee::print(int a[e][y])

{

cout<<left<<setw(20)<<"ID"<<left<<setw(20)<<"Employer Name"<<left<<setw(20)<<"Rank"<<left<<setw(20)<<"Absence"<<left<<setw(8)<<"Delay"<<left<<setw(20)<<"Salary"<<endl;

int i,j;

for (i=0;i<=19;i++)

{

for(j=0;j<=5;j++)

cout<<left<<setw(20)<<a[j];

cout<<endl;

}

//يوجد أخطاء في البرنامج ومشاكل لم استطع التوصل لحلها، ارجو ممن يستطيع حلها لي ان يساعدني فيها شاكرة له ذلك،حيث اني مكلفه بتسليمه ولم استطع حل المشكله

#2

السلام عليكم ,

اقتباس
//*عرفنا مصفوفه وتم فيها وضع بيانات الموظفين ولكن هناك مشكله في كيفية تعريف المصفوفه حيث انها تحتو على سترنق+انتجر*//

المصفوفة لازم تكون من نفس النوع , إذا كنتِ ما تحتاجين تقومين بعمليات حسابية على الأرقام , خليها كـ string ..

لكن تقدرين تسوين Struct .. و تحفظين فيه البيانات لكل موظف .. ,

بالتوفيق ,

سبحآن الله وبحمده .. سبحآن الله العظيم .. ,

#3

مشكوره اختي لكن ياليت لو توضحين اكثر

#4

ضعي السؤال كامل , و إن شاء الله أساعدك ,

بالتوفيق ,

سبحآن الله وبحمده .. سبحآن الله العظيم .. ,

#5

برنامج ادخل فيه بيانات الموظفين تكون من اسم والرتبه الوظيفيه وايام الغياب وساعات التاخير والراتب، البرنامج يحسب لي ساعات ساعات التاخير والغياب ويخصمهم لي من الراتب بحيث(كل يوم غياب يخصم 500 ريال من الراتب وكل ساعه تاخير يخصم 50 ريال من الراتب)ويكون رواتب الموظفين على حسب الرتبه الوظيفيه(الاولى:8000 ريال،الثانيه:10000 ريال، الثالثه:12000 ريال)بحيث يقوم البرنامج باظهار بيانات الموظفين في اول الشهر قبل حساب ايام الغياب وساعات التاخير،ثم بعد ذلك يقوم المستخدم بإدخال بيانات الموظفين (عدد ايام الغياب وساعات التاخير)ويقوم البرنامج بخصمها من الراتب،ثم في النهايه يعرض بيانات الموظفين اخر الشهر في جدول مبينة فيه الرواتب وعدد ايام الغياب والتأخير والخصومات

المطلوب في البرنامج استخدام كل من :Array,Functions,Class

#6

السلام عليكم ,

#include <iostream>
#include <string>
using namespace std;
class Employee {
string name ;
int salary ;
int daysOfabsence ;
int grade;
int hoursOfdelay ;
public:
Employee(string n ,int s ,int d ,int g ,int h)
{
name = n ;
salary = s;
daysOfabsence = d ;
grade = g ;
hoursOfdelay = h;
}
void salaryAccount(int d , int h)
{
    daysOfabsence=d;
    hoursOfdelay=h;
	switch(grade)
	{
    case 1 :
	salary =(8000 -((daysOfabsence*500)+(hoursOfdelay*50)));
	break;
	case 2 :
	salary =(10000-((daysOfabsence*500)+(hoursOfdelay*50)));
	break ;
	case 3:
    salary =(12000-((daysOfabsence*500)+(hoursOfdelay*50)));
	break ;
	default :
		cout<<"Not Found Salary "<<endl;
	}
}
void print (Employee &Emp)
{
	cout<<"The Name : "<<Emp.name<<endl;
	cout<<"The Salary :"<<Emp.salary<<endl;
}
void printAfter (Employee &Emp)
{
	cout<<"The Name : "<<Emp.name<<endl;
	cout<<"The Days of absence :"<<Emp.daysOfabsence<<endl;
	cout<<"The Hours of delay :"<<Emp.hoursOfdelay<<endl;
	cout<<"The Salary :"<<Emp.salary<<endl;
}
void EnterDay_Hours(Employee &Emp)
{
	int a , b ;
	cout<<"Employee :"<<Emp.name<<endl;
	cout<<"Enter The Days of absence "; cin>>a ;
	cout<<endl;
    cout<<"Enter The Hours of delay "; cin>>b ;
	salaryAccount(a,b);
}
};
int main()
{
Employee Emp1("Ahmad",8000,0,1,0);
Employee Emp2("Faisal",10000,0,2,0);
Employee Emp3("Ali",12000,0,3,0);
Emp1.print(Emp1);
Emp2.print(Emp2);
Emp3.print(Emp3);
Emp1.EnterDay_Hours(Emp1);
Emp2.EnterDay_Hours(Emp2);
Emp3.EnterDay_Hours(Emp3);
Emp1.printAfter(Emp1);
Emp2.printAfter(Emp2);
Emp3.printAfter(Emp3);
system(" pause ");
}

يمكن التعديل على الكود , بتعريف الـ Object كمصفوفة .

بالتوفيق :happy: ,

سبحآن الله وبحمده .. سبحآن الله العظيم .. ,

#7

مشكوره اختي جزاك الله الف خير

مواضيع مشابهة