PDA

View Full Version : کلاسی به نام اکانت



alirah84
پنج شنبه 27 مهر 1391, 18:39 عصر
سلام
این یه سوال در مورد کلاسها هست تا ابتدای main نوشتمش ،فکر میکنم اشکال هم داره .دوستان اگه لطف کنند این ادامش را کمک کنند و یکم توضیح بدند ممنون میشم.
کلاسی به نام Accountبرای نگهداری اطلاعات حساب مشتری در بانک ایجاد کنید . این کلاس فیلدی از نوع int دارد که موجودی حساب را مشخص میکند. سازنده ی کلاس پارامتری دارد که هنگام ایجاد شی موجودی حساب مشتری را تعیین میکند.اگر این موجودی عددی منفی وارد شود سازنده ی کلاس موجودی را برابر صفر قرار می دهد و یک پیام اخطار اعلان میکند.
این کلاس سه تابع عضو دارد تابع عضو credit() مقداری را به عنوان پارامترگرفته و به موجودی اضافه میکند . تابع عضو debit () مقداری را به عنوان پارامتر گرفته و از موجودی حساب کسر میکند این مقدار باید کمتر از موجودی باشد . تابع عضو getBalance () موجودی حساب را بر میگرداند برنامه ای بنویسید که از این کلاس استفاده کند.

class account
{
int balance;
public:
account(int i);
void credit(int j);
void debit(int k);
int getbalance();
void printbalance();
};
account::acount(int i)
{
if (n<0)
balance=0;
cout<<"Error=>>meghdare mojoodi adadi mosbat ast";
}
void account::credit(int j);
{


balance = balance+n;
void account::debit(int k);
{
if (n>balance)
balance=0
else
balance=balance -n;
cout<<"Error :meghdare kasr shode az hesab bishtar az mojoodi mibashad";
}
int account::getbalance();
{
return balance;
}
void account :: printbalance();
cout<<balance;
int main();
cin >> i>>j>>k;

mahak006
پنج شنبه 27 مهر 1391, 19:46 عصر
سلام
این یه سوال در مورد کلاسها هست تا ابتدای main نوشتمش ،فکر میکنم اشکال هم داره .دوستان اگه لطف کنند این ادامش را کمک کنند و یکم توضیح بدند ممنون میشم.
کلاسی به نام Accountبرای نگهداری اطلاعات حساب مشتری در بانک ایجاد کنید . این کلاس فیلدی از نوع int دارد که موجودی حساب را مشخص میکند. سازنده ی کلاس پارامتری دارد که هنگام ایجاد شی موجودی حساب مشتری را تعیین میکند.اگر این موجودی عددی منفی وارد شود سازنده ی کلاس موجودی را برابر صفر قرار می دهد و یک پیام اخطار اعلان میکند.
این کلاس سه تابع عضو دارد تابع عضو credit() مقداری را به عنوان پارامترگرفته و به موجودی اضافه میکند . تابع عضو debit () مقداری را به عنوان پارامتر گرفته و از موجودی حساب کسر میکند این مقدار باید کمتر از موجودی باشد . تابع عضو getBalance () موجودی حساب را بر میگرداند برنامه ای بنویسید که از این کلاس استفاده کند.

class account
{
int balance;
public:
account(int i);
void credit(int j);
void debit(int k);
int getbalance();
void printbalance();
};
account::acount(int i)
{
if (n<0)
balance=0;
cout<<"Error=>>meghdare mojoodi adadi mosbat ast";
}
void account::credit(int j);
{


balance = balance+n;
void account::debit(int k);
{
if (n>balance)
balance=0
else
balance=balance -n;
cout<<"Error :meghdare kasr shode az hesab bishtar az mojoodi mibashad";
}
int account::getbalance();
{
return balance;
}
void account :: printbalance();
cout<<balance;
int main();
cin >> i>>j>>k;

تو سازندش باید دستورات if رو داخل بلوک بنویسی . اینجوری تو هر حالتی پیغام اخطار میده . همین طور باید یه if دیگه بره حالت بزرگ تر از صفر بزاری که همون مقدار رو وارد balance بکنه . در ثانی باید متغیر هات رو درست انتخاب کنی . تو توابعت آرگومان n نداری پس از همون آرگومان های ورودی به جای n استفاده کن . مثلا تو سازنده باید جاش i بزاری .
تابع debit رو باز نویسی کن . کلی اشکال توشه . تو main هم حتما اول باید یه کلاس بسازی تا بعدا بتونی باهاش کار کنی . احتمالا تو مسائل مربوط به کلاس ، کامل یاد نگرفتی . چون خیلی جاها اشتباه وجود داره .

amin1softco
پنج شنبه 27 مهر 1391, 19:47 عصر
فک کنم این درست شده باشه !

class account
{

public:
int balance;
account(int i);
void credit(int j);
void debit(int k);
int getbalance();
void printbalance();
};

account::acount(int i)
{
if (i<0){
balance=0;
cout<<"Error=>>meghdare mojoodi adadi manfi ast";
}else
balance=i;
}
void account::credit(int j)
{
balance += j;
}
void account::debit(int k);
{
if (k>balance)
cout<<"Error :meghdare kasr shode az hesab bishtar az mojoodi mibashad";
else
balance -= k;

}
int account::getbalance();
{
return balance;
}
void account::printbalance(){
cout<<balance;
}
int main(){
cin >> i>>j>>k;
account ac(1000) ;
ac.credit(200);
ac.printbalance();
ac.debit(100);
ac.printbalance();

return 0;
}

alirah84
پنج شنبه 27 مهر 1391, 23:08 عصر
اقا من برنامه را تو کامپایلر اجرا کردم ،وقتی 3 تا عدد را وارد میکنم ،اخر عدد منفی نشون میده.
خواشا یکی بگه مشکل چیه
#include <iostream>

using namespace std;
class account
{

public:
int balance;
account(int );
void credit(int );
void debit(int );
int getbalance();
void printbalance();
};

account::account(int i)
{
if (i<0)
{
balance=0;
cout<<"Error=>>meghdare mojoodi adadi manfi ast";
}
else
{
i=balance;
}
}
void account::credit(int j)
{
balance += j;
}
void account::debit(int k)
{
if (k>balance)
{
cout<<"Error :meghdare kasr shode az hesab bishtar az mojoodi mibashad";
}
else
{
balance -= k;
}
}
int account::getbalance()
{
return balance;
}
void account::printbalance()
{
cout<<balance;
}
int main()
{
int i,j,k;
cin >> i>>j>>k;
account ac(i) ;
ac.credit(j);
ac.printbalance();
ac.debit(k);
ac.printbalance();
cin.get();
cin.get();

}

vb8334
پنج شنبه 27 مهر 1391, 23:57 عصر
من اجرا کردم ولی همچین مشکلی نداره؟

alirah84
جمعه 28 مهر 1391, 00:36 صبح
یعنی 3 تا عدد را وارد میکنی بهت توتال رو نشون میده؟من که هر چی عدد وارد میکنم بهم پیغام meghdare kasr shode az hesab bishtar az mojoodi mibashad با عددهای منفی نشون میده

mahak006
شنبه 29 مهر 1391, 20:16 عصر
با trace راحت میتونی مشکلو پیدا کنی . از دید اولی که مشکلی توش دیده نمی شه .

mehdi7923
شنبه 23 مرداد 1400, 14:05 عصر
با سلام
دوستان عزیز اگه امکان داره کد این برنامه رو در #C برام بذارید
میخوام توی سی شارپ اجراش کنم
ممنون