بسم الله الرحمن الرحیم
تمرین جاوا - آزمون تیر اندازی سربازان
در يك پادگان ١٥ سرباز با درجه و شماره هاي شناسايي مختلفي حضور دارند كه قرار است توسط افسر ميدانِ تير، از آنها آزمون تيراندازي گرفته شود. هر سرباز چهار گلوله دارد كه در هر شليك، امتيازي بين ٠تا ١٠خواهد گرفت و اگر مجموع اين امتيازها ٢٨ يا بيشتر باشد نمره قبولي را كسب خواهد كرد و ارتقاء درجه خواهد يافت؛ در غير اين صورت توسط افسر ميدان تير، درجه ي آن سرباز، تنزل داده خواهد داشت. در پايان هر بار آزمون كليه ي سربازان، افسر ميدان تير، بايد گزارش دقيقي از نمرات اين آزمون را به فرمانده ارايه كند.اين گزارش بايد شامل مشخصات هر سرباز و امتيازش در شليك هر گلوله باشد. نحوه ارائه گزارش (يا همان چاپ خروجي) به شکل زير مي باشد.
Shooting Test [number]
====================
Soldier ID : [id]
Bullet 1 : [score 1]
Bullet 2 : [score 2]
Bullet 3 : [score 3]
Bullet 4: [score 4]
Final Score: [sum]
Initial Rank: [rank]
Final Rank: [changed rank]
**********************
Soldier ID : [id]
. . .
Shooting test [number] result: [ ]% of soldiers are Corporals
در صورتي كه پس از اجراي آزمون تيراندازي بيش از ٦٠درصد سربازان درجهشان سرجوخه باشد، در آن صورت بايد
اين آزمون مجدد برگزار شود و تا زمان رسيدن به نتيجه مطلوب اين فرايند تکرار مي شود. نتيجه مطلوب حالتي است كه كمتر از ٦٠درصد سربازان سرجوخه باشند و بقيه سربازان ستوان و يا گروهبان باشند.
ضمن در نظر داشتن فضاي مسئله و مفاهيم شي گرايي كه تاكنون خوانده ايد، كليه موجوديتها، رفتارها،وضعيت يا ويژگيهاي مورد نياز را تشخيص داده و آنها را در قالب كلاس(ها)،متد(ها)،فيلد(ها) و اشياء لازم پياده سازي كنيد.
جهات سادگي فرض كنيد كه درجات( )rankزير را داريم كه به صورت نزولي مرتب شده اند:
براي پياده سازي درجات در كدهاي خود ميتوانيد از اعداد متناظر هر درجه استفاده كنيد.
صورتي كه پايين ترين درجه را داشته باشد در صورت عدم كسب امتياز لازم، در همان درجه باقي خواهد
ماند. درجات به دست آمده از هر آزمون به آزمون بعدي انتقال مييابد.
اينکار ميتوانيد از كلاس Random استفاده كنيد.
کدهای این تمرین در گیتهاب :