اخبار و اطلاعات مربوط به دروس

در این وبلاگ مباحث مرتبط با دروس تدریسی توسط اینجانب پیگیری می شود.

اخبار و اطلاعات مربوط به دروس

در این وبلاگ مباحث مرتبط با دروس تدریسی توسط اینجانب پیگیری می شود.

هدیه ای از طرف دانشجویان
Mbt925.ir
دنبال کنندگان ۳ نفر
این وبلاگ را دنبال کنید

۵ مطلب در اسفند ۱۳۹۴ ثبت شده است

۲۲
اسفند

برنامه ای بنویسید که یک خانواده را پیاده سازی کند.

کلاس خانواده (Family) دارای ساختار زیر است:

  • حالت ها:
  • پدر از نوع انسان
  • مادر از نوع انسان
  • آرایه ای از فرزندها ([]Human) با طول ثابت 100
  • درجه ی خوشبختی/رضایت: عددی صحیح بین 1 تا 10
  • سطح درآمد: عددی صحیح بین 0 تا 100 میلیون
  • رفتارها:
  • setter و getter برای تنظیم و دریافت پدر، مادر، درجه ی رضایت و سطح درآمد
  • تابع print برای چاپ اطلاعات خانواده
  • تابع addChild: مشخصات فرزند را دریافت کرده و آن را به آرایه اضافه می کند
  • تابع removeChild: اندیس فرزند را دریافت کرده و آن را از آرایه حذف می کند
  • تابع printHappinessLevel: یکی از سه مقدار "Happy" (مقادیر 4 تا 7)،(مقادیر 1 تا 3) "Not Happy" و "HappyFull" (مقادیر 8 تا 10) را چاپ می کند.
  • تابع printIncomeLevel: یکی از چهار مقدار "Poor"،(مقادیر بین 1 میلیون تا 3 میلیون) "Average" (مقادیر کمتر از 1 میلیون)،(مقادیر بین 3 میلیون تا 10 میلیون) "Good" و "Very Good" (مقادیر بیشتر از 10 میلیون) را چاپ می کند.

کلاس انسان (Human) دارای ساختار زیر است:

  • حالت ها:
  • شماره ملی: رشته ای با طول دقیقا 10 (نه کمتر و نه بیشتر)
  • نام و نام خانوادگی
  • جنسیت: عددی صحیح بین 1 و 2 (1: زن، 2: مرد)
  • سن: عددی صحیح بین 0 تا 100
  • رفتارها:
  • تنها یک سازنده دارد که کد ملی را به عنوان ورودی دریافت می کند
  • setter و getter برای همه حالت ها
  • تابع print برای چاپ مشخصات انسان

منوی برنامه:

  • برنامه دارای یک منو با گزینه های زیر است:
  • 1: ایجاد یک خانواده جدید (در هر زمان تنها یک خانواده وجود دارد: در نتیجه ایجاد خانواده جدید، خانواده ی قبلی را از بین خواهد برد)
    • برای ایجاد خانواده اطلاعات زیر دریافت می شود
    • 1-1: درجه ی رضایت
    • 1-2: میزان درآمد
  • 2: تعیین پدر خانواده (پدر قبلی از بین خواهد رفت)
    • برای تعریف پدر اطلاعات زیر دریافت می شود:
    • 2-1: شماره ملی
    • 2-2: نام و نام خانوادگی پدر
    • 2-3: سن پدر
    • جنسیت پدر به صورت خودکار مقداردهی می شود (از ورودی دریافت نمی شود)
  • 3: تعیین مادر خانواده (مادر قبلی از بین خواهد رفت)
    • برای تعریف مادر اطلاعات زیر دریافت می شود:
    • 2-1: شماره ملی
    • 2-2: نام و نام خانوادگی مادر
    • 2-3: سن مادر
    • جنسیت مادر به صورت خودکار مقداردهی می شود (از ورودی دریافت نمی شود)
  • 4: اضافه کردن فرزند به خانواده
    • برای ایجاد یک فرزند اطلاعات زیر دریافت می شود:
    • 4-1: شماره ملی فرزند
    • 4-2: نام و نام خانوادگی فرزند
    • 4-3: سن فرزند
    • 4-4: جنسیت فرزند
  • 5: حذف فرزند ار خانواده
    • شماره ملی فرزند دریافت شده و در صورت وجود حذف می شود
  • 6: چاپ اطلاعات خانواده (شامل اعضای خانواده، درجه ی رضایت و سطح درآمد)
  • 7: خروج از برنامه

