View Full Version : سوال: یک مسئله درسی
hamed-php
شنبه 10 خرداد 1393, 11:07 صبح
سلام. دوستان این سوالی که در فایل ضمیمه گذاشتم چطوری حل میشه؟
vahid-p
شنبه 10 خرداد 1393, 12:28 عصر
خب بخشی از کار که درآمد و هزینه و... است، که مربوط به همون داده هایی است که اتفاقا دورش خط کشیدین.
اما در مورد زمان بندی. خیلی پارامتر ها میتونه موثر باشه. مثلا یک خط ریل داری یا دو خط ریل. ( چون در دو خط ریل فقط لازمه نقطه شروعشون هم زمان نباشه )
پس احتمالا منظورش یک خط ریل هست که سر تا سر کشیده شده و هیچ جا برای جا به جا شدن قطارهایی که مقابل هم دیگه میان وجود نداره.
بهتر بود این چیزا مشخص میشد. ( اون شکل که من چیزی ازش نفهمیدم )
چون ابهامات خیلی زیاده، واقعا نمیشه کدش رو زد. مثلا من میتونم بگم یه ArrayList میگیرم که روزهای مختلف رو ذخیره کنه. هر کدوم از خونه های ArrayList هم یک آرایه 24 تایی داشته باشه که هر خونش برای یک ساعت باشه. تو اون خونه تعداد قطارهای حاضر روی ریل رو بنویسیم به همراه جهتش. هم جهت ها میتونن تعدادشون زیاد بشه، ولی اونی که خلاف جهت هست، باید حتما در یک خونه خالی قرار بگیره. این تصوریه که من از سوال دارم، و میگم سوال دقیق نیست.
hamed-php
شنبه 10 خرداد 1393, 15:45 عصر
سلام
ممنون
یک خط ریل هست.
شما داده ها رو اختیاری هر چه دوست دارید فرض کنید. زمانبندی رو هم 2 ساعت در نظر بگیرید. مثلا در هر نیم ساعت یک قطار میره. و بیست مسافر سوار میکنه. هر بمسافر 500 واحد درامد زایی داره - کارکنان هم هر قطار 2 تا - هزینه هم برای هر قطار 2000 واحد - تصور شما هم درست است. حالا چطوری حل میشه؟
hamed-php
چهارشنبه 14 خرداد 1393, 12:42 عصر
سلام، چرا این برنامه اجرا نمیشه:
import java.io.IOException;
import java.util.InputMismatchException;
import java.util.Scanner;
class data
{
int train;
int passenger;
int Employee;
int ticket;
int cost;
Scanner get = new Scanner(System.in);
data()
{
System.out.println("Enter Number of the train:");
train = get.nextInt();
System.out.println("Enter number of the passenger:");
passenger = get.nextInt();
System.out.println("Enter number of the Employee:");
Employee = get.nextInt();
System.out.println("Enter ticket charge:");
ticket = get.nextInt();
}
void display()
{
System.out.println("Number of the train: "+train);
System.out.println("number of the passenger: "+passenger);
System.out.println("number of the Employee: "+Employee);
System.out.println("ticket charge: "+ticket);
}
}
class partTime extends data
{
int workinghrs , income ;
partTime()
{
System.out.println("Enter Number of Working Hours:");
workinghrs = get.nextInt();
}
void calculatepay()
{
income = train * passenger * ticket * workinghrs;
}
void display()
{
System.out.println("=============================="+"\n"+"Income & Cost Calculation Report for the part time system"+"\n"+"=============================="+"\n");
super.display();
System.out.println("Number of Working Hours: "+workinghrs);
System.out.println("income for "+workinghrs+" working hours is: $"+income);
}
}
public class report
{
public static void main(String args[])
{
partTime ob = new partTime();
System.out.println("================================"+"\n"+"Enter your Details"+"\n"+"================================"+"\n");
ob.calculatepay();
ob.display();
}
}
این خطا رو میده:
Compiling the source code....
$javac report.java 2>&1
Executing the program....
$java -Xmx128M -Xms16M report
Enter Number of the train:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at data.<init>(report.java:19)
at partTime.<init>(report.java:43)
at report.main(report.java:67)
vahid-p
چهارشنبه 14 خرداد 1393, 17:55 عصر
برای من که اررور نداد. شما احتمالا روی کامپایلر های آنلاین اجرا کردید درسته؟ اونجا معمولا ورودی از کیبورد رو نمیگیرن. شما حتما با کامپایلر جاوا روی کامپیوترتون، کامپایل کنید.
خروجی برای من :
Enter Number of the train:
10
Enter number of the passenger:
20
Enter number of the Employee:
2
Enter ticket charge:
15
Enter Number of Working Hours:
8
============================== ==
Enter your Details
================================
==============================
Income & Cost Calculation Report for the part time system
==============================
Number of the train: 10
number of the passenger: 20
number of the Employee: 2
ticket charge: 15
Number of Working Hours: 8
income for 8 working hours is: $24000
hamed-php
چهارشنبه 14 خرداد 1393, 18:56 عصر
ممنون. باور کن حدسشو میزدم از کامپایلرش باشه. من با این سایت چک کرده بودم http://www.compileonline.com/. حالا خیالم راحت شد.
vahid-p
پنج شنبه 15 خرداد 1393, 00:20 صبح
این همه برنامه جاوا نوشتم، ولی برنامه شما یه نکته آموزشی هم برای من داشت که واقعا تعجب کردم تا الان نمیدونستم!
اونم این قضیه بود که شما اون کلاس parttime رو از data extend کردین ولی بدون اینکه تو کانستراکتور parttime از super() استفاده کنید خودش اتومات اون کانستراکتور هم اجرا میکنه. ( من همیشه مینوشتم super() در کانتراکتور اونایی که extend شده بودن )
گرچه برای کانستراکتور های دیگه super(....) رو میخواد ولی مثل اینکه اگه چیزی ننویسی، super(); به صورت پیشفرض خودش در نظر میگیره. خب از جاوا هیچ چیزی بعید نیست!
cups_of_java
پنج شنبه 15 خرداد 1393, 10:20 صبح
برای کانستراکت شدن یک شی همیشه باید کانستراکتور همه پدر هاش از بالا به پایین (جد به سمت خود کلاس) اجرا بشن. برای همین به طور پیش فرض خود جاوا برای کانستراکتور پیش فرض این فراخوانی رو اتوماتیک انجام میده. یعنی اگه شما کانستراکتوری که می نویسید default constructor باشه نیازی نیست حتمن super رو بنویسید چون خودش توی پدر دنبال default constructor میگرده و سعی میکنه اون رو فراخوانی کنه قبل از فرزند
طبیعیه وقتی شما کانستراکتور دیگه ای بنویسید (یا اضافه کنید) کامپایلر نمیدونه چه تصمیمی باید بگیره و این خود برنامه نویس هست که باید با super مشخص کنه کدوم کانستراکتور پدر باید فراخوانی بشه و اگر نگه خطا دریافت میکنه.
hamed-php
پنج شنبه 15 خرداد 1393, 20:06 عصر
سلام، یک کامپایلر برای اجرای برنامه روی ویندوز میتونید بهم معرفی کنید. نصب و اجراش آسون باشه و رایگان (همونی که خود شما باهاش تست کردید برنامه رو میشه اینجا بگذارید لطفاً)
vahid-p
پنج شنبه 15 خرداد 1393, 22:27 عصر
جاوا برای هر سیستم عامل یک کامپایلر بیشتر نداره ( گرچه کامپایلر ها برای سیستم عامل ها متفاوته، ولی خروجیشون یکیه ) و اونم توسط اوراکل منتشر میشه ( مثل بقیه زبان ها نیست که کامپایلرهای متفاوتی داشته باشند. حالا شاید کامپایلرهایی مجزا ساخته شده باشه ولی من اطلاع ندارم )
شما کافیه Java development kit یا به صورت اختصار JDK که جدید ترین نسخش jdk1.8 هست رو دانلود کنید و این میشه کامپایلر و همراه JR داره.
پس شما فقط به یک jdk نیاز دارید.
اما معمولا از IDE هم کنارش استفاده میشه. شما میتونید Netbeans یا Eclipse و... هم که محیط های برنامه نویسی هوشمند هستند استفاده کنید.
همشون هم رایگان هستند.
لینک JDK 1.8 : ( نسخه 32 بیت و 64 بیت )
برای ویندوز 32 بیتی : http://dl2.soft98.ir/soft/JDK.8.x86.exe
برای ویندوز 64 بیتی : http://dl2.soft98.ir/soft/JDK.8.x64.exe
دانلود Netbeans 8 :
http://dl2.soft98.ir/programing/NetBeans.IDE.8.0.exe
دانلود Eclipse Standard 4.3.2 :
برای ویندوز 32 بیتی : http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/kepler/SR2/eclipse-standard-kepler-SR2-win32.zip
برای ویندوز 64 بیتی : http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/kepler/SR2/eclipse-standard-kepler-SR2-win32-x86_64.zip
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.