فاز اول پروژه درس مبانی برنامه نویسی موعد ارسال :شنبه 30 ،فروردین 1393 فاز اول پروژه درس مبانی برنامه نویسی به نام خدا موعد ارسال 30 :فروردین 1393 نکات کلی موعد تحویل ساعت ( 11:11ظهر) روز شنبه 03 ،فروردین 1010بوده و به هیچ عنوان تمدید نخواهد شد. تأخیر تا 1ساعت ،به ازای هر 0دقیقه موجب کسر شدن %1نمره ،از 1ساعت تا 42ساعت موجب کسر شدن %43نمره ،از 42ساعت تا 41ساعت ،به ازای هر 4دقیقه موجب کسر شدن %1نمرهی دیگر و بین 41ساعت تا 24ساعت باعث کسر شدن %13نمره میشود .از 24ساعت تا 21ساعت نیز ،به ازای هر 1.4دقیقه موجب کسر شدن %1درصد نمره ی دیگر می شود ( .بدیهی است که با تاخیر بیش از 21 ساعت %133نمره از شما کسر شده و دیگر از این تمرین نمره ای نمی گیرید ) قطع بودن اینترنت خوابگاه ،کندی پایگاه اینترنتی دانشکده ،تمام شدن کارت اینترنت و … هیچکدام دلیل موجهی برای تأخیر نیستند .بنابراین پیشنهاد میشود جوابهای خود را در دانشکده ارسال کنید. هرگونه رونوشت ،1برای منبع رونوشت و همچنین نسخههای رونویسی شده -2نمره در پی خواهد داشت. تالش برای استفاده از منابع سیستم مانند کارت صدا و پرینتر و ...منجر به دریافت نمرهی صفر میشود. 1کپی یا همان کُپ فاز اول پروژه درس مبانی برنامه نویسی سواالت خود را در صفحه درس مبانی برنامه سازی در سایت piazza.comمطرح کنید. 1 سامانه مدیریت آزمایشگاه پژوهشی در یکی از دانشکدههای دانشگاه صنعتی شریف ،آزمایشگاه پژوهشیای وجود دارد که تمامی دانشجویان دوره کارشناسی ،از رشتهها و گرایشهای مختلف ،در صورت تمایل میتوانند در آن عضو شوند. این آزمایشگاه تحت نظارت چند نفر از اساتید مدیریت میشود و در آن موضوعات پژوهشی و پروژههای تحقیقاتی مختلفی تعریف شده است که هر یک از اعضا وابسته به نوع عالقه مندی خود میتواند در یک یا چند تا از این پروژهها حضور داشته باشد. این پروژهها در قالب تیمی و در طی مدت زمان تعیین شدهای انجام میشوند .بعد گذشت مدتی از ایجاد این آزمایشگاه پژوهشی و عضویت دانشجویان در آن و افزایش تعداد پروژههای تعریف شده در آن ،اساتید احساس کردند که برای مدیریت بهتر و نظارت بهتر و مطلوبتر بر این آزمایشگاه ،به یک برنامه کامپیوتری نیاز دارند تا هم از دست پروندهها و اطالعات کاغذی که روز به روز بیشتر میشدند راحت شوند و هم بتوانند اموری مثل گزارش گیری از وضعیت پروژهها و افراد را با سهولت بیشتری انجام دهند. با توجه به این که سامانهی مورد نظر ،یک برنامه کامپیوتری با مقیاس کوچک و قابلیتهای محدود بود تصمیم گرفته شد تا پیاده سازی آن را به تعدادی از دانشجویان دانشگاه بسپارند و برای مشخص شدن روال انجام کار و نتیجه گیری بهتر ،انجام پروژه به دو فاز تقسیم شد .در فاز اولیه ،مقدمات و قابلیتهای اولیه سامانه فراهم میشود و در فاز دوم ویژگیهای پیشرفتهتر و قابلیتهای بیشتری به آن اضافه میشود. اینک شما برای پیاده سازی این سامانه انتخاب شدهاید! بنا بر این نیازمندیها و خواستههای مربوط به فاز اول فاز اول پروژه درس مبانی برنامه نویسی 4 این پروژه را که در ادامه شرح داده شده است به خوبی و با دقت مطالعه کرده و پیاده سازی این برنامه را شروع کنید. نیازمندی ها این سامانه سه دسته اطالعات مهم را نگهداری میکند: اطالعات مربوط به اساتیدی که مدیریت آزمایشگاه را بر عهده دارند:این اطالعات شامل ،شناسه استاد ،نام ،نام خانوادگی و نام دانشکده محل تدریس است. اطالعات مربوط به دانشجویان عضو در آزمایشگاه:این اطالعات شامل شماره دانشجویی ،نام ،نام خانوادگی ،نام دانشکده ،سن است. اطالعات پروژههای تحقیقاتی تعریف شده و در حال اجرا در آزمایشگاه:این اطالعات شامل شماره پروژه ،عنوان پروژه ،رشتهی درسی مرتبط ،تاریخ شروع و تاریخ پایان پروژه است .در صورتی که پروژهای هنوز به پایان نرسیده باشد ،مشخصهی تاریخ پایان آن خالی خواهد بود. در اطالعات ذکر شده ،به ترتیب ،شناسه استاد ،شماره دانشجویی و شماره پروژه همگی مشخصههایی یکتا هستند. به این معنی که هیچ دو استادی شناسه مشابه ،هیچ دو دانشجویی شماره دانشجویی یکسان و هیچ دو پروژهای شماره پروژه ی یکسان نخواهند داشت. ارتباط میان این اطالعات و موجودیتها به این صورت است که: هر دانشجو میتواند به صورت همزمان در چند پروژه مشارکت داشته باشد. هر پروژه میتواند توسط صفر ،یک یا تعداد بیشتری دانشجو انجام شود ( .حالت صفر زمانی است که پروژه به تازگی تعریف شده و هنوز دانشجویی به آن پروژه ملحق نشده است ) نظارت خود داشته باشد. بنابر این عالوه بر نگهداری مشخصات تک تک این موجودیتها یعنی اساتید ،دانشجویان عضو و پروژهها ،ارتباط میان آنها نیز در سامانه نگهداری و تعیین میشود( .یعنی هر پروژه توسط کدام دانشجوها انجام میشود ،هر استاد ناظر کدام پروژهها است و ) ... فاز اول پروژه درس مبانی برنامه نویسی هر پروژه تحت نظارت یک استاد خواهد بود ( .صرفا یک استاد ) ولی هر استاد ممکن است چند پروژه را تحت 0 پیاده سازی طبق نیازمندیهایی که در بخش پیش معرفی شد ،روش پیاده سازی پروژه و نگهداری اطالعات را طراحی و تعیین کنید .برنامهی شما پس از اجرا همواره منتظر دریافت دستورالعملهای تعریف شده خواهد بود و با دریافت هر دستورالعمل ،عملیات متناظر با آن را انجام خواهد داد. کارکردها و عملیات تعریف شده برای سامانه به صورت زیر است: ثبت و حذف اطالعات کاربر با استفاده از دستورات مشخص و با رعایت ساختار تعیین شده قادر به ثبت اطالعات در برنامه خواهد بود .با توجه به این که سه نوع داده در سامانه نگهداری میشود ،نوع داده نیز باید در دستور ثبت اطالعات مشخص باشد. بنا بر این ،کاربر برای وارد کردن اطالعات ابتدا یکی از دستورهای زیر را وارد میکند: add project_infoیا add professor_infoیا add student_info پس از زدن هریک از این دستورها و زدن ،enterبرنامه منتظر دریافت داده های مرتبط میماند. در این حالت کاربر هر مجموعه اطالعات مربوط به یک موجودیت را در یک خط وارد کرده و enterمیزند و مجدد داده ی بعدی را وارد میکند و تا زمانی که کلمه endرا وارد نکرده برنامه داده های جدید را از کاربر دریافت کرده و ثبت میکند .برای حذف اطالعات نیز دستورات مشابهی تعریف شده است. در ادامه ساختار دقیق دستورات ثبت و حذف اطالعات شرح داده شده است: فاز اول پروژه درس مبانی برنامه نویسی 2 ساختار ورود اطالعات دانشجو: بعد از زدن دستور add student_infoو رفتن برنامه به حالت دریافت اطالعات دانشجو ،کاربر به این صورت اطالعات دانشجو را وارد میکند ( .به ترتیب ،شماره دانشجویی ،نام ،نام خانوادگی ،دانشکده و سن ) add student_info 92101234 Ahmad Karimi civil 19 91124555 Reza Razavi Chemistry 20 90341133 Zahra Ahmadi Computer 21 end هر مشخصه ای با یک spaceاز مشخصه دیگر جدا شده است ( .نام یا نام خانوادگی دو بخشی نداریم و در صورت دوبخشی بودن ،هر دو بخش به یکدیگر چسبیده نوشته میشوند) . با زدن دستور endبرنامه از حالت دریافت اطالعات دانشجو خارج شده و منتظر دریافت دستور بعدی می ماند. حذف اطالعات دانشجو: برای حذف اطالعات مربوط به دانشجو ،ابتدا دستور delete student_infoو سپس شماره دانشجویی های مورد نظر وارد میشود .هر شماره دانشجویی که وارد شد ،اطالعات مربوط به آن دانشجو به کلی از سیستم پاک خواهد شد .این کار تا زمان دریافت دستور endادامه مییابد. delete student_info 90341133 91201637 end ساختار ورود اطالعات اساتید: بعد از زدن دستور add professor_infoو رفتن برنامه به حالت دریافت اطالعات استاد ،کاربر به صورت زیر اطالعات استاد را وارد میکند ( :به ترتیب ،شناسه استاد ،نام ،نام خانوادگی و دانشکده ) add professor_info 2234 Morteza Rahimi Materials end برای ثبت اطالعات اساتید نیز مانند دانشجویان ،این کار تا زمان وارد کردن دستور endادامه مییابد. حذف اطالعات استاد: برای این کار دستور delete professor_infoتعریف شده است که پس از آن شماره شناسه اساتید مورد نظر برای حذف وارد میشود .روش به پایان رسیدن این دستور مشابه دستورات پیشین است. فاز اول پروژه درس مبانی برنامه نویسی 3421 Maryam Moini Aerospace 1 delete professor_info 2234 3421 end ساختار ورود اطالعات پروژهها: بعد از زدن دستور add project_infoو رفتن برنامه به حالت دریافت اطالعات پروژهها ،کاربر به صورت زیر اطالعات پروژهها را ثبت میکند: add project_info 3 TheoryOfDenseFluids Mechanical 1391-01-20 1393-01-25 11 DrugMetabolism Chemistry 1392-05-06 1392-11-20 end در این نوع ثبت داده نیز مانند موارد قبلی ،ثبت اطالعات تا زمانی که کاربر endرا وارد نکرده است ادامه مییابد و بعد از وارد کردن کلمه endبرنامه از حالت دریافت اطالعات پروژه خارج شده و منتظر دریافت دستور بعدی میشود. حذف اطالعات پروژه: دستور delete project_infoبرای حذف اطالعات پروژه از سامانه در نظر گرفته شده است .بعد از وارد کردن این دستور ،به ترتیب شماره پروژه یا شماره های چند پروژه مورد نظر وارد میشود: فاز اول پروژه درس مبانی برنامه نویسی 6 delete project_info 3 end اضافه کردن اعضا به پروژه: ابتدا کاربر دستور add project_memberرا وارد کرده و سپس با ساختار زیر دانشجویان را به پروژه ها اضافه میکند: add project_member 92101234 3 92101234 11 90341133 3 end که در اینجا ،عدد اول شماره دانشجویی دانشجو و عدد دوم شماره شناسهی پروژه است. همان طور که پیش از این نیز ذکر شد ،هر دانشجو میتواند همزمان در چند پروژه حضور داشته باشد و در هر پروژه ممکن است به صورت همزمان چند نفر مشغول به فعالیت باشند پس با نمونهی باال ،در پروژه 0هم دانشجوی 92101234و هم دانشجوی 90341133حضور دارند و از طرف دیگر دانشجوی 92101234هم در پروژه شماره 0هست هم در پروژه شماره .11 با زدن دستور ،endبرنامه از حالت دریافت اطالعات اعضای پروژه خارج میشود. لغو عضویت دانشجو در یک پروژه: کاربر دستور remove project_memberرا وارد کرده و سپس مشابه حالت اضافه کردن عضو ،شماره دانشجوی مورد نظر و شماره پروژه را درج میکند .این کار تا زدن دستور endادامه مییابد و هر بار دانشجوی مورد نظر از اعضای آن پروژه حذف میشود. remove project_member 92101234 11 end تعیین استاد پروژه: برای تعیین استاد هر پروژه ،کاربر ابتدا دستور set project_professorرا وارد کرده و سپس با ساختار زیر استادها را به پروژه مربوط میکند ( :عدد اول شناسه استاد و عدد دوم شماره پروژه است ) set project_professor 2234 3 فاز اول پروژه درس مبانی برنامه نویسی 90341133 3 7 45 11 2234 11 end مانند سایر دستورات ،این کار با زدن دستور endبه اتمام میرسد و برنامه به حالت انتظار برای دریافت دستور بعدی میرود. نکته مهم :توجه داشته باشید که هر پروژه صرفا تحت نظارت یک استاد خواهد بود پس بعد از ثبت دادههای نمونه باال ،در مرحله دوم ،برای پروژه 11استاد با شناسه 21ثبت میشود اما در مرحله سوم ،استاد پروژه ی شماره 11 با 4402جایگزین میشود و در نهایت ،استاد پروژه شماره ،11استادی با شناسه 4402خواهد بود. البته یک استاد میتواند همزمان مسئول و ناظر چند پروژه باشد. حذف استاد از پروژه: بعد از زدن دستور remove project_professorو رفتن برنامه به حالت دریافت شناسهها ،کاربر شماره پروژه مورد نظر خود را وارد میکند .مثال: remove project_professor 3 end با زدن شماره هر پروژهای در این حالت ،پروژه به حالت بدون استاد در میآید و درواقع استاد مربوطه از سمت نظارت آن پروژه حذف میشود. فاز اول پروژه درس مبانی برنامه نویسی 4 گزارش گیری یکی از کارکردهای اصلی این سامانه ،قابلیت گزارش گیری از اطالعات است .چند نوع گزارش گیری مختلف در این سامانه مورد نیاز است که به ترتیب با استفاده از دستورات تعیین شده در ادامه ،نمایش داده میشوند: گزارش پروژهها: با زدن دستور projects_reportاطالعات تمامی پروژههای ثبت شده در سامانه به کاربر نمایش داده میشود و در انتها تعداد آنها نمایش داده میشود .مثال فرض کنید دو پروژه در سامانه ثبت شده است پس با زدن دستور projects_reportاطالعات زیر دریافت خواهد شد: 3 TheoryOfDenseFluids Mechanical 1391-01-20 1393-01-25 11 DrugMetabolism Chemistry 1392-05-06 1392-11-20 Number of projects: 2 گزارش اساتید: با زدن دستور professors_reportsاطالعات و تعداد استادهای ثبت شده در سامانه نمایش داده میشود مثال: 2234 Morteza Rahimi Materials 3421 Maryam Moini Aerospace Number of professors: 2 گزارش دانشجوها: دستور students_reportاطالعات و تعداد دانشجویان را نمایش میدهد مثال: 92101234 Ahmad Karimi civil 19 91124555 Reza Razavi Chemistry 20 Number of students: 3 گزارش اعضای پروژه: در این گزارش ،با تعیین یک پروژه ،شماره دانشجویی و نام و نام خانوادگی دانشجویان مشارکت کننده در آن نمایش داده میشود .در انتهای گزارش نیز ،تعداد دانشجویان مشارکت کننده در این پروژه نمایش داده میشود. فاز اول پروژه درس مبانی برنامه نویسی 90341133 Zahra Ahmadi Computer 21 1 دستور project_members_report nبرای این کار در نظر گرفته شده است که در این دستور به جای nشماره پروژه مورد نظر قرار میگیرد. مثال فرض کنید در پروژهای با شماره شناسه ،0پیش از این دانشجویان با شماره دانشجویی های 92101234 و 90341133ثبت شده اند( .با کمک دستور )add project_memberحال با دستور project_members_report 3مشخصات این دانشجویان به صورت زیر به کاربر نمایش داده میشود: 92101234 Ahmad Karimi 90341133 Zahra Ahmadi Number of members: 2 گزارش پروژههای استاد: دستور professor_project_report nبرای دریافت مشخصات پروژههای یک استاد تعریف شده است و به جای nباید شماره شناسهی استاد قرار گیرد .به این صورت که به عنوان مثال با زدن دستور professor_project_report 2234فرض کنید استاد برای پروژه شماره 0به عنوان ناظر تعیین شده باشد آنگاه اطالعات مربوط به شماره پروژه و نام پروژه نمایش داده میشود و در نهایت تعداد پروژههای استاد مشخص میشود: 3 TheoryOfDenseFluids Number ofprojects: 1 فاز اول پروژه درس مبانی برنامه نویسی 13 توجه داشته باشید یک استاد میتواند برای چند پروژه به عنوان ناظر تعیین شده باشد ولی هر پروژه تنها یک استاد ناظر دارد. گزارش پروژههای دانشجو: دستور student_projects_report nبرای دریافت نام ،شماره و تعداد پروژههای یک دانشجوی خاص تعیین شده است که در این دستور به جای nشماره دانشجویی قرار میگیرد. برای مثال فرض کنید قبال دانشجوی 92101234به عضویت پروژه شماره 43با نام DrugMetabolism درآمده است در این صورت نتیجه دستور student_project_report 92101234به صورت زیر خواهد بود: 20 DrugMetabolism Number of projects: 1 گزارش دانشکدههای مشارکت کننده: برای آن که بتوان فهمید به طور کلی دانشجویان از چه دانشکدههایی در این آزمایشگاه پژوهشی عضویت دارند، گزارشی از دانشکدههای اعضا نیاز داریم برای این منظور دستور departments_reportدر نظر گرفته شده است .توجه داشته باشید با زدن این دستور ،نام دانشکدههای دانشجویان عضو نمایش داده میشود اما نباید دانشکدهای به صورت تکراری در گزارش درج شود .یعنی با فرض این که در اطالعات دانشجویان برای 1نفر از آنها دانشکده Civilو برای دو نفر Computerو یک نفر Aerospaceدرج شده باشد نتیجه گزارش به صورت زیر خواهد بود: Civil Computer Aerospace خروج همان طور که در قسمتهای مختلف تاکید شد ،برنامهی شما پس از اجرا ،در یک حلقه همواره منتظر دریافت دستور کاربر است ،با دریافت دستور ،به انجام کار مورد نظر پرداخته و پس از انجام کار ( در حالتهای ثبت و حذف با دریافت endو در حالتهای گزارش گیری پس از نمایش گزارش در خروجی ) مجددا منتظر دریافت دستور بعدی میماند. پایان برسد. نکات بسیار مهم -1پروژهها بر خالف تمرینها ،تحویل حضوری نیز خواهد داشت .تنها بخشی از نمره پروژه مربوط به پاسخ صحیح و کامل برنامه به تستها خواهد بود و برخی از بخشها به صورت جداگانه نمره خواهد داشت .شما پروژهی خود را مانند تمرین در Judgeآپلود میکنید اما این بار به صورت همزمان تست و نمره دهی نمیشود بلکه تست پروژه با نمونه تستهای آماده شده نیز در همان زمان تحویل حضوری انجام میگیرد. فاز اول پروژه درس مبانی برنامه نویسی این کار تا زمان دریافت دستور خروج ادامه مییابد و پس از دریافت دستور exitباید اجرای برنامهی شما به 11 -4در پیاده سازی تمامی بخشها ( ،ورودی و خروجی ،نحوه دریافت دستورات و ) ...ساختار خواسته شده را رعایت کنید .عدم رعایت ساختار تعیین شده موجب از دست دادن بخشی از نمره پروژه خواهد شد. -0توقع میرود در پیاده سازی پروژه از مفاهیم آموخته شده در کالس به نحو مطلوب استفاده شود ،نام گذاری صحیح و مناسب متغیرها ،استفاده از توابع ،کامنت گذاری و .... -2در خصوص هرگونه تقلب (کوچک یا بزرگ) ،هیچ بخششی صورت نمیگیرد و مطابق با قوانین درس برخورد خواهد شد. موفق باشید فاز اول پروژه درس مبانی برنامه نویسی 14
© Copyright 2025 Paperzz