PDA

View Full Version : حرفه ای: قرائت پاسخنامه های چند گزینه ای



Ramin_khan
چهارشنبه 28 فروردین 1392, 17:24 عصر
بنده روي پروژه اي مشغول به فعاليت هستم كه قراره پاسخ نامه هارو اسكن كنه و بتونه تشخيص بده كه گزينه هاي اون علامت گذاشته شده يا نه! حالا اين علامت گذاري ميتونه شامل پركردن كامل،تيك،ضربدر و ... باشه
ممنون ميشم اگه دوستان اطلاعاتي دارن در اختيار بنده قرار بدن

me.enik
چهارشنبه 28 فروردین 1392, 18:49 عصر
سلام.
بنده چندان اطلاعاتی ندارم, پس روی حرف های من خیلی حساب باز نکن.

ولی احتمال میدم که از برگ های آزمون, توسط اسکنرها عکس گرفته میشود و بعد از آن این اسکنرها عکس را برای برنامه ای که شما طراحی میکنید میفرستند و شما باید با توجه به مسئله " پردازش تصویر ", آزمون را صحیح کنید. یعنی مرحله سخت کار این جا هستش که شما بتوانید تشخیص بدهید که طرف گزینه یک رو زده یا دو رو!
بعد از طرفی, به دلیل اینکه احتمال داره دستگاه اشتباه تصحیح کند, قانون است که از مربع تو پر استفاده کنند, چون ضریب اشتباه تیک خیلی بالا هستش و میتونه گزینه ها را جا به جا تصحیح کنه. و ضرب در هم به همین گونه است.
برای همین هم هست در تمام آزمون های چهار گزینه ای که قرار است به وسیله کامپیوتر تصحیح بشود, از مربع تو پر استفاده میکنند. ( مثل کنکور )

پس نتیجه گیری این شدش که شما باید در ضمینه پردازش تصویر کار بکنی, این از سر تیتر کار, بقیه اش با خودت!

alaveh
چهارشنبه 28 فروردین 1392, 21:41 عصر
تا جایی که میدونم اسکنر مخصوص داره که همراه با اسکن همون لحظه تصحیح هم میکنه .

Valadi
چهارشنبه 28 فروردین 1392, 22:17 عصر
با سلام
در اين نوع نه اسكنر خاصيه و ...
اين پردازش تصوير استفاده مي كند كه از معروف به omr است كه ساختار خيلي پيچيده داره و حتي پاسخ نامه ها نشانه داره
براي اين موارد از كامپونت استفاده مي كند اگر خواستيد من دارم

Ramin_khan
چهارشنبه 28 فروردین 1392, 22:33 عصر
با سلام
در اين نوع نه اسكنر خاصيه و ...
اين پردازش تصوير استفاده مي كند كه از معروف به omr است كه ساختار خيلي پيچيده داره و حتي پاسخ نامه ها نشانه داره
براي اين موارد از كامپونت استفاده مي كند اگر خواستيد من دارم

دوست عزيز ممنون ميشم اگه كامپوننت ها رو به من بدي،پاسخ نامه ها توسط خودم تهيه ميشه و خودم هم ميتونم نشانه هايي براي شناسايي محل پاسخ توي فرم درج كنم

قرار اين پروژه به مرور زمان بهينه بشه به صورتي كه در نسخه هاي بعدي بتونه تيك و ... هم تشخيص بده
من خودم قراره با استفاده از روش برسنهام و پيمايش خطي پيكسل هاي هر گزينه رو بخونم و ببينم كه تيك خورده يا نه،توي فاز هاي بعدي هم قراره كه با استفاده از شبكه هاي عصبي تشخيص بدم كه گزينه پر شده يا تيك خورده يا ضربدر

Ramin_khan
چهارشنبه 28 فروردین 1392, 22:36 عصر
تا جایی که میدونم اسکنر مخصوص داره که همراه با اسکن همون لحظه تصحیح هم میکنه .

اسكنر خاصي نياز نيست،ولي چون تعداد برگ هاي پاسخ نامه زياد هست(حدود 1000 برگ در هر نوبت) از اسكنر حرفه اي فيدر دار استفاده ميكنم ولي الگوريتمم بايد طوري باشه كه بلافاصله پس از اسكن بتونه فرم رو بررسي كنه