نکته ها:

  • همه توابع باید معتبر بودن ورودی را بررسی کنند. برای مثال تابع removeChild ابتدا بررسی می کند که آیا فرزندی با اندیس ورودی برای حذف کردن وجود دارد؟ و یا تابع setter مربوط به درجه ی رضایت خانواده، ابتدا بررسی می کند که مقدار ورودی در بازه 1 تا 10 قرار دارد یا خیر.
  • دو تابع printHappinessLevel و printIncomeLevel خصوصی هستند و تنها توسط تابع print مورد استفاده قرار می گیرند.
  • استفاده از ابزارهای خوانده نشده موجب کاهش نمره ی تمرین می گردد.
  • استفاده از توابع اضافی مجاز است.

ارسال تمرین:

  • فرصت ارسال این تمرین تا روز شنبه، 29 اسفند، ساعت 24 هست.
  • فرصت ارسال تمرین به هیچ عنوان تمدید نخواهد شد.
  • نحوه ارسال تمرین ها در این پست توضیح داده شده.
  • عنوان ایمیل: برنامه نویسی پیشرفته، نام دانشجو، عنوان تمرین
  • مثال: برنامه نویسی پیشرفته، علی بهرامی، تمرین پنجم

  • بیگلری
۱۶
اسفند

جدول مندلیف رو در خروجی چاپ کنید. 

نکته ها:

  • حتما باید از format و آرایه ها استفاده کنید.
  • رسم اعدادی که دور یک نمونه اش دایره رسم شده، لازم نیست.
  • ساختار خروجی باید به صورت تقریبی مشابه تصویر باشد.
  • رسم عنوان جدول بهمون شکلی که نشون داده شده، الزامی است.

ارسال تمرین:

  • فرصت ارسال این تمرین تا روز جمعه 21 اسفند، ساعت 24 می باشد. تمرین هایی که با یک دقیقه تاخیر نسبت به این زمان ارسال شوند، مورد قبول نخواهند بود.
  • نحوه ارسال تمرین ها در این پست توضیح داده شده.

  • بیگلری
۰۹
اسفند

تمرین دوم رو با استفاده از کلاس به صورت زیر دوباره نویسی کنید.

کلاس دانشجو (Student) دارای ساختار زیر است:

  • حالت ها:
  • نام
  • آرایه ای از درس ها ([]Course)
  • رفتارها:
  • setter و getter مربوط به نام
  • محاسبه معدل (calculateAverage): یک مقدار float برمی گرداند که معدل دانشجو است
  • چاپ مشخصات درس ها (printCourses)
  • سایر رفتارهایی که برای ست کردن درس های یک دانشجو لازم است!

کلاس درس (Course) دارای ساختار زیر است:

  • حالت ها:
  • نام
  • تعداد واحد
  • نمره
  • رفتارها:
  • setter و getter مربوط به نام، تعداد واحد و نمره
  • یک سازنده بدون پارامتر
  • یک سازنده با سه پارامتر نام، تعداد واحد و نمره
  • چاپ مشخصات (print) شامل نام، تعداد واحد و نمره

نکته ها:

  • سایر بخش های تمرین دقیقا مشابه تمرین دوم است.
  • از آنجا که شاید هنوز کار با کلاس ها برایتان کمی دشوار باشد، استفاده از فیلدهای public هم مجاز است.
  • انجام ناقص این تمرین هم حتی در درک بهتر مفاهیمی که در ادامه یاد خواهیم گرفت، بسیار مفید خواهد بود.

ارسال تمرین:

  • فرصت ارسال این تمرین تا روز یکشنبه 16 اسفند، ساعت 1 می باشد. تمرین هایی که با یک دقیقه تاخیر نسبت به این زمان ارسال شوند، مورد قبول نخواهند بود.
  • نحوه ارسال تمرین ها در این پست توضیح داده شده.
  • عنوان ایمیل: برنامه نویسی پیشرفته، نام دانشجو، عنوان تمرین
  • مثال: برنامه نویسی پیشرفته، علی بهرامی، تمرین اول
  • عنوان فایل: YourName.java
  • مثال: Ali Bahrami.java

 

  • بیگلری
۰۴
اسفند

برنامه ای بنویسید که شاگرد اول کلاس رو بصورت زیر پیدا کند.

ورودی

ورودی برنامه دقیقا بر اساس ساختار توضیح داده شده در زیر است.

  • در ابتدا یک عدد صحیح n وارد می شود که بیانگر تعداد دانشجوهای کلاس است. سپس به ازای هر دانشجو، اطلاعات زیر وارد می گردد.
  • ابتدا نام دانشجو و سپس یک عدد صحیح m که تعداد دروس دانشجو است. آنگاه به تعداد m، اطلاعات درس های دانشجو وارد می شود.
  • هر درس شامل نام (رشته)، واحد (عدد صحیح بین 1 تا 4) و نمره (عدد اعشاری بین 0 تا 20) است.

