🔥 چالش ۳۰ روزه Python for AI
#Day14
🎯 موضوع:
Mini Project — Student Data Analysis System
⭐ سطح:
متوسط
⏳ زمان تخمینی:
40 تا 60 دقیقه
📝 صورت مسئله:
امروز قرار است با استفاده از مطالب روزهای قبل، یک سیستم کوچک تحلیل اطلاعات دانشجویان بسازید.
فایل زیر را با نام:
students.csv
ایجاد کنید:
name,gpa,credits
Ali,17.8,70
Sara,18.5,95
Reza,15.2,40
Nima,18.1,120
Parsa,16.4,55
Arman,17.1,80
Mina,19.0,140
Ava,16.8,35
Yasmin,18.7,110
Amir,15.9,65
یک کلاس به نام:
Student
ایجاد کنید که شامل ویژگیهای زیر باشد:
✅ "name"
✅ "gpa"
✅ "credits"
و متدهای زیر را داشته باشد:
✅ "show_info()"
برای نمایش اطلاعات دانشجو
✅ "get_status()"
اگر تعداد واحدهای دانشجو حداقل 120 بود:
Graduated
و در غیر این صورت:
In Progress
برنامه باید:
✅ فایل CSV را بخواند.
✅ اطلاعات هر دانشجو را به یک شیء از کلاس "Student" تبدیل کند.
✅ تعداد کل دانشجویان را محاسبه کند.
✅ میانگین GPA را محاسبه کند.
✅ دانشجوی دارای بالاترین GPA را پیدا کند.
✅ دانشجویان دارای GPA برابر یا بیشتر از 18 را نمایش دهد.
✅ دانشجویان دارای GPA کمتر از 16 را نمایش دهد.
✅ نام یک دانشجو را از کاربر دریافت و اطلاعات او را جستوجو کند.
✅ اگر دانشجو پیدا نشد، پیام زیر را نمایش دهد:
Student not found!
✅ با استفاده از "try / except" خطاهای احتمالی خواندن فایل را مدیریت کند.
📌 نمونه خروجی:
===== Student Analysis System =====
Total Students: 10
Average GPA: 17.35
Top Student: Mina (19.0)
Students With GPA >= 18:
Sara
Nima
Mina
Yasmin
Count: 4
Students With GPA < 16:
Reza
Amir
Count: 2
Enter student name: Nima
Name: Nima
GPA: 18.1
Credits: 120
Status: Graduated
🎯 Bonus Challenge
یک منوی ساده طراحی کنید:
1. Show Summary
2. Search Student
3. Show Top Students
4. Show Graduated Students
5. Exit
برنامه باید تا زمانی که کاربر گزینه "5" را انتخاب نکرده است، متوقف نشود.
📋 هدف امروز:
ترکیب مهارتهای روزهای قبل و ساخت اولین سیستم کوچک تحلیل داده با Python.
شما تا اینجا یاد گرفتهاید:
✅ دادهها را از فایل بخوانید.
✅ دادهها را مدلسازی کنید.
✅ خطاها را مدیریت کنید.
✅ دادهها را جستوجو و فیلتر کنید.
✅ اطلاعات آماری استخراج کنید.
از روز بعد وارد NumPy میشویم تا همین محاسبات را سریعتر، کوتاهتر و حرفهایتر انجام دهیم.
⏰ مهلت ارسال پاسخ:
فردا ساعت 20:00