samani
پنج شنبه 29 فروردین 1392, 09:31 صبح
با سلام
يه چيز مهمي كه تو پيمايش خطي وجود داره اين است كه شما بر اساس ماركر هاي موجود فقط محدوده گزينه ها رو پيمايش كنيد نه كل صفحه رو
با اين كار سرعت پردازش و پيمايش تستها بيشتر ميشه
استفاده از Thread هم ميتونه بهتون كمك كنه
اگر شما بتونيد پردازش و ذخيره 300 تا 500 صفحه 300 سوالي رو تو يك دقيقه انجام بديد حالت ايده آل هست البته به غير از زمان اسكن شدن صفحات

Ramin_khan
پنج شنبه 29 فروردین 1392, 10:06 صبح
با سلام
يه چيز مهمي كه تو پيمايش خطي وجود داره اين است كه شما بر اساس ماركر هاي موجود فقط محدوده گزينه ها رو پيمايش كنيد نه كل صفحه رو
با اين كار سرعت پردازش و پيمايش تستها بيشتر ميشه
استفاده از Thread هم ميتونه بهتون كمك كنه
اگر شما بتونيد پردازش و ذخيره 300 تا 500 صفحه 300 سوالي رو تو يك دقيقه انجام بديد حالت ايده آل هست البته به غير از زمان اسكن شدن صفحات

ممنون از راهنماييتون،امكانش هست كمي بيشتر توضيح بديد كه چطوري ميتونم ماركرهارو پيمايش كنم براي يافتن محل پاسخ ها؟ چطوري اونارو توي صفحه پيدا كنم؟

samani
پنج شنبه 29 فروردین 1392, 11:15 صبح
شما براي پيمايش عكس ميتونيد از يك قالب استفاده كنيد كه در واقع قالب همان شكل پاسخنامه است كه در آن موقعيت ماركر يا ماركرها و گزينه ها به شكل x,y,w,h ذخيره شده
معمولاً ماركرها در اطراف صفحه ميباشند و شما كافيه با پيمايش عكس و خواندن ماركرها و بدست آوردن اندازه طول و عرض آن و نسبت دهي آن با dpi مربوطه ، موقعيت گزينه ها رو بدست بياري و آن محدوده ها رو بخوني و بقيه كار

اگر يه سرچ بزني مطالب خوبي ميتوني پيدا كني
براي مثال:
http://www.codeproject.com/Articles/36378/Optical-Mark-Recognition-with-DotImage

Ramin_khan
پنج شنبه 29 فروردین 1392, 11:51 صبح
شما براي پيمايش عكس ميتونيد از يك قالب استفاده كنيد كه در واقع قالب همان شكل پاسخنامه است كه در آن موقعيت ماركر يا ماركرها و گزينه ها به شكل x,y,w,h ذخيره شده
معمولاً ماركرها در اطراف صفحه ميباشند و شما كافيه با پيمايش عكس و خواندن ماركرها و بدست آوردن اندازه طول و عرض آن و نسبت دهي آن با dpi مربوطه ، موقعيت گزينه ها رو بدست بياري و آن محدوده ها رو بخوني و بقيه كار

اگر يه سرچ بزني مطالب خوبي ميتوني پيدا كني
براي مثال:
http://www.codeproject.com/Articles/36378/Optical-Mark-Recognition-with-DotImage