خروجی

برنامه برای همه دانشجوها معدل را محاسبه کرده و فهرست دانشجوها و معدل هر یک را در خروجی چاپ می کند (به همان ترتیبی که در ورودی وارد شده اند).

سپس در آخرین خط، نام دانشجویی که بیشترین معدل را داشته و همه درس هایش چاپ می شوند.

نکته ها:

  • برای نگهداری اطلاعات می توانید از هر تعداد آرایه که نیاز است استفاده کنید.
  • طول آرایه ها به صورت ثابت تعریف نگردد! و بسته به n و m وارد شده، تعیین شود.
  • استفاده از Scanner و Formatter برای خواندن از ورودی و نوشتن در خروجی اجباری است.
  • برای چاپ کردن نام در خروجی از طول میدان 20 (چپ چین) استفاده کنید.
  • استفاده از ابزارهای خوانده نشده موجب کاهش نمره ی تمرین می گردد.

ارسال تمرین:

  • فرصت ارسال این تمرین تا روز یکشنبه، 9 اسفند، قبل از شروع کلاس (ساعت 10) هست.
  • فرصت ارسال تمرین به هیچ عنوان تمدید نخواهد شد.
  • نحوه ارسال تمرین ها در این پست توضیح داده شده.
  • عنوان ایمیل: برنامه نویسی پیشرفته، نام دانشجو، عنوان تمرین
  • مثال: برنامه نویسی پیشرفته، علی بهرامی، تمرین دوم

مثال:

  • ورودی:

3 --> (n)

Bahrami 2 --> (m)

Riazi 3 10.5

Fizik 3 9.25

Emadi 3

Riazi 3 12.5

Fizik 3 8.75

Programming 4 20

Mohammadi 1

Riazi 3 14

  • خروجی:

Bahrami             9.875

Emadi                14.375

Mohammadi        14

Top Student: Emadi

Riazi 3 12.5

Fizik 3 8.75

Programming 4 20

  • بیگلری
۰۲
اسفند

سه تابع با نام های readInt، readFloat و readString بنویسید.

  • readInt : یک عدد صحیح از ورودی خوانده و برمی گرداند. در صورت عدم وجود عدد، 0 برگردانده می شود.
  • readFloat : یک عدد اعشاری از ورودی خوانده و برمی گرداند. در صورت عدم وجود عدد اعشاری، 0 برگردانده می شود.
  • readString : یک رشته از ورودی خوانده و برمی گرداند. در صورت عدم وجود رشته، رشته تهی ("") برگردانده می شود.

نکته ها:

  • تابع readLine توسط بنده به عنوان نمونه پیاده سازی شده است.
  • کاراکترهای جداکننده: فاصله، تب و کاراکتر خط جدید
  • کد زیر را کپی کرده و توابع مربوطه را پیاده سازی کنید.

ارسال تمرین:

  • فرصت ارسال این تمرین تا روز سه شنبه، 4 اسفند، قبل از شروع کلاس (ساعت 10) هست.
  • فرصت ارسال تمرین به هیچ عنوان تمدید نخواهد شد.
  • نحوه ارسال تمرین ها در این پست توضیح داده شده.
  • عنوان ایمیل: برنامه نویسی پیشرفته، نام دانشجو، عنوان تمرین
  • مثال: برنامه نویسی پیشرفته، علی بهرامی، تمرین اول

مثال:

  • ورودی: 
  • 10 123.12 mohammad other characters in this line
  • خروجی:

Integer: 10

Float: 123.12

String: mohammad

Line:  other characters in this line

  • ورودی: 
  • 110 1223.132mohsen test
  • خروجی: 
  • Integer: 10
  • Float: 123.12
  • String: mohsen
  • Line:  test
  • ورودی:
  • 27
  • 98.0maryam100
  • last line
  • خروجی:

Integer: 27

Float: 98.0

String: maryam100

Line: last line

public class HomeWork1 {

public static void main(String args[]) throws IOException {
int num1= readInt();
float num2= readFloat();
String num3= readString();
String line= readLine();

System.out.println("Integer: " + num1);
System.out.println("Float: " + num2);
System.out.println("String: " + num3);
System.out.println("Line: " + line);
}

public static int readInt() throws IOException {
...
}

public static float readFloat() throws IOException {
...
}

public static String readString() throws IOException {
...
}

public static String readLine() throws IOException {
String line= "";
int input= System.in.read();
while(input!=-1 && input!='\n') { // -1: end of input \n: end of line
line += (char) input;
input= System.in.read();
}
return line;
}
}
  • بیگلری