Python_project_phase1.pdf

‫فاز اول پروژه‬
‫درس مبانی برنامه نویسی‬
‫موعد ارسال‪ :‬شنبه‪ 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‬‬