آيا اين روش من درست هست يا روش بهتري پيشنهاد مي كنيد؟:
من با توجه به اين كه موقعيت ماركر هارو خودم دارم به مختصات مورد نظر ميرم و ماركر اولي رو پيدا مي كنم و با توجه به فاصله هاي مشخص گزينه هارو پيدا ميكنم
حالا كه تقريبا محل گزينه رو پيدا كردم چطور ميتونم داخل اون گزينه رو بررسي كنم؟ آيا با دستور Canvas.Pixlel[x,y]:color بايد اين كارو انجام بدم؟ مثلا اون قسمت رو با طول و عرض مشخص شده بگردم و تعداد خانه هاي سياه اون رو بشمارم؟
من ميخوام برنامه طوري باشه كه بتونم بهش يه طيف رنگ رو بدم به طور مثال بگم كه طيف رنگ خاكستري تا سياه رو بررسي كنه،براي اين كار بايد از (RGB(r,g,b استفاده كنم يا از مود 0011FF$ ؟ چون تنوع رنگ بالاست چطوري ميتونم طيف رنگ رو بهش بدم؟

Ramin_khan
پنج شنبه 29 فروردین 1392, 11:55 صبح
براي نمونه عكس زير رو مشاهده كنيد،ميخوام پاسخ ها رو مشخص كنم :
103013
همينطور كه مشاهده ميكنيد گزينه هايي كه پاسخ داده نشده هم مشخص شده

samani
پنج شنبه 29 فروردین 1392, 13:33 عصر
سرعت پيمايش در Pixel x,y پائينه پس بهتره از ScanLine استفاده كني و به جاي طيف رنگ ميتوني از شدت نور پيكسل استفاده كني يعني HSL پيكسل رو بگيري و اگر L بيشتر از 0.5 يا 0.6 شد يعني پيكسل پر شده و اگر درصد مد نظرت در يك گزينه با اين پيكسل هاي پر شده مطابقت داشت يعني گزينه پر شده در غير اينصورت يا پاك شده يا پر نشده

البته من توصيه ميكنم قبل از اقدام به نوشتن اين برنامه ، پردازش تصوير اعم از رنگها RGB, HSL و دقت تصاوير DPI حذف رنگهاي بي تاثير و Contrast و ... رو ياد بگيري تا خدايي نكرده موقع تصحيح حق كسي ضايع نشه

در ضمن اون لينك رو هم كه گذاشته بودم يه نگاهي بنداز

دلفــي
پنج شنبه 29 فروردین 1392, 17:24 عصر
يه نگاه اينجا بنداز : http://www.bvbcode.com/code/sa8qf0ki

مصطفی ساتکی
جمعه 30 فروردین 1392, 14:32 عصر
فقط قالب تعریف کنید کافی نیست این روش در اسکنرهای تخت خوب جواب میداد.
برای سرعت بالا شما مجبور به استفاده از اسکنر فیدر دار هستید این اسکنر ها به مرور زمان دچار اوجاج میشه از جمله اوجاج ها تغییرات ناگهانی در شدت نور تصویر و سنکرون نبودن کشش کاغذ در 2 طرف چپ و راست هستش .تصویر بدست آمده فقط affine transform روی آن اعمال نشده بلکه شما perspective transform هم دارید در واقع بایستی در هر صفحه پارامترهای transform رو محاسبه کنید و با استفاده از مارکرها چندضلعی ورودی رو به مارکرهای نرمالیزه شده انتقال بدید(تبدیل معکوس) اگر اینکارو انجام ندید به کرات در localize هر کدام از مستطیل ها مربوط به ده گزینه(مستطیل بزرگ) موقعیت های اشتباهی بدست میارید.

Ramin_khan
شنبه 31 فروردین 1392, 11:19 صبح
يه نگاه اينجا بنداز : http://www.bvbcode.com/code/sa8qf0ki

ممنون دوست عزيز


سرعت پيمايش در Pixel x,y پائينه پس بهتره از ScanLine استفاده كني و به جاي طيف رنگ ميتوني از شدت نور پيكسل استفاده كني يعني HSL پيكسل رو بگيري و اگر L بيشتر از 0.5 يا 0.6 شد يعني پيكسل پر شده و اگر درصد مد نظرت در يك گزينه با اين پيكسل هاي پر شده مطابقت داشت يعني گزينه پر شده در غير اينصورت يا پاك شده يا پر نشده

البته من توصيه ميكنم قبل از اقدام به نوشتن اين برنامه ، پردازش تصوير اعم از رنگها RGB, HSL و دقت تصاوير DPI حذف رنگهاي بي تاثير و Contrast و ... رو ياد بگيري تا خدايي نكرده موقع تصحيح حق كسي ضايع نشه

در ضمن اون لينك رو هم كه گذاشته بودم يه نگاهي بنداز


تشكر دوست عزيز،من فعلا دارم روي ScanLine مطالعه مي كنم ولي فعلا تونستم با Pixel كمي برنامه رو ببرم جلو،حالا بايد كمي روي ScanLine كار كنم

Ramin_khan
شنبه 31 فروردین 1392, 11:45 صبح
فقط قالب تعریف کنید کافی نیست این روش در اسکنرهای تخت خوب جواب میداد.
برای سرعت بالا شما مجبور به استفاده از اسکنر فیدر دار هستید این اسکنر ها به مرور زمان دچار اوجاج میشه از جمله اوجاج ها تغییرات ناگهانی در شدت نور تصویر و سنکرون نبودن کشش کاغذ در 2 طرف چپ و راست هستش .تصویر بدست آمده فقط affine transform روی آن اعمال نشده بلکه شما perspective transform هم دارید در واقع بایستی در هر صفحه پارامترهای transform رو محاسبه کنید و با استفاده از مارکرها چندضلعی ورودی رو به مارکرهای نرمالیزه شده انتقال بدید(تبدیل معکوس) اگر اینکارو انجام ندید به کرات در localize هر کدام از مستطیل ها مربوط به ده گزینه(مستطیل بزرگ) موقعیت های اشتباهی بدست میارید.

ممنون دوست عزيز،من تا حدودي حرف هاي شمارو متوجه شدم كه اين روش زياد درست نيست چون الان هم وقتي كمي كاغذ جابجا ميشه مختصات اشتباه در مياد،حالا ممنون ميشم اگه كمي بيشتر و ساده تر توضيح بديد كه بايد از چه روشي استفاده كنم،راستش بعضي از اصطلاحاتي كه به كار برديد رو متوجه نشدم و آشنايي ندارم بهشون،ممنون ميشم ساده تر بگيد

یوسف زالی
شنبه 31 فروردین 1392, 11:56 صبح
سلام به اساتید.
اصل کار اینه که شما با علائمی چهار طرف و اندازه ی چهار ضلعی اسکن شده رو تشخیص بدید.
با تبدیل این چهار ضلعی به مستطیل، دیگه کار خیلی سخت نیست.
ممکنه به هر دلیلی کج باشه، Sheer شده باشه، ذوزنقه ای اسکن بشه و ...

Ramin_khan
شنبه 31 فروردین 1392, 12:10 عصر
سلام به اساتید.
اصل کار اینه که شما با علائمی چهار طرف و اندازه ی چهار ضلعی اسکن شده رو تشخیص بدید.
با تبدیل این چهار ضلعی به مستطیل، دیگه کار خیلی سخت نیست.
ممکنه به هر دلیلی کج باشه، Sheer شده باشه، ذوزنقه ای اسکن بشه و ...

ميشه كمي بيشتر توضيح بديد؟
منظور شما اينه كه هرگوشه برگ يك ماركر بذارم كه ابتدا اونارو تشخيص بدم تا ببينم برگ به درستي اسكن شده يا نه؟
چطوري ميشه كج بودن اون رو تشخيص داد؟

یوسف زالی
شنبه 31 فروردین 1392, 13:01 عصر
بله همین طوره.
فکر نمی کنم نیازی به چک کردن کجی باشه. همه ی فرم ها رو نرمال کنید. اگر خواستید چک کنید هم می تونید به راحتی راستا هاشون و فاصله هاشون رو تست کنید.
نرمال کردن هم فرمول ریاضی داره.
کار این چنینی روی تمام پیکسل های فرم با اندازه های مثلا 1000 در 800 نباید بیشتر از یک ثانیه طول بکشه. احتمالا زمان مناسبی خواهد بود.
با بهینه سازی زمان به کمتر از این مقدار هم می تونه برسه.

مهم اینهاست:
1- پیدا کردن جهت درست، مثلا برای یکی از گوشه ها مارکر دوتا بذارید.
2- پیدا کردن مقادیر مارکر چهار طرف فرم و فهمیدن اندازه ی فعلی اسکن شده
3- تبدیل فرم اسکن شده به اندازه های استاندارد
4- اصلاح روشنایی فرم به مقدار استاندارد
5- پیدا کردن مکان دقیق گزینه ها با استفاده از مارکر های ماتریسی، البته می تونید مکان رو برای فرمتون به صورت هارد کد استاندارد تعریف کنید
6- یک پردازش تصویر در حد باقالی برای فهمیدن رنگ درون گزینه ها
7- محاسبه ی نمره از روی داده های برگه

Ramin_khan
شنبه 31 فروردین 1392, 13:43 عصر
بله همین طوره.
فکر نمی کنم نیازی به چک کردن کجی باشه. همه ی فرم ها رو نرمال کنید. اگر خواستید چک کنید هم می تونید به راحتی راستا هاشون و فاصله هاشون رو تست کنید.
نرمال کردن هم فرمول ریاضی داره.
کار این چنینی روی تمام پیکسل های فرم با اندازه های مثلا 1000 در 800 نباید بیشتر از یک ثانیه طول بکشه. احتمالا زمان مناسبی خواهد بود.
با بهینه سازی زمان به کمتر از این مقدار هم می تونه برسه.

مهم اینهاست:
1- پیدا کردن جهت درست، مثلا برای یکی از گوشه ها مارکر دوتا بذارید.
2- پیدا کردن مقادیر مارکر چهار طرف فرم و فهمیدن اندازه ی فعلی اسکن شده
3- تبدیل فرم اسکن شده به اندازه های استاندارد
4- اصلاح روشنایی فرم به مقدار استاندارد
5- پیدا کردن مکان دقیق گزینه ها با استفاده از مارکر های ماتریسی، البته می تونید مکان رو برای فرمتون به صورت هارد کد استاندارد تعریف کنید
6- یک پردازش تصویر در حد باقالی برای فهمیدن رنگ درون گزینه ها
7- محاسبه ی نمره از روی داده های برگه

به نكات جالبي اشاره كرديد،فقط باز هم چند تا سوال:
مورد دوم:چطوري اندازه رو بفهمم؟ آيا رابطه منطقي بين فاصله ماركرها و dpi اسكن شده برقراره؟
مورد سوم:منظورتون از اندازه استاندارد همون Resize كردن تصوير اسكن شده به dpi مورد نظر خودمون هستش؟
مورد پنجم : منظورتون از هارد كد استاندارد چيه؟
مورد ششم : من براي فهميدن رنگ داخل گزينه ها از مقدار عددي رنگ اونا استفاده كردم مثل 11223344 به صورتي كه بر فرض مثال گفتم اگه بيشتر از 20000000 بود يعني پرشده است،روش پيشنهادي شما چي هست؟
ممنون ميشم اگه دوستان ايده هاي خودشونو بگن لطفا

Valadi
شنبه 31 فروردین 1392, 14:00 عصر
با سلام
و چون خدا گوگل را‌ افريد .....
واقعا بعضي از كاربران بيكارند
اينهمه بحث و نظريه و ... براي چيه ؟
از اين كامپونت استفاده كن همه چيز آماده است و حرفه ايه

SmartScan Xpress ICR/OCR/OMR (http://www.accusoft.com/formfix.htm)

اگر هم خواستي ما داريم

یوسف زالی
شنبه 31 فروردین 1392, 14:44 عصر
اينهمه بحث و نظريه و ... براي چيه ؟

واقعا؟؟؟
شما برو نرم افزار رو بخر خودت رو راحت کن دیگه.
عزیزم، این بحث هاست که برنامه نویس هامون رو برنامه نویس بار میاره. بنده تا جایی که ممکنه از کامپوننت استفاده نمی کنم و توصیه هم نمی کنم.
ممکنه در اینجا استفاده از این کامپوننت کار شما رو راه بندازه، ممکنه خیلی هم خوب باشه، اما صحبت شما رو نادرست می دونم.
همین بحث برای من ممکنه باعث بشه چهار تا مطلب مرتبط هم یاد بگیرم.


واقعا بعضي از كاربران بيكارند

:ناراحت:

شاید حق با شما باشه..

اعتقاد من برنامه نویس بودن برنامه نویسه. خود من هم از کامپوننت استفاده کردم / می کنم / خواهم کرد. اما اگر این دوستمون خواست کامپوننت رو Customize کنه؟ اگر خواست به ورژن جدید کوچ کنه؟ اگر خواست زبان برنامه نویسی رو عوض کنه؟ اگر خواست ...

به هر حال صلاح برنامه ی خویش برنامه نویسان دانند..

یوسف زالی
شنبه 31 فروردین 1392, 17:05 عصر
نمی دونم با وجود اون کامپوننت واقعا دنبال می کنید یا نه.


چطوري اندازه رو بفهمم؟ آيا رابطه منطقي بين فاصله ماركرها و dpi اسكن شده برقراره؟

با وجود پارامتری شدن نیازی به ریسایز به اندازه ی ثابت نیست. DPI بستگی به اسکنتون داره. نیازی هم بهش نیست.


منظورتون از اندازه استاندارد همون Resize كردن تصوير اسكن شده به dpi مورد نظر خودمون هستش؟

نه، منظور من استقرار فرم در جهت درست برای تشخیص هست. مثلا بالا واقعا بالا باشه، کجی از بین رفته باشه، خمی از بین رفته باشه..


منظورتون از هارد كد استاندارد چيه؟

یعنی مثلا می دونید همیشه گزینه ی الف سوال 1 در چه مختصاتی هست و نیاز نباشه اون رو پیدا کنید. هارد کد یعنی قرار دادن اندازه ها و پارامترها به صورت ثابت در کد.


روش پيشنهادي شما چي هست؟

روش شما هم به جای خودش خوبه. البته باید میانگین تمام سطح رو بگیرید. این کار هم باید حتما بعد از تنظیم روشنایی باشه.
ممکنه بشه با رنگ آیتم های کناریش مقایسه کرد که احیانا اگر بالای فرم با پایینش از نظر روشنایی تفاوت داشت برنامه دچار خطا نشه.
در هر گزینه پررنگ ترینش می شه انتخاب شده. البته این رنگ باید با فاصله ی معقول از سایر گزینه ها باشه. چون ممکنه دانشجو بیش از یک مورد رو تیک کرده باشه.

Ramin_khan
شنبه 31 فروردین 1392, 18:10 عصر
با سلام
و چون خدا گوگل را‌ افريد .....
واقعا بعضي از كاربران بيكارند
اينهمه بحث و نظريه و ... براي چيه ؟
از اين كامپونت استفاده كن همه چيز آماده است و حرفه ايه

SmartScan Xpress ICR/OCR/OMR (http://www.accusoft.com/formfix.htm)

اگر هم خواستي ما داريم

دوست عزيز تشكر ازاين كه نظر خودتون رو گفتيد،نظرتون براي خودتون خيلي محترم،ولي هميشه كامپوننت ها براي بهبود كار نيستند،بلكه براي افراد راحت طلب مي باشد،در ضمن بنده از هيچ dll و كامپوننتي نبايد توي برنامه استفاده كنم چون كمي شرايط امنيتي داره.

در خصوص فرمايش ما هم نميدونم از ديد شما بيكاري چيه،شايد شما به افرادي كه به دنبال افزايش علم و كسب تجربه فني و تفكر سالم هستند ميگيد بيكار....!!!!

Ramin_khan
شنبه 31 فروردین 1392, 18:16 عصر
نمی دونم با وجود اون کامپوننت واقعا دنبال می کنید یا نه.

با وجود پارامتری شدن نیازی به ریسایز به اندازه ی ثابت نیست. DPI بستگی به اسکنتون داره. نیازی هم بهش نیست.

نه، منظور من استقرار فرم در جهت درست برای تشخیص هست. مثلا بالا واقعا بالا باشه، کجی از بین رفته باشه، خمی از بین رفته باشه..

یعنی مثلا می دونید همیشه گزینه ی الف سوال 1 در چه مختصاتی هست و نیاز نباشه اون رو پیدا کنید. هارد کد یعنی قرار دادن اندازه ها و پارامترها به صورت ثابت در کد.

روش شما هم به جای خودش خوبه. البته باید میانگین تمام سطح رو بگیرید. این کار هم باید حتما بعد از تنظیم روشنایی باشه.
ممکنه بشه با رنگ آیتم های کناریش مقایسه کرد که احیانا اگر بالای فرم با پایینش از نظر روشنایی تفاوت داشت برنامه دچار خطا نشه.
در هر گزینه پررنگ ترینش می شه انتخاب شده. البته این رنگ باید با فاصله ی معقول از سایر گزینه ها باشه. چون ممکنه دانشجو بیش از یک مورد رو تیک کرده باشه.


تشكر
براي بررسي روشنايي گزينه ها بايد پيكسل به پيكسل RGB اون رو بدست بيارم بعد تبديل به HSL كنم؟ يا ميشه روشنايي كل اون مستطيل(گزينه) رو يكجا بدست آورد؟

یوسف زالی
شنبه 31 فروردین 1392, 20:24 عصر
باید تموم بلاک رو پیکسل به پیکسل بخونید میانگین بگیرید و در نهایت تبدیل کنید.

elena2007
یک شنبه 01 اسفند 1395, 12:02 عصر
از دوستان کسی بلاخره تونسته پاسخنامه رو اصلاح کنه؟