View Full Version : کمک در نوشت برنامه جاوا
clapton
جمعه 05 اسفند 1390, 16:28 عصر
سلام دوستان.من باید یه برنامه ی بانک بنویسم که یه مشتری بتونه از این مثل یه بانک استفاده کنه.مشتری باید بتونه برداشت و واریز کنه و بتونه موجودی حسابش رو ببینه. من نیاز به ایجاد چند تا کلاس دارم؟
ممنون میشم راهنماییم کنید.
spiderman200700
شنبه 06 اسفند 1390, 02:42 صبح
سلام.
شما در ساده ترین حالت، 3 تا کلاس میخوای.
1. مشتری
2. بانک
3. کلاس اصلی(همون کلاس JFrame یا هر کلاسی که برنامه رو start میکنه)
poursina1389
شنبه 06 اسفند 1390, 16:24 عصر
سلام.
شما اول باید پروژت رو تحلیل کنی ، یعنی باید ببینی چه چیزهایی نیاز داری؟
برای این کار اول باید خودت رو جای کسی بذاری که قراره از این نرم افزار استفاده کند . بعد از اینکه تحلیل کردی و تونستی یک نمودار er برا پایگاه داده برنامه ات رسم کنی اونوقت متوجه می شی که چند تا کلاس نیاز داری.:متفکر:
کمه کم یک کلاس برای دریافت اطلاعات شخص عضو بانک می خوای ، که تو بانک باید عضو بشه...
و همچنین یک کلاس برای ایجاد پنجره برای دریافت اطلاعات از شخص متقاضی عضویت می خوای و یک کلاس برای اعتبارسنجی داده های وارد شده می خوای و ...
اگه پروژه ت رو تحلیل کنی تعداد کلاس هات به طور دقیق بدست می یاد...:چشمک:
clapton
شنبه 06 اسفند 1390, 23:22 عصر
سلام دوستان.مرسی از پاسخ هاتون.
من یه برنامه نوشتم اما مشکل من این هست که استادم ازم خواسته که حتما کلاس بندی کنیم و من آشنایی زیادی با کلاس بندی در جاوا ندارم.یعنی نیاز به desgin object oriented دارم.ممنون میشم راهنماییم کنید.
import java.util.Scanner;
public class BankAccount {
public static void main(String[] args) {
Scanner clapton=new Scanner(System.in);
int x;
float balance = 0;
boolean quit=false;
do {
System.out.println("1. Deposit money");
System.out.println("2. Withdraw money");
System.out.println("3. Check balance");
System.out.print(" 0 to quit: ");
System.out.println("enter your choice :");
x=clapton.nextInt();
if (x==1) {
float amount;
System.out.println(" Amount to deposit :");
amount=clapton.nextFloat();
if (amount>=0) {
balance += amount;
}
else {
System.out.println("system can't reply your request");
}
}
else if (x==2) {
float amount;
System.out.println(" Amount to withdraw :");
amount =clapton.nextFloat();
if (amount<=0 || amount > balance) {
System.out.println("system can't reply your request ");
}
else {
balance -= amount;
}
}
else if (x==3) {
System.out.println("your balance :" + balance );
}
else if (x==0) {
quit=true;
}
else {
System.out.println("wrong choice");
}
}
while (!quit);
System.out.println("bye");
}
}
poursina1389
یک شنبه 07 اسفند 1390, 15:36 عصر
واقعیتش رو بخوای من دقیق کدهات رو نخوندم چون همون اولش دیدم کدهات رو تو main نوشتی...
عزیز جان تو جاوا ، کلاس main بیشتر مواقع (یا می شه گفت فقط) برای فراخوانی کلاس های runner یا همون کلاس هایی که باعث می شه تا برنامه ما اجرا بشه ، استفاده می شه...
شما باید تو یه کلاس جداگانه این کدهایی که تو بدنه main نوشتی رو ، پیاده سازی کنید.
یه سوال ، برای برنامه بانک بهتر نیست اول یه چند نفر رو عضو بانک کنی(اطلاعات چند نفر مجازی رو در پایگاه داده insert کنید که این به معنی حساب باز کردن در بانک می باشد) و بعد به صورت مجازی براشون پول بریزی و ...
clapton
یک شنبه 07 اسفند 1390, 16:12 عصر
سلام دوست من .اتفاقا مشکل من همین جاست.متوجه این موضوع شدم که باید کلاس های جداگانه تعریف کنم برای این برنامه اما مشکلم اینجاست که نمیدونم باید چطوری کلاس های جدا رو تعریف کنم.راستش من خیلی نیست جاوا رو شروع کردم .یعنی این ترم برنامه نویسی جاوا دارم و استادم ازم خواسته این برنامه رو در کلاس های مختلف بنویسم.در ضمن قرار فقط یه حساب رو تو این برنامه داشتم باشم.
بازم مرسی از توجه ات
واقعیتش رو بخوای من دقیق کدهات رو نخوندم چون همون اولش دیدم کدهات رو تو main نوشتی...
عزیز جان تو جاوا ، کلاس main بیشتر مواقع (یا می شه گفت فقط) برای فراخوانی کلاس های runner یا همون کلاس هایی که باعث می شه تا برنامه ما اجرا بشه ، استفاده می شه...
شما باید تو یه کلاس جداگانه این کدهایی که تو بدنه main نوشتی رو ، پیاده سازی کنید.
یه سوال ، برای برنامه بانک بهتر نیست اول یه چند نفر رو عضو بانک کنی(اطلاعات چند نفر مجازی رو در پایگاه داده insert کنید که این به معنی حساب باز کردن در بانک می باشد) و بعد به صورت مجازی براشون پول بریزی و ...
samirom
یک شنبه 07 اسفند 1390, 16:44 عصر
سلام دوستان:لبخندساده:
منم یه مشکلی توی برنامم دارم.
چه جوری باید سرعت برنامم رو کم کنم؟
من باید یه برنامه بنویسم که یک عدد کرم از یک طرف صفحه وارد شود و از طرف دیگر خارج شود ولی همیشه حالت آخر چاپ میشه چون سرعتش زیاده ولی اگر بتونم سرعتش رو کم کنم فک کنم درست بشه.
پیشاپیش ممنون از راهنماییتون
poursina1389
یک شنبه 07 اسفند 1390, 20:23 عصر
clapton عزیز ، می شه کامل توضیح بدین که استادتون چی ازتون خواسته و خودتون چه چیزی رو تو برنامه اتون پیاده سازی کردین؟:متفکر:
شاید بهتر بتونم کمکتون کنم:لبخندساده:
clapton
یک شنبه 07 اسفند 1390, 20:51 عصر
تمرینی که دادن اینه که من باید یک برنامه بانک بنویسم که یک مشتری داره و اون مشتری یک حساب در اون بانک داره که بتونه پول از حسابش برداشت و واریز کنه و موجودی بگیره.ازمون خواسته اول کلاس بندی این برنامه رو به صورت دیاگرام رسم کنیم و بعد هر کلاس رو برنامه نویسی کنیم.اما من برنامه بالا رو فقط تونستم بنویسم .
مرسی اگه راهنماییم کنی.
clapton عزیز ، می شه کامل توضیح بدین که استادتون چی ازتون خواسته و خودتون چه چیزی رو تو برنامه اتون پیاده سازی کردین؟:متفکر:
شاید بهتر بتونم کمکتون کنم:لبخندساده:
poursina1389
یک شنبه 07 اسفند 1390, 20:59 عصر
باید user interface هم داشته باشه یا فقط تو cosole ورودی بگیره و خروجی نشون بده کافیه!!!؟؟
clapton
یک شنبه 07 اسفند 1390, 21:32 عصر
نه user interface نداره.فقط ورودی بگیره و خروجی نشون بده کافیه
البته تو یه قسمت دیگه از سوالش گفته باید یه کلاس بنویسم که منو داشته باشه که مشتری بتونه فعالیت مورد درخواستش رو انتخاب کنه.این قسمت دیگه از سوالشه.فکر کنم همون قسمت اولش رو بهم بگی بفهمم باید این کلاس رو چطوری بنویسم
مرسی از تو
poursina1389
سه شنبه 09 اسفند 1390, 12:55 عصر
نه user interface نداره.فقط ورودی بگیره و خروجی نشون بده کافیه
البته تو یه قسمت دیگه از سوالش گفته باید یه کلاس بنویسم که منو داشته باشه که مشتری بتونه فعالیت مورد درخواستش رو انتخاب کنه.این قسمت دیگه از سوالشه.فکر کنم همون قسمت اولش رو بهم بگی بفهمم باید این کلاس رو چطوری بنویسم
مرسی از تو
عزیز جان اگه قراره منو داشته باشه تا کاربر از اون طریق با برنامه ات ارتباط برقرار کنه ، همون user interface هست دیگه...
به طور کلی باید یک کلاس برای هریک از UI هایی که می خوای داشته باشی در نظر بگیری ،یک کلاس برای انجام محاسبات بانکی موجود می خوای (خود این کلاس هم می تونه از چند تا کلاس تعریف شده باشه)، یک کلاس برای پیاده سازی main می خوای.
بازم تاکید می کنم که همه این کلاس ها بستگی به تحلیل شما از مسئله داره.:لبخندساده:
clapton
چهارشنبه 10 اسفند 1390, 14:51 عصر
سلام.
مرسی از پاسخ هات.من الان یه کلاس برای مشتری گذاشتم یه کلاس برای حساب.یه کلاس هم برای خود بانک .کلا برای برداشت و پرداخت و اینها همه رو تو همین کلاس حساب بانک دستور هاش رو بنویسم.یعنی واقعا دچار سردرگمی شدم.راستی می تونم از طریق پیغام خصوصی باهات در ارتباط باشم .
بازم مرسی
عزیز جان اگه قراره منو داشته باشه تا کاربر از اون طریق با برنامه ات ارتباط برقرار کنه ، همون user interface هست دیگه...
به طور کلی باید یک کلاس برای هریک از UI هایی که می خوای داشته باشی در نظر بگیری ،یک کلاس برای انجام محاسبات بانکی موجود می خوای (خود این کلاس هم می تونه از چند تا کلاس تعریف شده باشه)، یک کلاس برای پیاده سازی main می خوای.
بازم تاکید می کنم که همه این کلاس ها بستگی به تحلیل شما از مسئله داره.:لبخندساده:
poursina1389
چهارشنبه 10 اسفند 1390, 15:25 عصر
من احساس می کنم که شما مسئله رو کامل توضیح ندادین!!!:متعجب:
چون اولش یه چیزی هایی از مسئله گفتین و بعدش هم اضافه کردین که استادتون گفته باید منو هم داشته باشه...
من کمی که رو مسئله فکر کردم ، نتونستم درک کنم که چطوری می شه یک برنامه بانک بدون DB طراحی کرد؟؟:متفکر:
مثلا اگه بخواد کسی پول واریز کنه ، از کجا باید فهمید که طرف قبلا چقدر پول تو حساب داشته که بعد از واریز پول مقدار واریز شده به مقدار پولی که قبلا تو بانک داشته اضافه بشه ، یا اینکه چه طوری وقتی که مقداری پول از حسابش برمی داره باید از پولی که داشته کسر بشه... :اشتباه:
من که نمی دونم باید چه طوری این کار رو بدون استفاده از پایگاه داده انجام داد!!!
باز می خواید با استادتون بیشتر صحبت کنید تا مسئله واضح تر بشه:لبخندساده:
spiderman200700
چهارشنبه 10 اسفند 1390, 17:18 عصر
سلام.
مرسی از پاسخ هات.من الان یه کلاس برای مشتری گذاشتم یه کلاس برای حساب.یه کلاس هم برای خود بانک .کلا برای برداشت و پرداخت و اینها همه رو تو همین کلاس حساب بانک دستور هاش رو بنویسم.یعنی واقعا دچار سردرگمی شدم.راستی می تونم از طریق پیغام خصوصی باهات در ارتباط باشم .
بازم مرسی
دوست عزیز، مشتری و حساب برای سیستم شما یک موجودیت واحد به حساب میاد یعنی میتونی این دو کلاس رو در قالب یک کلاس بنویسی.
حالا کارایی که باید انجام بدی اینه:
1.ایجاد کلاس مشتری یا همون حساب.
این کلاس باید مشخصات نام، شماره حساب و موجودی رو داشته باشه.البته بنا به سلیقه و وقتی که داری ، میتونی مشخصات دیگه ای هم اضافه کنی
این کلاس همچنین باید متد های ، برداشت از حساب ، واریز به حساب ، نمایش موجودی رو داشته باشه . در اینجا هم مثل مشخصات،با توجه به مشخصاتی که داری ، میتونی متد های دیگه ای هم اضافه کنی.
2.ایجاد کلاس بانک:
این کلاس حداقل باید مشخصه ی لیست مشتری ها رو داشته باشه. اگه دوست داشتی ، میتونی مشخصات نام بانک، شعبه ، و ... رو هم به این کلاس اضلفه کنی.
این کلاس باید متد های باز کردن حساب (که همون اضافه کردن یک مشتری به لیست مشتریان هست) و حذف حساب رو داشته باشه.
3. ایجاد کلاس برای رابط کاربری:
این کلاس کاملا سلیقه ایه. میتونی فقط از کنسول استفاده کنی یا اینکه گرافیکی باشه. در هر صورت علاوه بر مشخصات و متد هایی که برای رابط کاربریت میخوای، باید مشخصه ی بانک رو به این کلاس اضافه کنی.
چون کاربر با این کلاس ارتباط داره و هر درخواستی داشته باشه به این کلاس اعلام میکنه ، باید متد های برداشت از حساب ، واریز به حساب ، نمایش موجودی ، باز کردن حساب و حذف حساب رو، به این کلاس هم اضافه کنی.یعنی این متدها درخواست رو میگیرن و باتوجه به درخواست گرفته شده ، یکی از متد های کلاس بانک یا مشتری رو فراخوانی می کنه.
اگه بخوای میتونی از یه بانک هم برای پروژه استفاده کنی تا اطلاعاتی که وارد میکنی برای همیشه ثبت بشه.
این چیزایی که گفتم برای ساده ترین حالت این سیستم بود.یعنی میتونی سیستم رو پیچیده تر کنی و متد ها و خصوصیات و کلاس های بیشتری رو ، برای کارهای مختلف ، اضافه کنی.
امیدوارم این توضیحات مفید بوده باشه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.