وبلاگ سید جلال سیدیزدی

تمرین دوازدهم

سه شنبه, ۱۹ فروردين ۱۳۹۳، ۱۰:۱۲ ب.ظ

سلام دوستان

تمرین دوازدهم به قرار زیر است:

پروژه weblog-analyzer فصل 4 را با نام دیگری ذخیره کرده و متدهایی برای کارهای زیر یه آن اضافه کنید:

  • تعداد کل مراجعه به وب سایت را برگرداند.
  • شلوغ ترین ساعت را برگرداند.
  • مشخص کند چه روزی از ماه بیشترین مراجعه صورت گرفته است.

راهنمایی: از آنجا که کلاس LogEntry متدی برای تعیین روز ندارد، برای یافتن تاریخ روز باید متدی به این منظور به آن اضافه کنید.


موعد تحویل: پنج شنبه 21 فروردین 93 ساعت 22

با تاخیر: جمعه 22 فروردین 93 ساعت 20

  • ۹۳/۰۱/۱۹

نظرات  (۱۷)

سلام استاد.
خسته نباشید.

ممنون از راهنمایی که کردین.

با تشکر.
التماس دعا.
پاسخ:
سلام ممنون
موفق باشید.
سلام استاد
استاد همینطوری که نمیتونیم سه تا متد رو به کلاس  LogAnalyzer اضافه کنیم
استاد چه کاری باید در کلاس LogfileReader انجام بدیم
پاسخ:
سلام
همینطوری نه. با فکر و دقت!
هیچ کاری در LogfileReader انجام ندهید.
موفق باشید.
سلام استاد.

ببخشید من برای اینکه بیشترین روز رو مشخص کنم به آرایه اون مقدار 31 میدم برای دفعه اول درست کار میکنه ولی دفعه دوم که متد رو اجرا میکنم eror میده و پنجره ای که متد رو نوشتم باز میشه.   اما وقتی از 31 بیشتر میدم این مشکلیش نمیاد. 

چرا اینطوری میشه؟؟؟    

شاید من بخوام تعداد روز هام رو 30 روز در ماه در نظر بگیرم.  مگه نباید آرایه از 0 تا n-1  باشه؟؟

اینطوری اضافه کردم درسته؟؟

;[dayCounts = new int[32
الان اگه بجا 32 بدیم 31 eror میده.

با تشکر از اینکه به سؤالات به دقت پاسخ کامل میدین.
     
پاسخ:
سلام
ماه حداکثر 31 روزی است.
موفق باشید.
  • angry & hardworking student
  • سلام استاد خسته نباشید . میشه مهلت ارسال تمرین(بدون تاخیر) رو بیشتر کنید ؟ لطفااااا
    پاسخ:
    سلام
    شما سعی خودتون رو بکنید.
    بقیه اش با خدا.
    موفق باشید.
    سلام استاد
    من همونی هستم که مشکل آقای حمید رضا رو دارم
    من فایلو تو یه ادیتور باز کردم اما بازم همین مشکل هست
    باید چیکار کنم؟؟؟ :(
    پاسخ:

    سلام
    محتویات فایل weblog.txt رو پاک کنید و خودتون چند سطر مثل زیر در اون بنویسید.

    2010 5 01 00 00

    2010 5 01 00 01

    2010 5 02 10 11

    بعد فایل رو ذخیره کنید.

    موفق باشید.




    سلام.

    از راهنمایی که کردید متشکرم.

    کاملآ مسئله واضح شد.

    التماس دعا.
    پاسخ:
    سلام
    الحمدلله.
    محتاجیم به دعا.
    موفق باشید.
    سلام استاد
    منظورم اینه که میگم من موقعی که برنامه رو اجرا میکنم از تاریخ 31/5 ساعت 22:53 تا ساعت 23:55 میاره.
    کمتر یه ساعت.
    همه ی روز های ماه 5 رو اجرا نمیکنه. من فقط به قسمت کوچکی از فایل دسترسی دارم.
    با این چکار کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    پاسخ:
    سلام
    متد printData رو اجرا کن ببینید چی می نویسه.
    فایل رو تو یک ادیتور مثل notepad++ باز کنید ببینید چی داخلش ذخیره شده.
    موفق باشید.
    استاد ببخشید چرا وقتی متد printHourlyCounts از کلاس LogAnalyzer رو اجرا میکنیم "فقط برای روز 31" از ماه 5 و از ساعت 22:53 تا 23:55 بیشتر نمیاره؟!
    پاسخ:
    سلام
    حمید رضا هم همین رو پرسیده.
    نمی دانم!
    من که اجرا می کنم چنین اتفاقی نمی افتد.
    آیا شما این متد را تغییر دادید؟
    موفق باشید.
    سلام استاد
    باید توی کلاس logEntry یک متد برای برگردوندن ماه بنویسیم یا روز؟؟؟؟؟؟
    پاسخ:
    سلام
    روز.
    موفق باشید.
    سلام استاد.
    خسته نباشید.

    استاد کد این پروژه  فهمیدنش خیلی مشکله یعنی مثلا 
    public class LogEntry implements Comparable<LogEntry>

    تو همین قسمت اولش  implements  یعنی چی که مثل public class  رنگش عوض شده یا هر قسمت دیگه !!!!؟؟؟؟؟

    میشه کمی توضیح بدین.
    باتشکر .
    پاسخ:
    سلام ممنون
    مسلماً اگر برای حل این مساله مهم بود حتماً توضیح می دادم.

    توضیح مساله: هر سطر فایل weblog.txt اصطلاحاً یک entry یا وارده است که تاریخ دسترسی به وب سایت رو نشان می دهد.
    حال کاری که شما باید بکنید اینه:
    1. برای قسمت سوم تمرین، در کلاس LogEntry یک متد getter برای تعیین تاریخ روز entry بنویسید. (یعنی باید روز entry را برگرداند) . این تمام کاری است که در این کلاس باید انجام دهید.
    2. سه متد در کلاس اصلی یعنی LogAnalyzer بنویسید که کارهای خواسته شده رو انجام بده.

    به عبارت دیگر برای دو قسمت اول تمرین هیچ تغییری در هیچ کلاسی غیر از کلاس اصلی نیاز نیست.

    دو نکته دیگر هم که بهتره بدونید اینه:

    • final در جاوا شبیه const در C است. یعنی متغیر مربوطه غیر قابل تغییر می شه. مانند DAY و HOUR در کلاس LogEntry. طبق قرارداد متغیرهای فاینال با حروف بزرگ نوشته می شوند.
    • متد reset توی کلاس LogfileReader این امکان رو می ده که به اطلاعات دوباره دسترسی داشته باشیم. به عبارت دیگر مثل این است که به ابتدای فایل برگردیم.
    موفق باشید.
    سلام خسته نباشید
    استاد کد این پروژه رو اصن توضیح ندادین!
    اخر کلاس یه ذره فقط شفاهی توضیح دادین و یه کلاسشو new کردین
    الان این دو تایی کلاسی رو ک باید بفهمیم هم متوجه نمیشیم  
    پاسخ:
    سلام ممنون
    • با دقت بخونید.
    • به توضیحات گفته شده در سوال جواب های دیگر دقت کنید.
    • برنامه رو اجرا کنید (فایل weblog.txt رو تغییر دهید به طوری که فقط 5 سطر داشته باشد. بعد متدهای این دو کلاس رو در مد دیباگ سطر به سطر اجرا کنید.)
    • اگر سوال داشتید بپرسید.

    موفق باشید.

    لام استاد
    این برنامه از ساعت 22:53 تا ساعت 23:55 رو بیشتر نمیاره.
    من تمام برنامه رو بهم ریختم نتونستم درستش کنم.
    مشکلش کجاست؟؟؟
    میشه راهنمایی کنید.
    تازه ماه رو هم نمیشه تغییر داد. هر کاری کردم همون ماه پنجم رو میاره.
    اگه میشه لطفا اون اسلاید فصل چهار رو هم بزاریم.
    ممنون.
    پاسخ:
    سلام
    منظور شما رو متوجه نمی شم. یعنی چی که "از ساعت 22:53 تا ساعت 23:55 رو بیشتر نمیاره"؟
    همچنین شما چیزی رو نباید تغییر دهید. خوب فقط ماه 5 تو فایل ذخیره شده. خودتون چند سطر اضافه کنید از ماه های دیگر.
    برای دریافت اسلاید فصل چهارم اینجا کلیک کنید.
    موفق باشید.
    سلام
    استاد من اصلا این پروژه رو متوجه نمیشم
    کلاس هاشو که خوندم هیچی نفهمیدم
    میشه یکم توضیح بدین لطفا
    ممنون
    پاسخ:
    سلام
    شما کامنت های موجود در همه ی کلاس ها رو خوب بخونید ولی به کد کلاس های LogfileReader، LogfileCreator و LoglineTokenizer زیاد کاری نداشته باشید. یعنی بخونید ولی اگر متوجه نشدید اشکال نداره.
    کد دو کلاس باقی مونده رو بخونید و بفیهمید.

    حال دست به کار شوید.
    موفق باشید.
    سلام 
    استاد ما خیلی از قسمتای این پروژه رو نمیفهمیم؟؟؟
    پاسخ:
    سلام

    چرا سوال نکردید؟
    موفق باشید
     سلام استاد خسته نباشید
    ببخشید یه سوال.
    تو کدوم یکی از کلاساش باید این سه تا متد رو نوشت؟
    البته غیر از اون قسمتی که باید اضافه بشه.
    باید تو کلاس LogEntry  متدی برای نعیین روز درست کنیم و شلوغ ترین روز رو باید تو کدوم کلاس اضافه کنیم؟؟؟
    ممنون
    پاسخ:
    سلام ممنون
    تو کلاس اصلی.
    موفق باشید.
    سلام استاد خسته نباشید
    تاریخ رو خودمون تایین کنیم؟
    منظورم اینه که مثلا تاریخ رو بسازیم و مثلا مثل پروزه ساعت یکی یکی اضافه کنیم؟؟؟؟
    درسته؟؟
    پاسخ:

    سلام
    نه.
    در هر سطر فایل weblog.txt که در پوشه ی پروژه است، تاریخ و زمان یک دسترسی به وب سایت ذخیره شده است. مثلاً اولین سطر به قرار زیر است:

    2011 5 01 00 10

    که عبارت است از سال 2011 ماه 5 روز 01 ساعت 00 و دقیقه ی 10.

    در کلاس LogEntry دو متد accessor برای گرفتن ساعت و دقیقه وجود دارد ولی برای تعیین ماه متدی وجود ندارد. شما باید متدی به این منظور به آن اضافه کنید که ماه را برگرداند.

    نکته: در فایل weblog.txt فقط دسترسی های مربوط به ماه 5 وجود دارد. با این حال برنامه شما باید کلی باشد. برای تست برنامه چند سطر مربوط به ماه های دیگر به دلخواه اضافه کنید.

    موفق باشید.


    فصل4؟؟؟ کدوم قسمت؟؟کدوم صفحه؟؟؟
    همچین برنامه ای که وجود نداره استاد!!!! گشتم نبود .....
    پاسخ:
    سلام
    بخش 4.16.1 صفحه 139.
    موفق باشید.

    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی