این نرم افزار همان طور كه در فرم تاییدیه پروژه تعیین شده دارای دو بخش اصلی می باشد بخش اول كه شامل آزمون راهنمایی و رانندگی است و بخش دوم كه شامل تشخیص حق تقدم می باشد این نرم افزار با Visual Basic نوشته شده كه بانك آن نیز Access 2000 طراحی و پیاده سازی شده است این نرم افزار در چندین فرم و یك Moudule طراحی شده است كه در فصل های بعدی به طول كامل
قیمت فایل فقط 2,000 تومان
این نرم افزار همان طور كه در فرم تاییدیه پروژه تعیین شده دارای دو بخش اصلی می باشد. بخش اول كه شامل آزمون راهنمایی و رانندگی است و بخش دوم كه شامل تشخیص حق تقدم می باشد.
این نرم افزار در چندین فرم و یك Moudule طراحی شده است. كه در فصل های بعدی به طول كامل در مورد فرم های برنامه توضیحاتی داده شده است كه در فصل های بعدی به طور كامل در مورد فرم های برنامه توضیحاتی داده شده است. این برنامه علائم راهنمایی و رانندگی را به طور كامل شامل می شود. به این ترتیب كه از كاربر در قسمت آزمون از علائم و تابلوها آزمون گرفته می شود. و آزمون به صورت تستی و سه جوابی می باشد و این امكان به كاربر داده شده كه گزینه را با كلیك كردن ماوس انتخاب كند بعضی از این سوالات شامل عكس و بعضی از سوالات طبق دفترچه آزمون آئین نامه شامل عكس و تصویر نمی باشند.
از ویژگی های مهم این نرم افزار هوشمند بودن آن است.
به این معنی كه كاربر در قسمت دوم پروژه (تشخیص حق تقدم)، حالات مختلف را به كمك Mouse و شكل های موجود (ماشین- سه راه- چهارراه- میدان- تابلو حق تقدم) را به انتخاب خود طراحی می كند و كامپیوتر با الگوریتمی كه برای آن پیاده سازی شده همان زمان حق تقدم را نشان می دهد.
نحوه استفاده
نحوه نصب و راه اندازی
برای نصب این نرم افزار كاربر می بایست روی فایل Setup.exe كلیك كند و بعد از كلیك كردن فایل، فایل اجرا می شود و برنامه از كاربر مسیری را برای نصب این نرم افزار دریافت می كند بعد از دادن مسیر و تایید آن نرم افزار شروع به نصب شدن می كند. بعد از نصب، كاربر كافیست روی فایل Project.exe كلیك كند.
شروع منوها
پس از نصب و اجرای برنامه فرم زیر را مشاهده می كنید:
این فرم از كاربر می خواهد كه تاریخ آزمون را وارد كند كاربر بایستی تاریخ را به طور دقیق وارد نماید. به عنوان مثال اگر امروز بیست و نهم آبان ماه سال 1381 باشد كاربر بایستی آن را به صورت 29/08/1381 وارد نماید تا بتواند وارد برنامه شود در غیر این صورت سیستم منتظر می ماند تا كاربر تاریخ صحیح را با فرمتی كه در سطح بالا توضیح داده شد وارد كند. بعد از اینكه كاربر تاریخ را به طور كامل وارد كرد فرم اصلی نرم افزار بر روی صفحه مونیتور نمایان می شود. این فرم به صورت زیر می باشد:
نام این فرم fotm1 می باشد این فرم از دو ListBox به نام های list كه حاوی سه پارامتر ثبت مشخصات، شروع آزمون و نتیجه آزمون است ولیست بعدی فرم List2 نام دارد كه حاوی سه پارامتر آموزش، گزارش فردی و گزارش كلی می باشد. برای انتخاب گزینه ها به اندیس های لیست كار شده است. برای زمینه این فرمعكسی انتخاب شده است، این فرم شامل سه كلید به نام های حفاظت سیستم (lock-btn)، آموزش حق تقدم (Taghadom-btn) و خروج (Exit) می باشد.
در این فرم برای زیبائی و كنترل دقیق آن خاصیت BroderStyle به Fixed Tool Window ست شده تا كاربر فقط قادر به بستن فرم باشد و اختیاراتی نظیر بزرگ و یا كوچك كردن آن و یا انتقال آن به جای دیگری از صفحه از او سلب شده است. Caption این فرم برای زیبائی و خوانایی بیشتر به سیستم هوشمند اداره راهنمایی و رانندگی ست شده است. ارتفاع این فرم را به 8970 و عرض آن را به 11970 ست شده است. ناگفته نماند كه خاصیت WindowState آن نیز به 0-Normal آن نیز به 0-Normal تغییر داده شده. مدیر سیستم با كلیك (انتخاب) كردن روی گزینه ها می تواند نرم افزار را كنترل و هدایت كند. در زیر به شرح كامل گزینه ها می پردازیم:
ثبت مشخصات: نام این Form2 می باشد كه ارتفاع آن به 7050 و عرض آن به 10950 ست شده است، برای زیبایی و خوانایی فرم Caption فرم را به ثبت مشخصات تغییر داده ایم. برای كنترل دقیق آن خاصیت Moveable را False كرده ایم و خاصیت BroderStyle آن را نیز به Fixed Tool Window تغییر داده ایم تا كاربر قادر به انتقال و بزرگ و كوچك كردن فرم نباشد. در این فرم از یازده برچسب كه به ترتیب زیر می باشد استفاده شده است.
Title- lbl: این برچسب برای عنوان فرم گذاشته شده است كه Caption آنرا به «لطفاً مشخصات داوطلب را وارد كنید» ست شده است.
Orging-cd: این برچسب كه برای نگهداری كد داوطلب طراحی شده یك كپی از كد داوطلب بر می دارد. البته ناگفته نماند كه خاصیت Visiable آن را برای پنهان شدن به Flase ست كردهایم.
Name-lbl: این برچسب، نام پرچسب نام داوطلب است كه در خاصیت Caption آن «نام:» نوشته شده است.
Lanme-lbl: این برچسب، برچسب نام خانوادگی داوطلب است كه در خاصیت Caption آن «نام خانوادگی:» نوشته شده است.
Father- lbl: این برچسب، برچسب نام پدر داوطلب است كه در خاصیت Caption «نام پدر» نوشته شده است.
Number- lbl: این برچسب، برچسب شماره شناسنامه داوطلب می باشد كه در خاصیت Captopn آن «شماره شناسنامه:» نوشته شده است.
Year-lbl: این برچسب، برچسب سال تولد داوطلب می باشد كه خاصیت Caption آن را به سال تولد تغییر داده ایم.
Locatopn-lbl: این برچسب، برچسب محل تولد داوطلب می باشد كه در خاصیت Caption آن «محل تولد:» نوشته شده است.
Address-lbl: این برچسب، برچسب آدرس داوطلب می باشد كه خاصیت Caption آن «آدرس آزمون:» نوشته شده است.
Date-lbl: این كلید كلیدی است كه با زدن آن لیست افراد نمایش داده می شود به همین جهت Caption آن را به «تاریخ آزمون:» نوشته شده است.
این فرم حاوی پنج كلید است این كلیدها عبارتند از:
List-btn: این كلید، كلیدی است كه با زدن آن لیست افراد نمایش داده می شود. به همین جهت Caption آن را به «لیست افراد» ست كرده ایم.
Ok-btn: این كلید، كلیدی است كه كاربر پس از انتخاب فرد از لیست داوطلبان و یا ورود اطلاعات جدید برای تایید ور فتن به فرم اصلی از آن استفاده می شود برای خوانایی خاصیت Caption آن به «تایید» ست كرده ایم.
Save- btn: این كلید برای ذخیره كردن اطلاعات وارد شده توسط كاربر به كار می رود. به همین منظور خاصیت Caption آن را به «ذخیره» ست كرده ایم.
New-btn: این كلید، برای این است كه اگر كاربر تمایل داشت اطلاعات مربوط به داوطلب دیگری را وارد سیستم نماید از ان استفاده كند. به همین منظور خاصیت Caption آن را به «جدید» ست كرده ایم.
Del- btn: این كلید، برای این است كه اگر كاربر تمایل داشت اطلاعات داوطلبی رابه طور كامل از بانك حذف نماید از آن استفاده كند به همین جهت خاصیت Caption آن را به «حذف» ست كرده ایم.
همچنین این فرم از نه TexBox تشكیل شده كه عبارتند از:
Codes: این TexBox برای دریافت كد داوطلب طراحی شده است. برای اینكه بتوانیم مانند زبان فارسی از راست به چپ بنویسیم خاصیت RightLeft این TexBox را به True ست كرده ایم. ارتفاع و پنهای این TexBox به ترتیب 285 و 855 تغییر داده شده است. برای كد فقط 8 رقم تعریف شده كه برای كنترل آن خاصیت MaxLenght آن را به 8 ست شده است.
Names: این TexBox برای دریافت نام داوطلب طراحی شده است برای اینكه بتوانیم مانند زبان فارسی از راست به چپ بنویسیم خاصیت RighttoLeft این TexBox را به True تغییر داده ایم. ارتفاع و پهنای این TexBox به ترتیب 285 و 935 است. برای نام فقط 50 كاراكتر تعریف شده است. برای كنترل آن خاصیت MaxLenght آن را به 50 ست كرده ایم.
Familly: این TexBox برای دریافت نام خانوادگی داوطلب طراحی شده است. برای اینكه بتوانیم مانند زبان فراسی از راست به چپ بنویسیم خاصیت RighttoLeft این TexBox را به True ست كرده ایم. ارتفاع و پنهای این TexBox به ترتیب به 285 و 1935 تغییر داده شده. برای نام خانوادگی فقط 50 كاراكتر تعریف شده است. برای كنترل آن خاصیت Max Length آن را به 50 تغییر داده ایم.
Serial: این TexBox برای دریافت شماره شناسنامه داوطلب طراحی شده است. برای اینكه بتوانیم مانند زبان فارسی از راست به چپ بنویسیم خاصیت RighttoLeft این TexBox را به True ست كرده ایم. ارتفاع و پهنای این TexBox به ترتیب به 285 و 1095 ست كرده ایم برای شماره شناسنامه فقط 10 رقم تعریف شده است. برای كنترل آن خاصیت MaxLenght آن را به 10 تغییر داده ایم.
Year- Bron: این TexBox برای دریافت تاریخ تولد داوطلب طراحی شده است. برای اینكه بتوانیم مانند زبان فارسی از راست به چپ بنویسیم خاصیت RighttoLeft این TexBox آن را به True ست كرده ایم. ارتفاع و پهنای این TexBox به ترتیب به 285 و 975 تغییر داده ایم، برای سال تولد فقط 4 رقم تعریف شده است برای كنترل آن خاصیت MaxLenght آن را به 4 ست شده است.
Location: این TexBox برای دریافت محل تولد داوطلب طراحی شده است برای اینكه بتوانیم زبان فارسی را از راست به چپ بنویسیم خاصیت RighttoLeft این TexBox را به True ست كرده ایم. ارتفاع و پهنای این TexBox به ترتیب به 285 و 1935 تغییر داده ایم. برای محل تولد فقط 50 كاراكتر تعریف شده است برای كنترل آن خاصیت MaxLenght آن را به 50 تغییر داده شده است.
Address: این TexBox برای دریافت آدرس داوطلب طراحی شده، برای اینكه بتوانیم مانند زبان فارسی از راست به چپ بنویسیم خاصیت RightoLeft این TexBox را به True ست كرده ایم. ارتفاع و پهنای این TexBox به ترتیب به 285 و 4095 تغییر داده شده، برای آدرس فقط 200 كاراكتر تعریف شده است. برای كنترل آن خاصیت MaxLenght آن را به 200 تغییر داده ایم.
Exam: این TexBox برای دریافت و ثبت تاریخ آزمون داوطلب طراحی شده است. برای اینكه بتوانیم مانند زبان فارسی از راست به چپ بنویسیم خاصیت RightoLeft این TexBox را به True تغییر داده ایم. ارتفاع و پهنای این TexBox به ترتیب به 285 و 1335 ست شده است. برای تاریخ آزمون فقط 10 رقم تعریف شده است كه برای كنترل آن خاصیت MaxLenght آن را به 10 تغییر داده ایم.
همانطور كه گفته شد این صفحه (فرم) فقط مخصوص مدیر سیستم است، حال سوالی پیش می آید كه چرا مدیر سیستم؟
برای پاسخ به این سوال باید گفت كه چون در هنگام آزمون افرادی هستند كه قادر به تایپ نیستند به همین جهت چون در هنگام آزمون وقت برای مدیر سیستم و اداره راهنمایی و رانندگی دارای ارزش زیادی است و تعداد داوطلبین زیاد است بنابراین تمامی این قسمت ها تحت كنترل مدیر سیستم می باشد. به این ترتیب كه با كلیك كردن روی ثبت مشخصات فرم زیر در صفحه مونیتور نمایان می شود:
فرم فوق همانطور كه در بالا توضیح داده شد توسط مدیر سیستم پر می شود در فرم فوق فیلد كد داوطلب به عنوان كلید اصلی پروژه در نظر گرفته می شود. به این ترتیب كه این فرم كد منحصر به فرد بوده و هر داوطلب یك كد دارد در این پروژه تكراری بودن مشخصات داوطلب براساس همین كه داوطلبی مشخص شده است. در فیلدهای بعد مدیر سیستم به ترتیب، نام، نام خانوادگی، نام پدر، شماره شناسنامه، تاریخ تولد، محل تولد و آدرس داوطلب را وارد می كند.
آخرین فیلد، فیلد تاریخ آزمون است محتوی این فیلد از تاریخی كه در اول اجرای برنامه از مدیر سیستم گرفته می شود پر می شود البته مدیر سیستم می تواند در فرم ثبت مشخصات نیز تاریخ را ویرایش كند. ولی برای ورود اطلاعات نیازی به پر كردن این فیلد نیست. بعد از اینكه مدیر سیستم اطلاعات را وارد كرد كلید ذخیره را فشار می دهد. بعد از زدن این كلید اطلاعات در بانك پروژه ثبت می شود برای درج مشخصات داوطلب دیگر كافی است كه مدیر روی كلید جدید یكبار كلیك كند . بعد از زدن كلید فرم آماده گرفتن اطلاعات جدید می شود.
به همین ترتیب مدیر سیستم قادر خواهد بود اطلاعات مربوط به داوطلب دیگر را وارد كند. در همین جا لازم به ذكر می دانم كه تمامی این فیلدها كنترل دشه است به این معنی كه در فیلد های نام، نام خانوادگی، نام پدر و محل تولد از مدیر فقط حروف می گرد و از گرفتن اعداد و علائم دیگر خودداری می كند در فیلدهای كد داوطلب، شماره شناسنامه، تاریخ تولید، تاریخ آزمون مدیر فقط می تواند عدد وارد كند و در فیلد آدرس می توان رشته ای از كاراكترها را وارد نماید.
لیست اطلاعات فردی از قبل وارد شده باشد (قبلاص در آزمون شركت كرده) دیگر نیازی نیست اطلاعات داوطلب را وارد كرد. كافی است كلید لیست افراد را فشار دهیم.
با فشار این كلید فرمی به شكل صفحه بعد نمایش داده می شود.
این فرم Person- List نام دارد. ارتفاع و پهنا این فرم به ترتیب: 6255 و 4200 تعیین شده است، برای خوانایی و زیبایی فرم خاصیت Caption فرم را به لیست داوطلبان ست كردهایم. كه حاوی یك ListBox به نام LST برای نمایش لیست افراد گذاشته شده است. ارتفاع و پهنا این لیست به ترتیب: 5520 و 4095 می باشد ناگفته نماند برای اینكه كاراكترها از راست به چپ نوشت شوند خاصیت RighttoLeft آن را به True ست كرده ایم.
این فرم همچنین شامل یك كلید به نام OK-btn می باشد وظیفه این كلید بستن این فرم می باشد كه Caption آن برای خوانایی بیشتر به تایید ست شده است.
بعد از كلیك روی این كلید لیستی از داوطلبانی كه در بانك موجودند نمایش داده می شود كه می توان با دو بار كلیك روی اسامی آنها و یا كلیك بر روی كلید تایید یكی از آنها را انتخاب كرد با انجام این كار اطلاعات كامل داوطلب مورد نظر بر روی فرم ثبت مشخصات نمایان می شود و مدیر این توانایی را دارد كه بتواند اطلاعات موجود را ویرایش كند و یا اینكه با كلیك كردن روی كلید حذف اطلاعات مربوط به آن شخص را از بانك نرم افزار حذف كند. (توجه: با زدن كلید حذف اطلاعات به طور كامل از بانك حذف می شود).
ویرایش مشخصات به این ترتیب است كه بعد از انتخاب یكی از داوطلبین از لیست افراد و تایید آن اطلاعات آن شخص در فرم ثبت مشخصات نشان داده می شود و مدیر می تواند هر فیلدی كه خود صلاح بداند تغییر داده و برای ضبط آن كلید ذخیره را فشار دهد.
بعد از اینكه اطلاعات داوطلب وارد شد (به صورت دستی و یا از لیست افراد) مدیر می تواند با كلیك كردن روی كلید تایید از فرم ثبت مشخصات خارج شود این به این معنا است كه شخص انتخاب شده و آماده شروع آزمون میباشد.
بعد از زدن كلید تایید كنترل برنامه به فرم اصلی (Form1) بر می گردد.
شروع آزمون:
برای شروع آزمون كافی است مدیر روی شورع آزمون با Mouse كلیك كرده و یا با كلید Tab شروع آزمون را انتخاب كند. بعد از انجام این عمل پیامی بر روی صفحه مونیتور نمایان می شود و به داوطلب پیغامی می دهد كه آیا آماده شروع امتحان هستید (طبق شكل زیر):
داوطلب پس از آماده شدن روی دكمه Ok كلیك می كند.
تذكر مهم: این نرم افزار طوری طراحی و تنظیم شده است طوری كه مشخصات داوطلب وارد نشود. (چه به صورت دستی و چه از روی لیست افراد) نمی توان وارد این مرحله شد و گزینه شروع آزمون در فرم اصلی غیر فعال خواهد بود و داوطلب فقط قادر خواهد بود كه در آزمون شركت كند و كنترل در جاهای دیگر برنامه از او سلب شده است.
بعد از اینكه داوطلب روی دكمه Ok كلیك كرد فرم شروع آزمون (Form3) طبق شكل صفحه بعد روی صفحه مونیتور نمایان می شود:گ
ارتفاع و پهنا این فرم به ترتیب به 7425 و 10695 است شده است. برای زیبایی فرم Caption فرم را به انجام آزمون تغیری داده ایم. ولی این مقدار در داخل برنامه طوری كنترل شده كه هر شخصی كه شروع به آزمون می كند نام و نام خانوادگی او در caption فرم قرار می گیرد. برای كنترل هرچه بهتر فرم خاصیت BorderStyle فرم رابه Fixed Tool Window و همچنین خاصیت Moveable و همچنین خاصیت Moveable فرم را به True ست كرده ایم تا كاربر نتواند فرم را انتقال و یا كوچك و بزرگ نماید.
در این فرم نه برچسب تعریف شده كه این نه برچسب عبارتند از:
Number: این برچسب شماره سوال را نمایش می دهد البته مقدار اولیه خاصیت Caption آن 1 می باشد ولی باری زیبایی برنامه به ازای هر سوالی كه جلو می رویم یك واحد به Caption اضافه می كنیم عكس این قضیه نیز صادق است یعنی به ازای هر سوالی كه كاربر به عقب بر می گردد مقدار Caption آن یك واحد كم است.
Pranrez: این برچسب فقط برای نمایش پرانتز استفاده می شود و به همین جهت خاصیت Caption آن را به «)» ست شده است.
Question: این برچسب برای نمایش سوالات آزمون استفاده می شود. این برچسب با بانك اصلی برنامه در ارتباط است. ارتفاع و پهنایی كه برای این برچسب در نظر گرفته شده به ترتیب 1215 و 8895 می باشد. برای اینكه كاراكترها از راست به چپ نمایش داده شوند. خاصیت RighttoLeft برچسب را به True ست كرده ایم.
Number1: این برچسب فقط برای نمایش شماره گزینه 1 در نظر گرفته شده است. به همین جهت خاصیت Caption آن را به 1- ست كرده ایم.
Number2: این برچسب فقط برای نمایش شماره گزینه 2 در نظر گرفته شده است. به همین جهت خاصیت caption آن را به 2- ست كرده ایم.
Number3: این برچسب فقط برای نمایش شماره گزینه 3 در نظر گرفته شده است. به همین جهت خاصیت caption آن را به 3- ست كرده ایم.
Anst: این برچسب برای نمایش جواب گزینه 1 در نظر گرفته شده است كه با بانك اصلی برنامه در ارتباط است و ارتفاع و پهنا آن را به ترتیب به 675 و 7575 ست كرده ایم. برای اینكه كاراكترها از راست به چپ نمایش داده شوند خاصیت RighttoLeft برچسب را به True تغییر داده ایم.
Ans2: این برچسب برای نمایش جواب گزینه 2 در نظر گرفته شده است كه با بانك اصلی برنامه در ارتباط است و ارتفاع و پهنا آن را به ترتیب به 675 و 7575 ست كردهایم.
برای اینكه كاراكترها از راست به چپ نمایش داده شوند خاصیت RighttoLeft برچسب را به True تغییر داده ایم.
Ans3: این برچسب برای نمایش جواب 3 گزینه در نظر گرفته شدته است كه با بانك اصلی برنامه در ارتباط است. و ارتفاع پهنا آن را به ترتیب 675 و 7575 ست كرده ایم. برای اینكه كاراكترها از راست به چپ نمایش داده شوند خاصیت RighttoLeft برچسب را به True تغییر داده ایم.
در این فرم از یك ImagBox برای نمایش عكس های سوالات نیز استفاده شده است كه نام آن PIC می باشد. ارتفاع و پهنا آن به ترتیب: 1965 و 2205 در نظر گرفته شده است. در این فرم از یك Frane1 برای تفكیك كردن گزینه ها از سایر برچسب ها استفاده شده است كه نام آن Frame1 می باشد. Cation آن را برای خوانایی بیشتر به «جوابها» تغییر داده ایم.
در این فرم نیز از سه OptionButton برای انتخاب سه گزینه استفاده شده است به OptionButton اولی اندیس یك، به دومی اندیس دو و به سومی اندیس سه داده ایم و كنترل آنها را بر طبق اندیس آنها انجام شده است. كه نام آن را Option گذاشته ایم.
و خاصیت OptionButton و Caption اولی را به یك واحد و دو و سومی را به سه ست كرده ایم.
همچنین در این فرم سه كلید به چشم می خورد. این سه كلید عبارتند از:
كلید قبلی (Prev): این كلید سوال قبلی را برای ما می آورد. به همین جهت در خاصیت Caption آن رشته « >> سوال قبلی» را گذاشته ایم.
كلید بعدی (Next): این كلید سوال بعدی را برای ما می آورد. به همین جهت در خاصیت Caption آن رشته « < < سوال بعدی» را گذاشته ایم.
كلید خاتمه (End Exam): این كلید برای خاتمه دادن به آزمون گذاشته شده است. به همین جهت خاصیت Caption آن را به خاتمه ست كرده امی.
در این فرم یكی از ابزارهای كار (ToolBox) به نام timer گذاشته شده است. هدف از گذاشتن آن زمان بندی كردن آزمون است. به این ترتیب كه برای هر آزمون 30 دقیقه زمان را كنترل كند. نام آن End Time می باشد.
و تعداد 30 سوال (با عكس و هم بدون عكس) به صورت Random (تصادفی) از بانك پروژه آورده می شود در همین جا این نكته حائز اهمیت است كه داوطلب بعد از زدن كلید Ok، زمان بندی آزمون شروع می شود و داوطلب برای پاسخ گویی به 30 سوال فقط 30 دقیقه فرصت خواهد داشت.
فرم آزمون سه جوابی بوده همانطور كه در شكل فوق مشاهده می كیند سوال به همراه گزینه اش بر روی صفحه نشان داد می شود كه جواب ها به ترتیب 1 و 2 و 3 هستند كاربر سوال را با دقت خوانده و گزینه صحیح خود را انتخاب می كند این عمل با كلیك كردن بر روی یكی از سه دایره توخالی انجام می شود (داوطلب قادر خواه بود هم با Mouse و هم با صفحه كلید دایره را علامت بزند). و با كلیك كردن روی دایره خالی ¡ دایره توپر l می شود. بری رفتن به سوال بعدی كافیست كلید بعدی را فشار دهیم. مشاهده می كنیم كه سوال دیگری نمایش داده می شود. اگر سوال مطرح شده شامل عكس بوده در سمت چپ سوال این عكس همراه با سوال نمایش داده می شود. اگر سوال مطرح شده شامل عكس بود در سمت چپ سوال این عكس همراه با سوال نمایش داده می شود كاربر برای رفتن به سوال بعدی و یا سوال قبلی می تواند روی كلید قبلی و بعدی كلیك كند. در این فرم به داوطلب این امكان داده شده است كه به سوالات قبلی برود و آن ها را در صورت تمایل تغییر دهد.
اجباری نیست كه داوطلب حتماً به تمام سوالات پاسخ دهد. چرا كه امكان دارد پاسخ بعضی از سوالات را ندارند. به همین ترتیب می تواند از پاسخ گویی به آن سوال صرف نظر كند و با كلید بعدی به سوال بعدی برود.
بعد از اینكه داوطلب به سوالات پاسخ داد و تمایل داشت كه امتحان را زودتر از وقت تعیین شده خاتمه دهد می تواند روی كلید خاتمه یك بار كلیك كند و اگر هم تمایل به این كار نداشت میتواند تا پایان آزمون امتحان خود را ادامه دهد. بعد از اینكه 30 دقیقه تمام شد و یاداوطلب كلید خاتمه را فشار داد پیغامی به شكل زیر به داوطلب نمایش داده می شود:
با فشردن كلید Ok صفحه دیگر به داوطلب نشان داده می شود كه نتیجه آزمون را به صورت مختصر طبق شكل زیر به او نشان می دهد.
نام این فرم Quick-Res نام دارد. برای زیبایی این فرم خاصیت BroderStyle آن را به None ست كرده ایم. به همین دلیل است كه امكان بستن فرم از كاربر گرفته شده و به كاربر فقط بایستی با زدن كلید مشاهد شد از این فرم خارج شود.
Name: این برچسب برای نمایش نام و نام خانوادگی داوطلب گذاشته شده است.
Totals: این برچسب برای نمایش تعداد كل سوالات آزمون گذاشته شده است.
True Ans: این برچسب برای نمایش تعداد سوالاتی است كه كاربر در هنگام آزمون به آنها پاسخ صحیح داده است.
False Ans: این برچسب برای نمایش تعداد سوالاتی است كه كاربر در هنگام آزمون به آنها پاسخ نادرست داده است.
NoAns: این برچسب برای نمایش تعداد سوالاتی است كه كاربر در هنگام آزمون به آنها پاسخ نداده است.
Res: این برچسب برای نمایش وضعیت كنونی آزمون داوطلب می باشد كه آیا كاربر مردود شده و یا اینكه در آزمون قبول شده است.
در این فرم از كلیدی به نام Visit نیز استفاده شده است وظیفه این كلید بستن فرم
Quick-Res می باشد. به همین دلیل Caption آن را به «مشاهده شد» ست كرده ایم.
این فرم حاوی نام و نام خانوادگی داوطلب و تعداد كل سوالات، تعداد جواب های درست، تعداد جوابهای اشتباه، تعداد دبون جواب ها و وضعیت آزمون داوطلب كه مردود شده یا بول شد است میباشد.
بعد از مشاهده آن داوطلب روی كلید تایید كلیك می كند. بعد از اینجام این عمل به داوطلب پیغامی از سوی سیستم داده می شود. این پیغام به این شكل است:
امتحان شما به پایان رسید. لطفاً به مسئول خود اطلاع دهید.
نام این فرم PSW می باشد. این فرم در زمانی بر روی صفحه نمایان می شود كه كاربر یا آزمون خود را به پایان رسانده و یا اینكه كاربر حفاظت سیستم را زده باشد. برای كنترل دقیق این فرم خاصیت آن را به 0-None ست كرده ایم تا كاربر قادر به بستن آن نباشد. در این فرم برچسبی به نام View گذاشته شده است كه متن پیغام در آن نمایش داده می شود و از یك TexBox به نام Pss استفاده شده است. در این TexBox كاربر قادر خواهد بود كه رمز سیستم را وارد نماید. برای كنترل و برای اینكه رمز در داخل TexBox دیده نشود خاصیت Password Char آن را به “ * " ست كرده ایم.
در اینجاست كه كنترل برنامه از داوطلب سلب می شود و سیستم منتظر دكمه رمز عبور می شود. رمز سیستم را فقط مدیر سیستم می داند. با زدن رمز توسط مدیر سیستم كنترل به فرم اصلی نرم افزار باز می گردد.
نتیجه آزمون:
در اینجا مدیر می تواند مجدداً نتیجه آزمون داوطلب را به طور خلاصه مشاهده نماید. برای این كار كافیست مدیر روی نتیجه آزمون در فرم اصلی با mouse كلیك كند.
آموزش:
اگر كاربر روی آموزش كلیك كند فرمی به صورت شكل زیر بر روی صفحه مونیتور نمایان می شود. این فرم، فرم آموزش است.
نام این فرم Form4 می باشد. برای اینكه كاربر نتواند فرم را بزرگ و كوچك كند خاصیت BroderStyle آن را به Fixed tool window ست كرده ایم، همچنین برای كنترل انتقال فرم خاصیت Moveable آن به True تغییر داده ایم تا كاربر نتواند فرم را در صفحه حركت دهد. برای خوانایی فرم Caption آن را به آموزش تغییر داده و ارتفاع و پهنای فرم به ترتیب 2835 و 7830 ست شده است.
این فرم پنج كلید دارد كه نام آنها به ترتیب عبارت است از:
كلید بازدید قبل از حركت (See- LeftDrive)، كلید مراحل قبل از حركت (Left- Drive) خروج (Exit)، مراحل پارك كردن (Park) و توقف (Stop) می باشد.
كاربر در این فرم قادر خواهد بود كه یكی از پنج كلید نمایش داده شده در روی فرم آموزش را انتخاب كند. كه ما در زیر به شرح كامل این كلیدها می پردازیم:
بازدید قبل از حركت:
با كلیك كردن كاربر روی این دكمه موجب نمایش فرم بازدید قبل از حركت می شد. این فرم به صورت زیر می باشد:
نام این فرم See می باشد. كه ارتفاع و پهنای آن به ترتیب به 6405 و 7410 تغییر داده شده، برای اینكه كاربر نتواند فرم را بزرگ و كوچك كند خاصیت BroderStyle آن را به Fixed tool window كرده ایم، همچنین برای كنترل انتقال فرم خاصیت Moveable آن به True تغییر داده شده تا كاربر نتواند فرم را در صفحه حركت دهد. برای خوانایی فرم Caption آن را به «آموزش» ست كرده ایم.
این فرم دارای شش برچسب است عبارتند از:
See-lbl: برای نمایش عنوان فرم از آن استفاده شده است. به همین جهت در Caption آن «بازدید قبل از حركت» نوشته شده است. ارتفاع و پهنای آن به ترتیب: 615 و 3255 می باشد.
Lbl-5 , lbl-4 , lbl-3, lbl-2, lbl-1 برچسب های دیگر این فرم است. كه برای نماش مراحل بازدید قبل از حركت از انها استفاده شده است. ارتفاع و پهنا این برچسبها به ترتیب: 595 و 5415 در نظر گرفته شده است.
Ok-btn: این كلید برای خروج از فرم و بازگشت به فرم آموزش گذاشته شده است. خاصیت Caption آن را برای خوانایی بیشتر «تایید» ست كرده ایم.
در این فرم از چند برچسب و یا كلید استفاده شده است.
این اطلاعات شامل: بازدید روغن موتور و روغن ترمز- شل و سفتی تسمه پروانه و برف پاك كن- مقدار بنزین موجود و مقدار آب- میزان باد لاستیكها- كاركرد ترمزها و فرمان- وضع آئینه ها خواهد بود. كلیدی در سمت چپ این فرم گذاشته شده است كه كاربر با كلیك كردن روی آن فرم را بسته و به فرم آموزش باز می گردد.
مراحل قبل از حركت:
با انتخاب این كلید فرمی به شكل صفحه بعد نمایان می شود:
نام این فرم Level-Prev می باشد كه ارتفاع و پهنای آن به ترتیب به 7410 و 7800 تغییر داده شده، برای اینكه كاربر نتواند فرم را بزرگ و كوچك كند خاصیت BroderStyle آن را به Fixed tool window و همچنین برای كنترل انتقال فرم خاصیت Moveable آن را به True تغییر داده ایم تا كاربر نتواند فرم را در صفحه حركت دهد. برای خوانای فرم Caption آن را به «آموزش» ست كرده ایم.
این فرم دارای یك ListBox و یك برچسب و یك كلید است كه عبارتند از:
List-1: این لیست مراحلی را كه راننده قبل از حركت باید رعایت كند در خاصیت list آن نوشته شده است. ارتفاع و پهنای آن به ترتیب: 5580 و 7695 در نظر گرفته شده است.
Prev-lbl: برای نمایش عنوان فرم از آن استفاده شده است. به همین چهت در Caption آن «بازدید قبل از حركت» نوشته شده است. ارتفاع و پهنای آن به ترتیب: 615 و 3255 می باشد.
Ok-btn: این كلید برای خروج از فرم و بازگشت به فرم آموزش گذاشته شده است و خاصیت Caption آن را برای خوانایی بیشتر به «تایید» ست كرده ایم.
این فرم حاوی نكاتی است كه راننده بایستی قبل از حركت آنها رعایت كند. كاربر بعد از مشاهده این فرم می تواند روی كلید تایید یكبار كلیك كند با این عمل كاربر به فرم آموزش باز می گردد.
طرز پاك كردن:
با كلیك كردن روی این كلید فرمی كه در صفحه بعد آورده شده نمایان می شود.
نام این فرم Park1 می باشد كه ارتفاع و پهنای آن به ترتیب به 8805 و 9000 ست شده، برای اینكه كاربر نتواند فرم را به بزرگ و كوچك كند خاصیت BroderStyle آن را FixedToolWindow ست كرده ایم، همچنین برای كنترل انتقال فرم خاصیت Moveable آن به True ست شد تا كاربر نتواند فرم را در صفحه حركت دهد. برای خوانایی فرم Caption آن را به «آموزش» تغییر داده ایم.
این فرم دارای سه ListBox و ImageBox و یك برچسب و یك كلید است كه عبارتند از:
List-3 , List-2 , List-1: این سه لیست مراحلی را كه راندنه بایستی در هنگام پارك كردن اتومبیل رعایت كند، شامل می شود.
Image-3 , Image-2 , Image-1: در این ImageBox ها عكس هایی تعریف شده كه به كاربر این امكان را می دهد در هنگام مطالعه سه لیستی كه در بالا توضیح داده شد عكس های مربوط به هر مرحله را مشاهده كند.
Park-lbl: برای نمایش عنوان فرم از آن استفاده شده است. به همین جهت Caption آن «مراحل پارك كردن» اتومبیل نوشته شده است. ارتفاع و پهنای آن به ترتیب: 695 و 6918 می باشد.
Ok-btn: این كلید برای خروج از فرم و بازگشت به فرم آموزش گذاشته شده است. خاصیت Caption آن را برای خوانایی بیشتر به «تایید» ست كرده ایم.
این فرم حاوی اطلاعاتی است در رابطه با صحیح پارك كردن اتومبیل همراه با تصویر می باشد. برای خروج از این فرم كاربر كافیست روی كلید تایید یكبار كلید كند.
توقف:
با كلیك كردن روی این كلید فرمی به شكل زیر نمایان می شود:
این فرم حاوی اطلاعاتی در مورد توقف اتومبیل می باشد:
نام این فرم Stop1 می باشد كه ارتفاع و پهنای آن به ترتیب به 7410 و 7800 ست شده، برای اینكه كاربر نتواند فرم را بزرگ و كوچك كند خاصیت BroderStyle آن را به Fixed Tools Window و همچنین برای كنترل فرم خاصیت Moveable آن را به True تغییر داده ایم تا كاربر نتواند فرم را در صفحه حركت دهد. برای خوانایی فرم Caption آن را به «آموزش» ست كرده ایم.
این فرم دارای یك ListBox و یك برچسب و یك كلید است كه عبارتند از:
List-1: این لیست مراحلی را كه راننده در توقف باید رعایت كند در خاصیت List آن نوشته شده است. ارتفاع و پهنای آن به ترتیب: 12365 و 7695 در نظر گرفته شده است.
Stop-lbl: برای نمایش عنوان فرم و بازگشت به فرم آموزش گذاشته شده است. و خاصیت Caption آن را برای خوانایی بیشتر به «تایید» ست كرده ایم.
این فرم حاوی نكاتی است كه راننده بایستی قبل از حركت آنها را رعایت كند. در این فرم از یك برچسب و یك جعبه لیست و یك كلید استفاده شده است كه كاربر بعد از مشاهده این فرم می تواند روی كلید تایید یكبار كلیك كند با این عمل كاربر به فرم آموزش باز می گردد.
گزارش فردی:
این قسمت شامل گزارش فردی است كه فقط منحصر به همان فردی است كه در آزمون شركت كرده است. نكته ای كه در اینجا حائز اهمیت است این است كه داوطلب تا در آزمون شركت نكند این قسمت از برنامه غیر فعال خواهد بود.
اگر كاربر بر روی گزارش فردی در فرم اصلی پروژه كلیك كند فرمی به شكل صفحه بعد نمایان می شود. باری اینكه كاربر نتواند فرم را بزرگ و كوچك كند خاصیت BroderStyle آن را به Fixed Tools Window و همچنین برای اینكه كارر فرم را به محل دیگری انتقال ندهد خاصیت Moveable آن را به True ست شده است. ارتفاع و پهنا این فرم به ترتیب: 7995 و 5475 می باشد. نام این فرم Result می باشد. برای زیبایی و خوانایی فرم Caption آن را به «گزارش فردی» تغییر داده ایم.
این فرم شامل هفت برچسب، یك لیست و یك كلید می باشد كه عبارتند از:
Result-lbl: این برچسب برای نمایش عنوان استفاده شده كه caption آن را به «نتیجه آزمون» تغییر داده شده است.
Names: این برچسب برای نمایش نام و نام خانوادگی داوطلب گذاشته شده است.
Totals: این برچسب برای نمایش تعداد كل سوالات آزمون گذاشته شده است.
True Ans: این برچسب برای نمایش تعداد سوالاتی است كه كاربر در هنگام ازمون به آنها پاسخ صحیح داده است.
False Ans: این برچسب برای نمایش تعداد سوالاتی است كه كاربر در هنگام آزمون به آنها پاسخ نادرست داده است.
NoAns: این برچسب برای نمایش تعداد سوالاتی است كه كاربر در هنگام آزمون به آنها پاسخ نداده است.
Res: این برچسب برای نمایش وضعیت چگونگی آزمون داوطلب می باشد كه آیا داوطلب مردود شده و یا اینكه در آزمون قبول شده است.
List: این لیست حاوی كل 30 سوالی است كه داوطلب آزمون داده به همراه پاسخ صحیح و پاسخ كاربر. ارتفاع و پهنای این لیست به 4350 و 5175 تغییر داده شده است.
در این فرم از كلیدی به نام Visit نیز استفاده شده است وظیفه این كلید بستن فرم Result می باشد. به همین دلیل Caption آن را به «مشاهده شد» ست كرده ایم.
این فرم، فرم گزارش فردی داوطلب است، این فرم شامل اطلاعاتی مانند: نام و نام خانوادگی، تعداد كل سوالات، تعداد پاسخ های صحیح، تعداد پاسخ های نادرست، تعداد سوالاتی كه داوطلب به آنها پاسخ نداده است و كلیه 30 سوالی كه در هنگام آزمون برای داوطلب آورده شده به همراه پاسخ صحیح و پاسخ داوطلب و در پایان وضعیت آزمون داوطلب می باشد. این فرم از هفت برچسب، یك ListBox و یك كلید برای خروج از فرم بازگشت به فرم قبلی (آموزش) تشكیل شده است.
گزارش كلی:
این قسمت از برنامه گزارش كلی و كاملی از داوطلب، كد داوطلب، محل سكونت، تاریخ آزمون، تعداد پاسخ های صحیح و وضعیت آزمون داوطلب را شامل می شود. كه با كلیك كردن روی گزارش كلی در فرم اصلی روژه فرمی به شكل صف حه بعد نمایان می شود.
نام این فرم Report-All می باشد كه ارتفاع و پهنای آن به 6150 و 4185 تغییر داده شده است. برای اینكه كاربر نتواند فرم را بزرگ و كوچك كند خاصیت BroderStyle آن را به Fixed Tools Window و همچنین برای اینكه كاربر فرم را به محل دیگری انتقال ندهد خاصیت Moveable آن را به True ست كرده ایم.
برای خوانایی فرم در Caption آن «گزارش كلی» نوشته شده است.
این فرم شامل یك لیست و یك كلید می باشد كه عبارت است از:
Lst: این لیست حاوی تمام افرادی است كه در آزمون شركت كرده اند. اطلاعات كامل مربوط به هر داوطلب به صورت تفكیك شده است. ارتفاع و پهنای این لیست به ترتیب 5520 و 4095 است.
Ok-btn: این كلید برای خروج از فرم و بازگشت به فرم آموزش گذاشته شده است. و خاصیت Csption آن را برای خوانایی بیشتر به «تایید» ست كرده ایم.
بخش دوم
تشخیص حق تقدم
این قسمت مهمترین و اصلی ترین بخش نرم افزار است، در این قسمت داوطلب به كمك Mouse و شكل های موجود مسائل مختلف حق تقدم را طراحی می كند و كامپیوتر او جواب می دهد كه حق تقدم با كیست.
اگر كاربر كلید آموزش حق تقدم را فشار داد فرمی به شكل زیر در صفحه نمایان میشود:
كاربر به كمك Mouse و یا كلیدهای جهت دار می تواند یكی از این سه بخش را انتخاب كند.
این فرم Taghadom نام دارد، كه ارتفاع و پهنای آن به 1710 و 5190 تغییر داده شده است. برای اینكه كاربر نتواند فرم را بزرگ و كوچك كند خاصیت BroderStyle آن را به Fixed Tools Window و همچنین برای اینكه كاربر فرم را به محل دیگری انتقال دهد خاصیت Moveable آن را به True ست شده است.
برای خوانایی فرم در caption آن «آموزش حق تقدم» نوشته شده است.
این فرم شامل چهار كلد برای نمایش فرم حق تقدم در میدان طراحی شده است به این ترتیب كه اگر كاربر با Mouse بر روی این كلید كلیك كرد فرم حق تقدم در میدان نمایان می شود. برای نمایش بهتر و واضح بودن كلید در خاصیت Picture آن عكس یك میدان را كه به صورت Icon بوده قرار داده ایم. البته بایستی خاصیت Style كلید را به 1-Graphical ست كنیم كه این كار انجام شده است.
Squar: این كلید برای نمایش فرم حق تقدم در میدان طراحی شده است به این ترتیب كه اگر كاربر با Mouse بر روی این كلید كلیك كرد فرم حق تقدم در سه راه نمایان می می شود. برای نمایش بهتر واضح بودن كلید Picture آن عكس یك میدان را كه به صورت Icon بوده قرار داده ایم. البته بایستی خاصیت Style كلید را به 1-Graphical ست كنیم كه این كار انجام شده است.
Way: این كلید برای نمایش فرم حق تقدم در سه راه طراحی شده است به این ترتیب كه اگر كاربر با Mouse بر روی این كلید كلیك كرد فرم حق تقدم در سه راه نمایان می می شود. برای نمایش بهتر واضح بودن كلید Picture آن عكس یك میدان را كه به صورت Icon بوده قرار داده ایم. البته بایستی خاصیت Style كلید را به 1-Graphical ست كنیم كه این كار انجام شده است.
Way 4: این كلید برای نمایش فرم حق تقدم در چهارراه طراحی شده است به این ترتیب كه اگر كاربر با Mouse بر روی این كلید كلیك كرد فرم حق تقدم در سه راه نمایان می می شود. برای نمایش بهتر واضح بودن كلید Picture آن عكس یك میدان را كه به صورت Icon بوده قرار داده ایم. البته بایستی خاصیت Style كلید را به
1-Graphical ست كنیم كه این كار انجام شده است.
Exit: این كلید برای خروج و بستن فرم آموزش حق تقدم است.
Squar-lbl: این برچسب، برای خوانایی كلید Squar (حق تقدم در میدان) است. كه در آن خاصیت Caption آن این عمل انجام شده است.
Way3-lbl: این برچسب، برای خوانایی كلید Way3 حق تقدم در سه راه) است. كه در آن خاصیت Caption آن این عمل انجام شده است.
Way4-lbl: این برچسب، برای خوانایی كلید Way3 حق تقدم در چهار راه) است. كه در آن خاصیت Caption آن این عمل انجام شده است.
حق تقدم در میدان:
اگر كاربر روی كلید حق تقدم در میدان كلیك كند فرمی به شكل زیر در صفحه مونیتور نمایان می شود. نام این فرم Way-squar است كه ارتفاع و پهنای آن به ترتیب به: 6225 و 9180 ست شده است. در این فرم است كه كاربر به راحتی می تواند به دلخواه خود طراحی كند و كامپیوتر با الگوریتمی كه برای آن پیاده سازی شده ، حق تقدم را تشخیص دهد و نتیجه را در فرم نمایش دهد. برای كنترل بهتر و دقیق تر فرم خاصیت BroderStyle آن را به 0-None و خاصیت Moveable آن را نیز به False ست كرده ایم. برای رنگ زمینه فرم خاصیت Backcolor را به رنگ آبی (H00S44600D) تغییر داده ایم.
این فرم حق یك Image، یك Frame، شش PictureBox، دو كلید telBox می باشد كه عبارتند از:
Squar: این نام، نام Image این فرم است كه ارتفاع و پهنای آن به ترتیب، 5055 و 8055 است. در خاصیت Picture آن آدرس فایلی كه حاوی عكس میدان است نوشته شده، و خاصیت Stretch آن نیز به True ست شده تا عكس كل فضای Image ما را بپوشاند.
Framel: این Frame برای اینكه ما وسایل نقلیه موجود را در آن قرار دهیم گذاشته شده كه ارتفاع و پهنای آن به ترتیب به 5055 و 975 تغییر داده شده است. خاصیت BroderStyle ان را نیز به 1-Fixed Single ست كرده ایم.
Carl: نام اتومبیل (Picture Box) سبز رنگ است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس اتومبیل سبز رنگ است انتخاب شده است این عكس یك Icon می باشد.
Car2: : نام اتومبیل (Picture Box) قرمز رنگ است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture ان نیز آدرس فایلی كه حاوی عكس اتومبیل قرمز رنگ است انتخاب شده است این عكس یك Icon می باشد.
Ambolance: نام اتومبیل (Picture Box) آمبولانس است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس اتومبیل آمبولانس انتخاب شده است این عكس یك Icon می باشد.
Fire: نام اتومبیل (Picture Box) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس اتومبیل آتش نشانی انتخاب شده است این عكس یك Icon می باشد.
Motor: نام موتور سیكلت (Picture Box) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس موتور سیلكلت انتخاب شده است این عكس یك Icon می باشد.
Bicycle: نام دوچرخه (Picture Box) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس دوچرخه انتخاب شده است این عكس یك Icon می باشد.
Ok: این كلید، كلیدی است كه كاربر پس از طراحی فشار می دهد تا بتواند حق تقدم را مشاهده كند. با زدن این كلید حق تقدم در TexBoxی كه روبروی كلید گذاشته شده است نمایش داده می شود.
Exit: كاربر برای خروج و بستن فرم «حق تقدم درمیدان» می تواند روی آن كلیك كند.
حق تقدم در سه راه:
اگر كاربر بر روی كلید حق تقدم در سه راه كلیك كند فرمی به شكل زیر در صفحه مونیتور نمایان می شود.
نام این فرم Way-Three است كه ارتفاع و پهنای آن به ترتیب به 6225 و 9180 ست شده است. در این فرم است كه كاربر به راحتی می تواند به دلخواه خود طراحی كند و كامپیوتر با الگوریتمی كه برای آن پیاده سازی شده، حق تقدم را تشخیص می دهد و نتیجه را در فرم نمایش می دهد، برای كنترل بهتر و دقیق تر فرم، خاصیت BorderStyle آن را به 0-None و خاصیت Moveable آن را نیز به false ست كرده ایم. برای رنگ زمینه فرم خاصیت Backcolor را به رنگ آبی (H00A4600D) تغییر داده ایم.
این فرم حاوی یك Image، یك Frame، ده pictureBox، دو كلید، یك TextBox می باشد. كه عبارتند از:
Way3: این نام، نام Image این فرم است كه ارتفاع و پهنای آن به ترتیب، 5055 و 8055 است. در خاصیت Picture آن آدرس فایل حاوی عكس سه راه است نوشته شده، و خاصیت Stretch آن نیز به True ست شده است تا عكس كل فضای Image ما را بپوشاند.
Frame1: این Frame برای اینكه ما وسایل نقلیه موجود را در آن قرار دهیم گذاشته شده كه ارتفاع و پهنای آن به ترتیب 5055 و 975 تغییر داده شده است. خاصیت BorderStyle آن را نیز به 1-Fixed Single ست كرده ایم.
Carl: نام اتومبیل (Picture Box) سبز رنگ است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس اتومبیل سبز رنگی است انتخاب شده است این عكس یك Icon می باشد.
Car2: : نام اتومبیل (Picture Box) قرمز رنگ است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture ان نیز آدرس فایلی كه حاوی عكس اتومبیل قرمز رنگ است انتخاب شده است این عكس یك Icon می باشد.
Ambolance: نام اتومبیل (Picture Box) آمبولانس است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس اتومبیل آمبولانس انتخاب شده است این عكس یك Icon می باشد.
Fire: نام اتومبیل (Picture Box) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس اتومبیل آتش نشانی انتخاب شده است این عكس یك Icon می باشد.
Motor: نام موتور سیكلت (Picture Box) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس موتور سیلكلت انتخاب شده است این عكس یك Icon می باشد.
Bicycle: نام دوچرخه (Picture Box) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس دوچرخه انتخاب شده است این عكس یك Icon می باشد.
Stop2: نام تابلوی ایست Picture Box)) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. در خاصیت picture آن نیز آدرس فایلی كه حاوی عكس تابلوی ایست است انتخاب شده است این عكس یك Icon می باشد.
Top- Direct Picture Box)): نام فلش به طرف پایین فرم است. كه برای كنترل جهت های مختلف خاصیت Tag آن را به Forward و خاصیت Picture آن را نیز به آدرس فایلی كه عكس فلش در آن موجود است ست شده است.
Left- Direct Picture Box)): نام فلش به طرف چپ به پایین فرم است. كه برای كنترل جهت های مختلف خاصیت Tag آن را به Down و خاصیت Picture آن را نیز به آدرس فایلی كه عكس فلش در آن موجود است ست شده است.
Down- Direct Picture Box)): نام فلش به طرف پایین به بالا فرم است. كه برای كنترل جهت های مختلف خاصیت Tag آن را به Down و خاصیت Picture آن را نیز به آدرس فایلی كه عكس فلش در آن موجود است ست شده است.
Ok: این كلید، كلیدی است كه كاربر پس از طراحی فشار می دهد تا بتواند حق تقدم را مشاهده كند. با زدن این كلید حق تقدم در TexBoxی كه روبروی كلید گذاشته شده است نمایش داده می شود.
Exit: كاربر برای خروج و بستن فرم «حق تقدم در سهراه» می تواند روی آن كلیك كند.
حق تقدم در چهار راه:
اگر كاربر بر روی كلید حق تقدم در سه راه كلیك كند فرمی به شكل زیر در صفحه مونیتور نمایان می شود.
نام این فرم Way-Four است كه ارتفاع و پهنای آن به ترتیب به 6225 و 9180 ست شده است. در این فرم است كه كاربر به راحتی می تواند به دلخواه خود طراحی كند و كامپیوتر با الگوریتمی كه برای آن پیاده سازی شده، حق تقدم را تشخیص می دهد و نتیجه را در فرم نمایش می دهد، برای كنترل بهتر و دقیق تر فرم، خاصیت BorderStyle آن را به 0-None و خاصیت Moveable آن را نیز به false ست كرده ایم. برای رنگ زمینه فرم خاصیت Backcolor را به رنگ آبی (H00A4600D) تغییر داده ایم.
این فرم حاوی یك Image، یك Frame، ده pictureBox، دو كلید، یك TextBox می باشد. كه عبارتند از:
Way4: این نام، نام Image این فرم است كه ارتفاع و پهنای آن به ترتیب، 5055 و 8055 است. در خاصیت Picture آن آدرس فایل حاوی عكس سه راه است نوشته شده، و خاصیت Stretch آن نیز به True ست شده است تا عكس كل فضای Image ما را بپوشاند.
Frame1: این Frame برای اینكه ما وسایل نقلیه موجود را در آن قرار دهیم گذاشته شده كه ارتفاع و پهنای آن به ترتیب 5055 و 975 تغییر داده شده است. خاصیت BorderStyle آن را نیز به 1-Fixed Single ست كرده ایم.
Carl: نام اتومبیل (Picture Box) سبز رنگ است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس اتومبیل سبز رنگ است انتخاب شده است این عكس یك Icon می باشد.
Car2: نام اتومبیل (Picture Box) قرمز رنگ است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture ان نیز آدرس فایلی كه حاوی عكس اتومبیل قرمز رنگ است انتخاب شده است این عكس یك Icon می باشد.
Ambolance: نام اتومبیل (Picture Box) آمبولانس است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس اتومبیل آمبولانس انتخاب شده است این عكس یك Icon می باشد.
Fire: نام اتومبیل (Picture Box) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس اتومبیل آتش نشانی انتخاب شده است این عكس یك Icon می باشد.
Motor: نام موتور سیكلت (Picture Box) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس موتور سیلكلت انتخاب شده است این عكس یك Icon می باشد.
Bicycle: نام دوچرخه (Picture Box) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. خاصیت picture آن نیز آدرس فایلی كه حاوی عكس دوچرخه انتخاب شده است این عكس یك Icon می باشد.
Stop1: نام تابلوی ایست Picture Box)) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. در خاصیت picture آن نیز آدرس فایلی كه حاوی عكس تابلوی ایست است انتخاب شده است این عكس یك Icon می باشد.
Stop2: نام تابلوی ایست Picture Box)) آتش نشانی است كه در روی فرم گذاشته شده، خاصیت DragMode آن را نیز به -Automatic 1 و برای آنكه رنگ زمینه
Picture Box به رنگ خود Frame ی كه در زیر آن است درآید خاصیت Backcolor آن را به WindowBackgrouns تغییر داده ایم. در خاصیت picture آن نیز آدرس فایلی كه حاوی عكس تابلوی ایست است انتخاب شده است این عكس یك Icon می باشد.
Top- Direct Picture Box)): نام فلش به طرف پایین فرم است. كه برای كنترل جهت های مختلف خاصیت Tag آن را به Forward و خاصیت Picture آن را نیز به آدرس فایلی كه عكس فلش در آن موجود است ست شده است.
Left- Direct Picture Box)): نام فلش به طرف چپ به پایین فرم است. كه برای كنترل جهت های مختلف خاصیت Tag آن را به Forward و خاصیت Picture آن را نیز به آدرس فایلی كه عكس فلش در آن موجود است ست شده است.
Down- Direct Picture Box)): نام فلش به طرف پایین به بالا فرم است. كه برای كنترل جهت های مختلف خاصیت Tag آن را به Forward و خاصیت Picture آن را نیز به آدرس فایلی كه عكس فلش در آن موجود است ست شده است.
Right- Direct Picture Box)): نام فلش به طرف چپ به پایین فرم است. كه برای كنترل جهت های مختلف خاصیت Tag آن را به Forward و خاصیت Picture آن را نیز به آدرس فایلی كه عكس فلش در آن موجود است ست شده است.
Ok: این كلید، كلیدی است كه كاربر پس از طراحی فشار می دهد تا بتواند حق تقدم را مشاهده كند. با زدن این كلید حق تقدم در TexBoxی كه روبروی كلید گذاشته شده است نمایش داده می شود.
Exit: كاربر برای خروج و بستن فرم «حق تقدم در چهارراه» می تواند روی آن كلیك كند.
سه فرم طوری طراحی شده است كه كاربر فقط به فقط می تواند به وسیله Mouse طراحی خود را انجام دهد. به این ترتیب كه روی یكی از شكل های موجود در صفحه كلیك كرده و كلید سمت چپ ماوس را فشار می دهد و به همان صورت كه روی آن فشار می دهد یكی از شكل ها را در صفحه اصلی (میدان یا سه راه و یا چهارراه) می گذارد، در میدان كاربر فقط قادر است كه از دو وسیله نقلیه استفاده كند. جایی كه برای وسایل در صفحه در نظر گرفته شده یكی در وسط و دیگری در ضلع جنوبی میدان ی باشد. در سه راه كاربر قادر خواهد بود كه از سه وسیله نقلیه به همراه یك تابلوی ایست استفاده كند، در چهارراه نیز كاربر قادر خواهد بود كه از چهار وسیله نقلیه به همراه دو تابلوی ایست ایستفاده كند. در سه راه و چهار راه كاربر می تواند برای تغییر دادن جهت عبور وسیله نقلیه روی فلش ها در فرم طراحی (سه راه و چهارراه) كلیك كند، با هر بار كلیك كردن شكل فلش ها تغیری می كند. این فرم انعطاف پذیر است به این معنی كه كاربر پس از مشاهده نتیجه بدون اینكه از فرم طراحی خارج شود می تواند مجدداً به كمك ماوس طراحی خود را تغییر دهد و شكل های موجود را با هم تعویض كند برای این كار كافیست كاربر شكل موجود در صفحه طراحی را به كمك ماوس برداشته و در جای دیگر خالی روی صفحه ابزار (جایی كه دیگر شكل ها و وسایل نقلیه وجود دارند) بگذارد و مجدداً وسیله دیگری را انتخاب و در صفحه قرار دهد.
فایلهای اطلاعاتی برنامه:
این نرم افزار حاوی 14 فایل عكس (Icon) با پسوند ICO.
179 فایل عكس (Picture) با پسوند .JPG
21 فایل كه فرم های برنامه را شامل می شود با پسوند .FRM است كه عبارتند از:
FORM1.FRM: این فایل، همان فرم اصلی برنامه است. كه شامل 6 پارامتر ثبت مشخصات، شروع آزمون، نتیجه آزمون، آموزش، گزارش فردی و گزارش كلی است.
FORM2.FRM این فایل، فرم ثبت مشخصات برنامه است.
FORM3.FRM: این فایل، فرم شروع آزمون است كه سوالات و گزینه ها در آن نمایش داده می شود.
FORM4.FRM این فایل، فرم آموزش است كه كاربر یكی از 5 كلید طراحی شده روی آن را به دلخواه خود انتخاب می كند.
PSW.FRM: این فایل، فرم دریافت كلمه رمز از مدیر سیستم است.
PERSON-LIAT.FRM: این فایل، فرم لیست داوطلبانی است كه اطلاعات آنها در كامپیوتر وارد شده است.
QUICK-RES.FRM: این فایل، فرم نتیجه آزمون است كه در پایان آزمون به كاربر نشان داده می شود.
RESUAL.FRM: این فایل، فرم گزارش فردی داوطلب می باشد.
REPORT-ALL.FRM: این فایل، فرم گزارش كلی داوطلبان شركت كننده است.
SEE.FRM: این فایل، فرم آموزش (بازدید قبل از حركت) برنامه است.
LEVEL- LET.FRM: این فایل، فرم آموزش (مراحل قبل از حركت) برنامه است.
PARK-FRM: این فایلم، فرم آموزش (مراحل پارك كردن اتومبیل) در برنامه است.
STOP.FRM: این فایل، فرم آموزش (نكاتی در مورد توقف) در برنامه است.
TAGHADOM.FRM: این فایل، فرم آموزش حق تقدم است كه كاربر می تواند در این فرم یكی از سه كلید (میدان سه راه و چهار راه) را انتخاب كند.
SQUAR.FRM: این فایل، فرم طراحی در میدان است.
WAY-THREE.FRM: این فایل، فرم طراحی در سه راه است.
WAY-FOUR.FRM: این فایل، فرم طراحی در چهارراه است.
1 فایل كه بانك برنامه است با پسوند .MDB نام این بانك DB.MDB می باشد.
1 فایل كه Module برنامه است با پسوند .BAS نام آن MODULE1.BAS می باشد.
1 فایل پروژه با پسوند .VBP، نام آن PROJECT.VBP می باشد.
1 فایل اجرایی برنامه، كه كاربر برای اجرای نرم افزار بایستی روی این فایل كلیك كند، كه پسوند آن .EXE می باشد.
كلیه عكس ها كه همگی با پسوند .Jpg است در دایركتوری PIC این نرم افزار قرار گرفته است. تمامی این عكس ها به وسیله اسكنر، اسكن شده سپس به وسیله نرم افزار گرافیكی PHOTOSHOP این عكس ها از هم تفكیك و به فایل گرافیكی با پسوند .Jpg تبدیل شده است. Icon ها همگی در دایركتوری Icon این نرم افزار قرار گرفته است. بعضی از این Icon ها (مانند: وسیال نقلیه ای كه به كار رفته شده است) به وسیله نرم افزار ساخت Icon به نام ICON EDIT طراحی شده است.
بقیه فایل ها در خود دایركتوری اصلی برنام یعنی PROJECT قرار گرفته اند.
ساختمان و شرح عملكرد نرم افزار
ساختار بانك نرم افزار (DATA BASE)
این پروژه یك بانك به نام DB.MDB دارد كه با نرم افزار ACCESS 2000 طراحی و پیاده سازی شده است. كه شامل دو جدول (TABLE) است. این TABLE ها عبارتنداز:
PERSONS: این جدول حاوی اطلاعات مربوط به مشخصات داوطلبان است كه شامل یازده فیلد است:
فیلد Name، این فیلد برای نگهداری داوطلبین طراحی شده كه نوع داده آن TEXT در نظر گرفته شده است و طول این فیلد 50 كاراكتر است.
فیلد Family: این فیلد برای نگهداری نام خانوادگی داوطلبین طراحی شده كه نوع داده آن TEXT در نظر گرفته شده است و طول این فیلد 50 كاراكتر است.
فیلد N-Father، این فیلد برای نگهداری نام پدر داوطلبین طراحی شده كه نوع داده آن TEXT در نظر گرفته شده است و طول این فیلد 50 كاراكتر است.
فیلد S-Number، این فیلد برای نگهداری شماره شناسنامه داوطلبین طراحی شده كه نوع داده آن TEXT در نظر گرفته شده است و طول این فیلد 10 كاراكتر است.
فیلد فیلد Location، این فیلد برای نگهداری تولد داوطلبین طراحی شده كه نوع داده آن TEXT در نظر گرفته شده است و طول این فیلد 50 كاراكتر است.
فیلد Address، این فیلد برای نگهداری آدرس داوطلبین طراحی شده كه نوع داده آن فیلد TEXT درنظر گرفتهش ده و طول این فیلد 200 كاراكتر است.
فیلد Date- Exam، این فیلد برای نگهداری تاریخ آزمون داوطلبین طراحی شده كه نوع داده آن TEXT در نظر گرفته شده و طول این فیلد 10 كاراكتر است.
فیلد Year-Exam، این فیلد برای نگهداری تاریخ تولد داوطلبین طراحی شده كه نوع داده آن TEXT در نظر گرفته شده و طول این فیلد 4 كاراكتر است.
فیلد Status، این فیلد برای نگهداری وضعیت آزمون داوطلبین طراحی شده كه نوع داده آن TEXT در نظر گرفته شده و طول این فیلد 8 كاراكتر است.
فیلد True Answer، این فیلد برای نگهداری تعداد پاسخ های صحیحی كه داوطلبین در آزمون علامت زده اند، طراحی شده كه نوع داده آن TEXT در نظر گرفته شده و طول این فیلد 2 كاراكتر است.
فیلد Code، این فیلد برای نگهداری كد داوطلبین طراحی شده كه نوع داده آن TEXT در نظر گرفته شده است. طول این فیلد 8 كاراكتر است.
Question: این جدول حاوی اطلاعات مربوط به سوالات و پاسخ های آزمون آئین نامه است كه شامل هشت فیلد است:
فیلد Question، این فیلد برای نگهداری سوالات آزمون طراحی شده كه نوع داده آن TEXT در نظر گرفته ایم. طول این فیلد 250 كاراكتر است.
فیلد Answer1، این فیلد برای نگهداری گزینه های 1 سوالات، طارحی شده است كه نوع داده آن TEXT در نظر گرفته ایم. طول این فیلد 150 كاراكتر است.
فیلد Answer2، این فیلد برای نگهداری گزینه های 2 سوالات، طراحی شده است كه نوع داده آن TEXT در نظر گرفته ایم. طول این فیلد 150 كاراكتر است.
فیلد Answer3، این فیلد برای نگهداری گزینه های 3 سوالات، طراحی شده است كه نوع داده آن TEXT در نظر گرفته ایم. طول این فیلد 150 كاراكتر است.
فیلد True Answer، این فیلد برای نگهداری پاسخ های صحیح آزمون طراحی شده كه نوع داده آن TEXT در نظر گرفته ایم. طول این فیلد 2 كاراكتر است.
فیلد در نظر گرفته ایم. طول این فیلد 2 كاراكتر است.
فیلد Person Answer، این فیلد برای نگهداری پاسخ های داوطلبی كبه در هنگام آزمون انتخاب می كند، طراحی شده كه نوع داده آن TEXT در نظر گرفته ایم. طول این فیلد 2 كاراكتر است.
Pic: این فیلد برای نگهداری آدرس فایل هایی است كه حاوی تصویر سوالات می باشند، طراحی شده كه نوع داده TEXT در نظر گرفته ایم. طول این فیلد 250 كاراكتر است.
Random: این فیلد برای مشخص كردن سوالاتی است كه در تصادفی (Random) كردن شركت داشته اند، طراحی شده است و نوع داده آن عددی و از نوع Byte تعریف شده است. در این فیلید یا عدد «1» می نشیند و یا عدد «0». به این معنی كه اگر آن سوال در Random شركت داشت مقدار این فیلد برای آن سوال «1» و اگر در Random شركت نداشت مقدار «0» درون آن می نشیند. این فیلد برای كنترل كردن سوالاتی كه در Random شركت كرده اند طراحی شده است.
در این Table، 287 سوال همراه با گزینه های آن وارد شده است.
مشخصات زیر برنامه ها
زیر برنامه های فرم (Form1):
Lock-btn-click: این زیر برنامه، زیر برنامه كلید حفاظت سیستم است و در آن كدی نوشته شده كه تا كاربر كلید حفاظت را فشار داد فرم گرفتن رمز در صفحه مونیتور نمایش داده شود.
Exit- click: این زیربرنامه، كه زیر برنام كلید خروج است كه كاربر با كلیك كردن روی این كلید، این زیر برنامه را كه موجب خروج از برنامه می شود، فراخوانی می كند.
Form- Load: در این زیر برنامه، كه زیر برنامه لود فرم است، متغیر IsHaveExam را flase كرده ایم به این معنی كه آزمونی برگزار نشده است.
همان طور كه در فرم اصلی برنامه مشاهده گردید از دو لیست استفاده شده لیست اول كه شامل 3 پارامتر ثبت مشخصات، شروع آزمون و نتیجه آزمون می باشد و لیست دوم كه شامل آموزش، گزارش فردی و گزارش كلی می باشد. به همین جهت ما د رانی فرم دو نوع لیست داریم در لیست اول، كنترل شده كه كاربر كدام یك از گزینه ها را انتخاب كرده است. همانطور كه قبلاً اشاره كردیم تا كاربر ثبت مشخصات را انتخاب و اطلاعاتی را وارد نكند گزینه شروع و نتیجه آزمون و گزاش فردی غیر فعال است. بنابراین در این زیر برنامه كدی نوشته شده كه چك می كند كه آیا شخصی انتخاب شده كه گزینه شروع آزمون فعال شود یا خیر. بعد از اینكه اطلاعات دقیقاً وارد شد كاربر می تواند گیزنه های شروع آزمون و بعد از آن نتیجه آزمون را انتخاب كند. لیست دوم هم به همین ترتیب كد نویسی شده كه اگر كاربر روی آموزش كلیك كرد فرم آموزش باز شود و اگر روز گزارش فردی كلیك كرد فرم گزارش فردی و به همین ترتیب اگر روی گزارش كلی كلیك كرد فرم گزارش كلی كه مربوط به كلیه اشخاص شركت كننده در آزمون آئین نامه راهنمایی و رانندگی هست نمایش داده شود.
Taghadom-btn-click: این زیرببرنامه باعث نمایش فرم تشخیص حق تقدم می وشد كه در آن كاربر یكی از سه پارامتر میدان، سه راه و چهارراه را انتخاب می كند.
زیربرنامه های فرم (Form2):
متغیر IsNew در این فرم به صورت سراسری (Public) تعریف شده تا بتوان در تمام این فرم از آن استفاده كرد. این متغیر از نوع Boolem بوده كه شرح آن در چند سطر بعدی توضیح داده خواهد شد.
Clear-Form: وظیفه این زیربرنامه این است كه فرم موجود را پاك كند. به این ترتیب كه روی فرم، تمامی TextBox ها را خالی می كند.
IsFormOk: این تابع مقدار Boolean آن هم به صورت True یا Flase به عنوان خروجی بر می گرداند تابع فوق چك می كند كه تمامی فیلدها روی صحه فه درستی و كامل شده باشند به8عنوان مثال اگر كاربر تمامی اطلاعات را وارد كند ولی نام او را وارد نكند پیغامی به كاربر داده می شود كه «لطفاً نام داوطلب را وارد كنید» به همین ترتیب برای فیلدهای بعدی چنین كنترلی را انجام داده ایم. درهمین تابع است كه كنترل كرده ایم تا كد داوطلبی تكراری وارد نشود در صورت تكرار سیستم به كاربر پیغام «این كد موجود است» می دهد.
اگر تمامی موارد فوق رعایت شود خروجی تابع True خواهد شد.
Code- Keypress: این زیربرنامه برای كنترل كردن فیلد كد داوطلب نوشته شده است به این ترتیب كه چك می كند كه تمامی ورودی ها عدد باشد. و حروف به عنوان ورودی از كاربر دریافت نمی كند.
Del-btm-click: این زیربرنامه، زیربرنامه كلید حذف داوطلب در فرم است. این كلید یك ركود را با تاییدیه از سوی كاربر از بانك اصلی برنامه حذف می كند در این برنامه از متغیری به نام Orging-CD استفاده شده كه كد داوطلب را در خود نگهداری می كند.
Familly-Keypress: برای چك كردن فیلد نام خانوادگی نوشته شده است. به این ترتیب چك می كند كه حتماً به حروف به عنوان ورودی وارد شود.
Father-keypress: برای چك كردن فیلد نام پدر نوشته شده است. به این ترتیب چك می كند كه حتماً به حروف به عنوان ورودی وارد شود.
Name-keypress: برای چك كردن فیلد نام نوشته شده است. به این ترتیب چك می كند كه حتماً به حروف به عنوان ورودی وارد شود.
Serial-keypress: برای چك كردن فیلد شماره شناسنامه نوشته شده است. به این ترتیب چك می كند كه حتماً به حروف به عنوان ورودی وارد شود.
Year-Born-keypress: برای چك كردن فیلد سال تولد نوشته شده است. به این ترتیب چك می كند كه حتماً به حروف به عنوان ورودی وارد شود.
Form- unload: این زیربرنامه قبل از اینكه unload , Name شود مقدار سه فیلد Names، Orging-CD , Family را در متغیر های Nam، Fam و ID می ریزد.
List-btn-click: این زیر برنامه فرم Person-List را نمایش می دهد این فرم حاوی اسامی داوطلبانی است كه در آزمون شركت كرده اند.
New-btn-Click: این زیربرنامه، زیر برنامه كلید جدید در روی فرم است، كه به موجب آن زیربرنامه دیگری صدا زده شده است و آن هم زیربرنامه Clear-form است این زیربرنامه كلیه فیلدهای فرم ثبت مشخصات را خالی می كند و بعد از خالی شدن فیلدها روی فرم ، كلید حذف در همین فرم را غیر فعال می كند و مقدار متغیر IsNew را True می كند كه منزله ورود یك ركورد جدید است.
Ok- Click: این زیربرنامه باعث می شود هنگامی كه كلید تایید در فرم زده شد فرم بسته و كنترل را به فرم اصلی پروژه بر می گرداند.
Save- btn- click: در این زیربرنامه متغیری از نوع String تعریف شده این زیربرنامه هنگامی كار خود را شروع می كند كه كاربر روی كلید ذخیره كه روی فرم گذاشته شده كلیك كرده باشد د راتبدا چك می كند كه آیا اطلاعات به صورت كامل پر شده یا خیر. این عمل را تابع IsFormOk انجام می دهد كه در این زیربرنامه خارج می شود. در خط بعدی شرطی گذاشته شده كه چك می كند آیا اطلاعات وارد شده داوطلب جدید است و یا اینكه اطلاعات از قبل در بانك وجود داشته و كاربر می خواهد اطلاعات قبلی را update كند، كه برای این كار از دو دستور UPDATE , INSERT كه از دستورات SQL می باشد. استفاده شده است. به این ترتیب ذكه اگر كاربر ركورد جدیدی را وارد كرد به وسیله دستور INSERT این اطلاعات در بانك ذخیره شود و اگر اطلاعات داوطلبی از قبل موجود باشد و كاربرآن را ویرایش كند و سپس اطلاعات را ذخیره كند دستور UPDATE این عملیات را انجام می دهد.
بعد از انجام این عملیات مقدار متغیر Isnew كه مشخص می كرد اطلاعات جددی است یا خیر، مقدارش False می شود و كد داوطلب در دو متغیر به نام Orging-CD و ID قرار می گیرد. متغیر ID كلید اصلی این پروژه است.
زیربرنامه های فرم (FORM2)
در ابتدای این فرم چهار متغیر تعریف شده است متغیر RsPos كه از نوع Insert (صحیح) می باشد. و سه متغیر None Ans , FalseAns, از نوع بایت تعریف شده است. شرح این متغیرها در زیربرنامه ها ارائه شده است.
Creat- Res: در این زیربرنامه دو متغیر تعریف شده است، اولین متغیر I است كه از نوع بایت و دومین متغیر، متغیر SS است كه از نوع Varian در نظر گرفته شده است.
متغیر I كه برای متغیر حلقه for استفاده شده و متغیر SS هم نتیجه آزمون داوطلب را بر خود نگهداری می كند كه مقدار آن «مردود» و یا «قبول» است.
این زیر برنامه برای مشخص كردن وضعیت آزمون داوطلب نوشته شده است. كه در ابتدای آن اشاره گر ركورد را به ابتدای ركوردست می بریم، سپس به وسلیه حلقه for چك می كنیم كه اگر كاربر سوالی را بدون پاسخ رها كرد تغداد آن را در یك متغیر برای ما نگهداری كند این متغیر همان متغیر NoneAns می باشد. این مقادیر برای ما خیلی مهم هستند. چون م یخواهیم كه در گزارش گیری به داوطلب بگوییم كه به چه تعداد سوالات پاسخ نادرست داده است، به همین جهت تعداد پاسخ های صحیح داوطلب را در متغیر TrueAns و تعداد پاسخ های نادرست داوطلب را در متغیر FalseAns نگهدرای می كنیم.
در این زیر برنامه كار تصحیح سوالات را انجام داده ایم به این ترتیب كه چك می كنیمآیا پاس كاربر با پاسخ صحیح موجود در بانك یكی بوده یا خیر. اگر پاسخ صحیح بود به ازای هر پاسخ صحیح یك واحد به تعداد TrueAns اضافه می شود و اگر هم پاسخ نادرست بود به ازای هر پاسخ نادرست یك واحد به تعداد FalseAns ها اضافه می شود. در انتهای حلقه FOR كافی است كه ركوردست را به جلو ببریم كه با دستور Rs.MoveNext این عمل را انجام داده ایم.
در این زیربرنامه تعداد كل سوالات را درمتغیر Total كه به صورت Public و از نوع بایت آن را ترعیف كرده ایم، مقادیر را نگهداری می كنیم و شرطی گذاشته ایم كه اگر داوطلب به 80 درصد سوالات پاسخ صحیح داد داوطلب در آئین نامه قبول شده و نتیجه در متغیر SS ذخیره سازی می شود. در همین زیربرنامه است كه با دستور Update نتیجه را در بانك بروز رسانی می كنیم (فیلدهایی كه بروز رسانده می شوند عبارتند از: نتایج آزمون، تعداد پاسخهای صحیح ووضعیت داوطلب كه قبول شده یا مردود).
Creat- Report: متغیر I كه در این زیربرنامه وجود دارد از نوع بایت تعریف شده و متغیر حلقه for است. در این زیربرنامه است كه ما نتیجه گزارش فردی را كه شامل خود سوال به همراه گزینه های 1 و 2 و 3 آن و همچجنین جواب صحیح و جواب كاربر را كنترل می كنیم به این معنی كه در لیست نتیجه (Result) داوطلب، ثبت می شود.
EndExam- click: این زیربرنامه زیر برنامه كلید «خاتمه» است. كار این زیربرنامه هنگامی شروع می شود كه داوطلب آزمون را تمام كرده و خود كلید خاتمه در فرم شروع آزمون را زده باشد و یا اینكه وقت آزمون (یعنی 30 دقیقه) به پایان رسیده باشد به همین جهت ابتدا تمامی پاسخ هایی كه كاربر داده ذخیره می شود برای این كار زیربرنامه دیگری به نام Save-PersonAnswer فراخوانی كرده ایم. كه تمامی این جزئیات را ذخیره می كند.
مقدار متغیر IsHaveExam نشان دهنده این است كه آیا آزمون گرفته شده در وصرت اینكه ازمون گرفته شده مقدارش True می شود و پیغامی به كاربر داده می شود كه «امتحان به پایان رسید» بعد از اعلام این پیغام دو زیربرنامه Creat- Res و Creat-Report صدا زده می شود تا نتایج آزمون را در همان جا به داوطلب اعلام كند. نشان دادن نتایج را فرم Quick-Res به عهده دارد كه در زیر برنامه فراخوانی شده. بعد از نمایش نتایج بر روی صفحه مونیتور فرم PSW كه فرم رمز سیستم است نمایان می شود و كنترل برنامه در اینجا از داوطلب گرفته می شود تا نتواند وارد جاهای دیگر نرم افزار شود.
EndTime- Timer: این زیربرنامه، زیر برنامه Timer می باشد كه برای زمان بندی آزمون استفاده شده است ما در این زیربرنامه مدت پاسخ گویی به سوالات را 30 دقیقه فرض كرده ایم. در پایان EndExam-Click را فراخوانی می كند.
Form- Load: این زیربرنامه كه زیربرنامه Load فرم است دارای سه متغیر I , CNT و R از نوع بایت می باشد.
متغیر CNT متغیری است كه برای تصادفی كردن سوالات به كار گرفته می شود. به این ترتیب كه تعداد سوالات تصادفی در CNT ذخیره می شود.
در این زیربرنامه مقدار سه متغیر Flase Ans , TrueAns , NoneAns را صفر كرده ایم. سپس به وسیله حلقه ای تا آخر ركوردست پیش رفته و ركودرهای را به صورت تصادفی برای ما انتخاب می كند كه تعداد آن ها در CNT ذخیره می شود و شرطی گذاشته شده تا مقدار CNT را با مقدار Total كه تعداد آن 30 سوال است مقایسه كند. فیلد Random در این زیربرنامه «1» می شود. به شرطی كه آن سوال در تصادفی كدرن شركت كرده و انتخاب شده باشد در غیر این صورت مقدار فیلد Random برای آن سوال «0» خواهد بود.
بعد از انجام این عملیات زیربرنامه Show- Question كه برای نمایش سوالات است صدا زده می شود. در این جا مقدار RsPos یك شده و سپس پیام زیر به داوطلب داده می شود كه «آیا آماده شروع امتحان هستید؟»
وقتی كه كاربر روی Ok كلیك كرد زمان بندی آزمون كه مدت آن 30 دقیقه است شروع می شود.
Show- Person- Ans: این زیربرنامه مشخص می كند كه كاربر كدام یك از گزینه ها را انتخاب مرده به این ترتیب كه اگر مقدار PersonAnswer یك شود سیستم متوجه می شود كه كرابر روی گزینه اول كلیك كرده و مقدار value آن True می شود. این عمل برای گزینه های دیگر نیز انجام می شود.
Show- Question: این زیربرنامه وظیفه نمایش دادن سوالات همچنین نمایش گزینه ها را بر عهده دارد. به همین جهت در ابتدای كار وقتی سوال نمایش داده می شود Value سه option را False كرده ایم. در این زیربرنامه است كه هر سوال به همراه گزینه هایش و در صورت داشتن عكس بر روی مونیتور نمایش داده می شود.
Form- Unload: در این زیربرنامه عمل ذخیره پاسخ هایی كه كاربر به سوالات داده را بر عهده دارد به این ترتیب كه اگر گزینه یك مقدارش true بود عدد «1» در فیلد PersonAnswer می نشیند و اگر گزینه دو مقدارش True بود عدد «2» و اگر گزینه سه مقدارش true بود عدد «3» در این فیلد ذخیره می شود.
Next- click: این زیربرنامه، زیربرنامه كلید بعدی فرم شروع آزمون میب اشد به همین جهت با زدن این كلید caption برچسب شماره سوالات كه در فرم نشان داده شده یك واحد به آن اضافه می شود. بعد از انجام این عمل زیر برنامه Save-PersonAnswer صدا زده می شود. در این زیر برنامه چك می شود كه اگر داوطلب كلید بعدی را زد و به انتهای سوال رسید كلید بعدی دیگر غیر فعال شود. دو زیربرنامه Show- Question و Show- Person- Ans كه به ترتیب برای نمایش سوالات و نمایش سوالات و نمایش گزینه هاست در این زیربرنامه صدا زده شده است.
Prev-Click: این زیربرنامه، زیربرنامه كلید قبلی فرم شروع آزمون می باشد. به همین جهت با زدن این كلید، caption برچسب شماره سوالات كه در فرم نشان داده شده یك واحد كم می شود. بعد از انجام این عمل زیربرنامه Save-PersonAnswer صدا زده می شود. در این زیربرنامه مانند زیربرنامه Next- click طوری كنترل شده كه اگر كاربر به اولین سوال رسید كلید قبلی غیر فعال شود. دود زیربرنامه Show- Question و
Show- Person- Ans نیز فراخوانی شده است.
زیربرنامه های فرم (FORM4)
See-LeftDrive: این زیربرنامه، زیربرنامه كلید بازدید قبل از حركت است كه با فشردن این كلید فرم See نمایش داده می وشد.
Prev- Drive-click: این زیربرنامه، زیربرنامه كلید مراحل قبل از حركت است كه رانند بایستی آنها را رعایت كند. با فشردن این كلید فرم Level- Prev نمایش داده می شود.
Exit-Click: این زیربرنامه، زیربرنامه كلید مراحل پارك كردن است كه با فشردن این كلید فرم Park1 نمایش داده می شود.
Stop- Click: این زیربرنامه، زیربرنامه كلید توقف است كه با فشردن این كلید فرم srop1 نمایش داده می شود.
زیربرنامه فرم (LEVEL-PREV)
ok-btn-click: این زیربرنامه، زیربرنامه كلید تایید است كه با فشرده شدن این كلید فرم بسته می شود.
(MODULE1)
این نرم افزار یك Module دارد كه درآن متغیرهایی به صورت سراسری تعریف كردهایم تا بتوان از مقادیر انها درتمام پروژه استفاده كرد.
متغیر RS كه متغیر ركوردست و متغیر CN هم Connection برنامه است. متغیر Name و Fam كه برای نگهداری نام و نام خانوادگی از آن استفاده می شود و از نوع String می باشد. متغیر Total كه برای نگهداری تعداد سوالاتی كه بایستی در آزمون نمایش داده شود تعریف شده این متغیر از نوع بایت می باشد.
متغیر IsHAveEXam كه از نوع Boolean و متغیر AdminPas كه برای نگهداری رمز سیستم و از نوع String تعریف شده است.
متغیر Now-Date كه برای نگهداری تاریخ آزمون است این متغیر از نوع variant می باشد و در پایان متغیر ID كه برای نگهداری كد داوطلبی تعریف شده این متغیر نیز از نوع string است.
در قسمت بدنه اصلی Module رمز سیستم كه Testdrive می باشد تعریف شده است. بعد از آن بانك پروژه كه DB.MDB نام دارد با MicroSoft.jet.OLEDB.4.0 باز شده بعد از آن كدی نوشته شده كه از كاربر تاریخ آزمون را می گیرد و طوری طراحی و تنظیم شده كه بایستی تاریخ را به صورت كامل (یعنی روز/ ماه/ سال) وارد كرد.
زیربرنامه فرد (PARK)
Ok-btn-click : این زیربرنامه، زیربرنامه كلید تایید می باشد كه با زدن آن فرم PARK بسته می شود.
زیربرنامههای فرم (PERSON- LIST)
Form- Load: این زیربرنامه، زیر برنامه Load فرم می باشد و در هنگام Load فرم فراخوانی می شود. در ابتدا چك كرده ایم كه اگر لیست خالی بود برای زیبایی برنامه كلید تایید را غیر فعال كند. بعد از آن دستور SELECT از دستورات SQL را برای ركوردست به صورت فقط خواندنی به كار برده ایم. سپس نام و نام خانوادگی و كد را به لیست اضافه كرده ایم.
Form- Unload: در اینجا ركوردست را می بندیم.
LST- DblClick: این زیربرنامه برای آن است كه اگر كاربر روی یكی از اسامی داوطلبین دو بار كلیك كرد مشخصات آن را در فرم ثبت مشخصات نمایان كند.
Ok- btn- Click: این زیربرنامه، زیربرنامه كلید تایید می باشد. یعنی اینكه كاربر پس از انتخاب كردن یكی از اسامی با زدن كلید تایدی این زیربرنامه را فراخوانی كرده و اطلاعات مربوط به آن شخص را در فرم ثبت مشخصات نمایان می كند. سپس متغیر IsNew را در اینجا Flase می كند. به این معنی كه داوطلب یك داوطلب جدید نیست، بلكه قبلا در آزمون شركت كرده است.
زیربرنامه فرم (PSW)
Pss- Keypress: این زیربرنامه دارای شرطی است كه چك می كند آیا رمزی كه كاربر وارد كرده صحیح است یا خیر. در صورت صحیح بودن فرم PSW را بسته و به فرم اصلی پروژه بر می گردد. در غیر این صورت منتظر می ماند تا كاربر كلمه رمز صحیح را وارد كند.
زیربرنامه فرم (QUICK- RES)
Visit-Click: این زیربرنامه، زیربرنامه كلید مشاهده شد است كه با فشردن آن فرم بسته می شود.
زیربرنامه های فرم (REPORT- ALL)
Creat- Report- All: این زیربرنامه در ابتدا لیست را پاك كرده بعد از آن اطلاعات كامل تمامی افرادی كه تاكنون آزمون داده اند را در لیست اضافه می كند. این اطلاعات شامل: نام، نام خانوادگی، كد داوطلب، آدرس، تاریخ آزمون، تعداد پاسخ های صحیح و وضعیت داوطلب می باشد.
Ok-btn0click: این زیر برنامه، زیربرنامه كلید تایید می باشد كه باعث بستن فرم می شود.
زیربرنامه فرم (RESULT)
Form-unload: این زیربرنامه، فرم را Hide می كند.
Visit- Click: این زیربرنامه، زیربرنامه كلید مشاهده شد است كه موجب بستن فرم می شود.
زیربرنامه فرم (SEE)
Exit-Click: این زیربرنامه، زیربرنامه كلید خروج است كه باعث بسته شدن فرم می شود.
زیربرنامه فرمD (STOP1)
Ok-btn-Click: این زیربرنامه، زیربرنامه كلید تایید فرم می باشد كه با زدن آن فرم بسته می شود.
زیربرنامه های فرم (TAGHADOM)
Exit- Click: این زیربرنامه، زیربرنامه كلید خروج فرم حق تقدم است كه با فشردن آن این فرم بسته می شود.
Squar- Click: این زیربرنامه، زیربرنامه كلید میدان است كه با فشردن این كلید فرم طراحی در میدان (Way- Squar) نمایش داده می شود.
Way3- Click: این زیربرنامه، زیربرنامه كلید سه راه است كه با زدن آن فرم طراحی در سه راه (way- Three) نمایش داده می شود.
Way4- Click: این زیربرنامه، زیربرنامه كلید چهارراه است كه با زدن آن فرم طراحی در سه راه (way- Four) نمایش داده می شود.
زیربرنامه های فرم (way- Square)
Exit- Click: این زیربرنامه، زیربرنامه كلید خروج در فرم میدان است كه باعث بسته شدن فرم طراحی در میدان می شود.
Form- Load: در این زیربرنامه هنگامی كه فرم Load می وشد به ترتیب نقاطی كه قبل از طراحی (سمت راست فرم) وسایل نقلیه در آنجا قرار داشته اند را در متغیری ذخیره می كنیم همانطور كه می دانیم هر PictureBox یك نقطه Left و یك نقطه Top دارد كه با گذاشتن مقادیر درون Top , Left می توان PictureBox را به هر نقطه ای ببریم . به همین ترتیبت درون متغیرهایی كه در ابتدای فرم تعریف كرده ایم مقادیر نقاط سمت راست بالای فرم كه شامل Top , Left است درون متغیرهای x و y قرار می دهیم. تا بتوانیم با داشتن مختصات x , y آنها، وسایل و تابلوها را به خوبی كنترل و هدایت كنیم.
به عنوان مثال برای اینكه مختصات اتومبیل سبزرنگ را داشته باشیم، نقطه left آن را در متغیر Pcar1-x و نقطه Top آن را در متغیر Pcar1-y نگهداری می كنیم. به همین ترتیب برای دیگر وسایل چنین عملیاتی را انجام داده ایم.
Free- Pos: این زیربرنامه، برای آزادسازی نقاطی است كه وسیله نقلیه را در آن قرار داده ایم. به همین جهت چك می كنیم كه كدام نقطه از میدان است كه باید آزاد شود بعد از پیدا كردن نقطه آن نقطه آزاد می كنیم.
Framel- Drag Drop به وسیله این زیربرنامه است كه توانایی كنترل یك PictureBox را به Frame تعیین شده داریم. به این ترتیب كه مختصات آن را نگه داشته بعد از اتمام كار و بازگشت به محل اولیه روی Frame از مقدار ذخیره شده قبلی استفاده می كنیم.
برای تمامی این PictureBox ها چنین عملی را انجام داده ایم.در پایان نقاط استفاده شده را آزاد كرده ایم.
Ok-Click: این زیربرنامه، زیر برنامه كلید مشاهده نتیجه است. در این زیربرنامه ابتدا شرطی گذاشته ایم كه تشخیص می دهد كه وسیله نقلیه آمبولانس بوده و یا اینكه ماشین آتش نشانی چومن همانطور كه می دانیم در هر جایی حق تقدم ابتدا با این وسایل بوده. سپس كنیترل كرده ایم كه وسیله نقلیه در كجای میدان قرار دارد كه دو حالت بیشتر ندارد (یا وسیله در داخل میدان است و یا اینكه در ضلع جنوبی میدان) در هر صورت، نقطه و وسیله نقلیه تشخیص داده شده و نتیجه كار در متغیر RES نگهدرای می شود.
Drag Drop Squqre-: این زیربرنامه برای كنترل نقاط روی Image ای كه حاوی عكس میدان است نوشته شده است. به این ترتیب كه كاربر فقط قادر خواهد بود در محدوده نقاطی كه به شكل یك مستطیل در میدان فرض شده وسیله نقلیه خود را بگذارد در صورت اینكه شرط موجود در زیربرنامه صادق بود وسیله نقلیه در نقطه ای كه تعیین شده (یا در سمت چپ میدان و یا در ضلع جنوبی میدان) قرار می گیرد.
زیربرنامه های فرم (Way- Three)
Exit-Click: این زیربرنامه، زیربرنامه كلید خروج فرم حق تقدم است. كه با فشردن آن این فرم بسته می شود.
From-Load: در این زیربرنامه هنگامی كه فرم Load می شود به ترتیب نقاطی كه قبل از طراحی (سمت راست فرم) وسیال نقلیه در آنجا قرار داشته اند را در متغیری ذخیره می كنیم. همانطور كه می دانیم هر PictureBox یك نقطه Left و یك نقطه Top دارد. برای جایگذاری این مقادیر مانند حق تقدم در میدان عمل كرده ایم.
Free- Pos: این زیربرنامه، برای آزادسازی نقاطی است كه وسیله نقلیه را در آن قرار داده ایم. به همین جهت چك می كنیم كه كدام نقطه از سه راه است كه باید آزاد شود بعد از پیدا كردن نقطه، آن نقطه آزاد می كنیم.
Framel- Drag Drop به وسیله این زیربرنامه است كه توانایی كنترل یك PictureBox را به Frame تعیین شده داریم. به این ترتیب كه مختصات آن را نگه داشته بعد از اتمام كار و بازگشت به محل اولیه روی Frame از مقدار ذخیره شده قبلی استفاده می كنیم.
برای تمامی این PictureBox ها چنین عملی را انجام داده ایم.در پایان نقاط استفاده شده را آزاد كرده ایم.
Left- Direct-Click: این زیربرنامه هنگامی فراخوانی می شود كه كاربر روی فلش كلیك كند به این ترتیب كه اگر كاربر تمایل داشت كه جهت حركت را عوض كند با یك بار كلیك كردن روی این فلش برنامه جهت فلش را به شكل تغییر می دهد در این جا چك شده كه اگر آن “Down” بود جهت را به سمت بالا تغییر بده و Tag، برابر “top” می شود . به این معنی كه اكنون جهت به سمت بالا است. و اگر كاربر مجدداً روی فلشی كه به سمت بالا بوده كلیك كند جهت فلش به شكل تغییر می كند كه اگر tag آن “top” بود جهت را به سمت پایین تغییر داده شده و tag آن برابر “Down” می شود.
به این معنی كه اكنون جهت به سمت پایین است.
Top-Diect: این زیربرنامه هنگامی فراخوانی می شود كه كاربر روی فلش كلیك كند به این تریتب كه اگر كاربر تمایل داشت كه جهت حركت را عوض كند با یك بار كلیك كردن روی این فلش، برنامه جهت فلش را به شكل تغییر می دهد در این جا چك شده كه اگر Tag آن “Forward” بود جهت را به سمت چپ تغییر می دهد در اینجا tag، برابر “Left” می شود به این معنی كه اكنون جهت به سمت چپ است. و اگر كاربر مجدداً روی فلشی كه به سمت چپ بوده كلیك كند جهت فلش به شكل تغییر می كند. در اینجا چك شده كه اگر tag آن “Feft” بود جهت را به سمت پایین تغییر بده و Tag آن برابر “down” می كند.
به این معنی كه اكنون جهت به سمت پایین است.
Down-Direct: این زیربرنامه هنگامی فراخوانی می شود كه كاربر روی فلش كلیك كند به این ترتیب كه اگر كاربر تمایل داشت كه جهت حركت را عوض كند با یك بار كلیك كردن روی این فلش، برنامه جهت فلش را به شكل تغییر می دهد. در اینجاچك شده كه اگر tag آن “Forward” بود جهت را به سمت چپ تغییر می دهد. در این جا Tag برابر “Left” بود جهت را به سمت بالا تغییر بده و tag آن برابر “Forward” می كند.
به این معنی كه اكنون جهت به سمت بالا است.
Way3- Drag-Drop: این زیربرنامه برای كنترل روی نقاط Image ای كه حاوی عكس سه راه است نوشته شده است. به این ترتیب كنترل می كند كاربر وسیله نقلیه خود را در كدام محدوده Top,Left,Down گذاشته است. اگر این محدوده، محدوده بالا باشد وسلیه را در بالای چهار راه می گذارد. این عملیات برای محدوده نقاط Left , Down نیز به همین ترتیب است. بعد از اینكه كاربر وسیله نقلیه خود را قرار داد مختصات top , left آن نقطه كه از قبل تعیین شده در Source كه متغیر DragDop است ریخته می شود. برای گذاشتن و چك كردن تابلوی ایست نیز همین عمل را انجام داده ایم.
Is-Forward؛: خروجی این تابع از نوع Boolean می باشد. در اینجا پارامتری به نام Area تعریف شده این تابع مشخص می كند كه جهت فلش به سمت جلو هست یا خیر. در صورت اینكه فلش به سمت جلو باشد مقدار تابع True خواهد شد.
Have-stop: خروجی این تابع از نوع Bollean می باشد. در اینجا پارامتری به نام Area تعریف شده این تابع مشخص می كند كه تابلوی ایست در كدام ناحیه قرار گرفته است. در صورت وجود تابلو در یكی از این نواحی مقدار تابع True خواهد شد.
زیربرنامه فرم (Way- Four)
Exit-Click: این زیربرنامه، زیربرنامه كلید خروج فرم حق تقدم است. كه با فشردن آن این فرم بسته می شود.
From-Load: در این زیربرنامه هنگامی كه فرم Load می شود به ترتیب نقاطی كه قبل از طراحی (سمت راست فرم) وسیال نقلیه در آنجا قرار داشته اند را در متغیری ذخیره می كنیم. همانطور كه می دانیم هر PictureBox یك نقطه Left و یك نقطه Top دارد. برای جایگذاری این مقادیر مانند حق تقدم در میدان عمل كرده ایم.
Free- Pos: این زیربرنامه، برای آزادسازی نقاطی است كه وسیله نقلیه را در آن قرار داده ایم. به همین جهت چك می كنیم كه كدام نقطه از چهار راه است كه باید آزاد شود بعد از پیدا كردن نقطه، آن نقطه آزاد می كنیم.
Framel- Drag Drop به وسیله این زیربرنامه است كه توانایی كنترل یك PictureBox را به Frame تعیین شده داریم. به این ترتیب كه مختصات آن را نگه داشته بعد از اتمام كار و بازگشت به محل اولیه روی Frame از مقدار ذخیره شده قبلی استفاده می كنیم.
برای تمامی این PictureBox ها چنین عملی را انجام داده ایم.در پایان نقاط استفاده شده را آزاد كرده ایم.
Left- Direct-Click: این زیربرنامه هنگامی فراخوانی می شود كه كاربر روی فلش كلیك كند به این ترتیب كه اگر كاربر تمایل داشت كه جهت حركت را عوض كند با یك بار كلیك كردن روی این فلش برنامه جهت فلش را به شكل تغییر می دهد در این جا چك شده كه اگر آن “Down” بود جهت را به سمت بالا تغییر بده و Tag، برابر “top” می شود . به این معنی كه اكنون جهت به سمت بالا است. و اگر كاربر مجدداً روی فلشی كه به سمت بالا بوده كلیك كند جهت فلش به شكل تغییر می كند كه اگر tag آن “top” بود جهت را به سمت پایین تغییر داده شده و tag آن برابر “Down” می شود.
به این معنی كه اكنون جهت به سمت پایین است.
Top-Diect: این زیربرنامه هنگامی فراخوانی می شود كه كاربر روی فلش كلیك كند به این تریتب كه اگر كاربر تمایل داشت كه جهت حركت را عوض كند با یك بار كلیك كردن روی این فلش، برنامه جهت فلش را به شكل تغییر می دهد در این جا چك شده كه اگر Tag آن “Forward” بود جهت را به سمت چپ تغییر می دهد در اینجا tag، برابر “Left” می شود به این معنی كه اكنون جهت به سمت چپ است. و اگر كاربر مجدداً روی فلشی كه به سمت چپ بوده كلیك كند جهت فلش به شكل تغییر می كند. در اینجا چك شده كه اگر tag آن “Feft” بود جهت را به سمت پایین تغییر بده و Tag آن برابر “down” می كند.
به این معنی كه اكنون جهت به سمت پایین است.
Down-Direct: این زیربرنامه هنگامی فراخوانی می شود كه كاربر روی فلش كلیك كند به این ترتیب كه اگر كاربر تمایل داشت كه جهت حركت را عوض كند با یك بار كلیك كردن روی این فلش، برنامه جهت فلش را به شكل تغییر می دهد. در اینجاچك شده كه اگر tag آن “Forward” بود جهت را به سمت چپ تغییر بده و Tag برابر “Left” می شود. به این معنی كه اكنون جهت به سمت چپ است. اگر كاربر مجدداً روی فلشی كه به سمت چپ بوده كلیك كند جهت فلش به شكل تغییر می كند. در اینجا چك شده كه اگر tag آن “Left” بود جهت را به سمت راست تغییر بده و Tag آن برابر Right می كند.
به این معنی كه اكنون جهت به سمت راست است.
Right- Direct: این زیربرنامه هنگامی فراخوانی می شود كه كاربر روی فلش كند. به این ترتیب كه اگر كاربر تمایل داشت جهت حركت را عوض كند با یكبار كلیك روی این فلش برنامه جهت فذلش را به شكل و تغییر می دهد. در این جا چك شده كه اگر Tag آن “Forward” بود جهت را به سمت چپ تغییر بده و tag، برابر “Top” می وشد به این معنی كه اكنون جهت به سمت بالا است. اگر كاربر مجدداص روی فلشی كه به سمت بالا بوده كلیك كند جهت فلش به سمت پایین تغییر می كند. در اینجا چك شده كه اگر tag آن به “top” می شود. به این معنی كه اكنون جهت به سمت بالا است. اگر كاربر مجدداً روی فلشی كه به سمت بالا بوده كلیك كند جهت فلش به سمت پایین تغییر پیدا می كند. در اینجا چك شده است كه اگر Tag آن به “top” بود جهت را به سمت پایین تغییر بده و tag آن برابر با “Down” می شود.
به این معنی كه اكنون جهت به سمت پایین است.
Find-Stop: این زیربرنامه مشخص می كند كه اگر درنقطه ای كه اتومبیل در آنجا وجود دارد و تابلوی ایست هم دارد مقدار متغیر برحسب اینكه اتومبیل در كدام چهار نقطه top, left, right, down وجود دارد مقدار top-pos یا left-pos یا right-pos و یا Down-pos آن را برابر 1- می كند. به این معنی كه اتومبیلی وجود دارد اما تابلوی ایست هم دارد.
Ok-click: در اینجا اولویت ها را مشخص كرده ایم. به این ترتیب كه اگر وسیله نقلیه ماشین آتش نشانی و یا ماشین آمبولانس بود اول حق تقدم عبور با این وسایل است. در این زیربرنامه آنهایی كه تابلوی ایست ندارند از آنهایی كه تابلوی ایست دارند را تفكیك كرده ایم. سپس در هر دو مورد تفكیك شده فوق چك كرده ایم كه به سمت راستشان خالی باشد.
در اتومبیلهایی كه تابلوی ایست ندارند چك می شود كه اتومبیلی در سمت راستشان نباشد و اگر هم بود تابلوی ایست در مقابل اتومبیل باشد در این صورت چك می كنیم كه آیا اتومبیل حركتش مستقیم یا اینكه غیر مستقیم است.
در اتومبیلهایی كه تابلوی ایتس دارند فقط چك می شود كه اتومبیلی سمت راستش نباشد و چك می شود كه حركتشان مستقیم است یا اینكه غیر مستقیم.
در پایان وسایلی نقلیه ای كه در فرم طراحخی باقمیانده اند را دارای اولویت یكسان قرار داده ایم.
Way4- Drag-Drop: این زیربرنامه برای كنترل روی نقاط Image ای كه حاوی عكس چهار راه است نوشته شده است. به این ترتیب كنترل می كند كاربر وسیله نقلیه خود را در كدام محدوده Top,Left,Down گذاشته است. اگر این محدوده، محدوده بالا باشد وسلیه را در بالای چهار راه می گذارد. این عملیات برای محدوده نقاط Left , Down نیز به همین ترتیب است. بعد از اینكه كاربر وسیله نقلیه خود را قرار داد مختصات top , left آن نقطه كه از قبل تعیین شده در Source كه متغیر DragDop است ریخته می شود. برای گذاشتن و چك كردن تابلوی ایست نیز همین عمل را انجام داده ایم.
Is-Forward؛: خروجی این تابع از نوع Boolean می باشد. در اینجا پارامتری به نام Area تعریف شده این تابع مشخص می كند كه جهت فلش به سمت جلو هست یا خیر. در صورت اینكه فلش به سمت جلو باشد مقدار تابع True خواهد شد.
Have-stop: خروجی این تابع از نوع Bollean می باشد. در اینجا پارامتری به نام Area تعریف شده این تابع مشخص می كند كه تابلوی ایست در كدام ناحیه قرار گرفته است. در صورت وجود تابلو در یكی از این نواحی مقدار تابع True خواهد شد.
متغیرهای مقدار top-pos , left-pos ، right-pos و Down-pos این متغیرها همگی از نوع Variant می باشند. در این متغیرها چهار مقدار می نشینند: اگر مقدار «1» در یكیاز متغیرها بود به منزله این است كه اتومبیل در یكی از چهار نقطه بالا وجود دارد، اگر مقدار آن «0» باشد به منزله این است كه اتومبیلی وجود ندارد، اگر مقدار «1-» شد به این معنی است كه اتومبیلی وجود دارد اما تابلوی ایست درمقابل آن وجود دارد و اگر مقدار آن «2» بود به این معنی است اتومبیلی وجود دارد و اجازه حركت نیز دارد.
متغیرهای مقدار top- Name , left- Name , right- Name وDown-Name این متغیرها همگی از نوع نوع Variant بوده و نام وسیله نقلیه برحسب اینكه اتومبیل در كجا واقع شده است در یكی از متغیرها قرار می گیرد.
متغیرهای Pbicycle-x، Pmotor-x، Pambolance-x، Pfire-x، Pcar2-x، Pstop1-x، Pstop2-x كه همگی از نوع Variant تعریف شده اند. برای نگهداری خاصیت Left هركدام از وسایل استفاده می شوند.
، Pmotor-y، Pambolance-y، Pfire-y، Pcar2-y، Pstop1-y، Pstop2-y كه همگی از نوع Variant تعریف شده اند. برای نگهداری خاصیت Top از وسایل استفاده می شوند.
طراحی
و
پیاده سازی
بخش اول: طراحی آزمون
در این بخش به توضیح چگونگی ساختار آزمون آئین نامه راهنمایی و رانندگی در این نرم افزار می پردازیم.
برای جلوگیری از تغییر اطلاعات و عدم دسترسی به اطلاعات، این سیستم طوری طراحی و كنتل شده كه داوطلب مشخصات خود را خود وارد نمی كند. و ورود اطلاعات وظیفه مدیر سیستم است. و داوطب اجازه ورود اطلاعات را ندارد.
این آزمون طراحی شده است كه حتماً اطلاعات داوطلب وارد شده باشد. بعد از اینكه اطلاعات در كامپیوتر وارد و تایید شد داوطلب اجازه شروع آزمون را دارد در غیر این صورت داوطلب نمی تواند آزمون دهد. به همین دلیل در ابتدای كار كه وارد سیستم می شوید. نمی توانید در آزمون شركت كنید تا وقتی كه اطلاعات داوطلب وارد شود. بعد از اینكه اطلاعات به صورتكامل وارد شد داوطلب می تواند آزمون خود را شروع كند.
در گرفتن هر آزمون چون سوالات آزمون برای هر داوطلب بایستی متفاوت با دیگر داوطلبان بود. بنابراین در بانك پروژه فیلدی به نام Random تعریف كرده ایم. این فیلد فقط یكی از مقادیر «0» و یا «1» را می گیرد. به این معنی كه اگر آن سوال در فرمول تصادفی كردن سوالات شركت كرده بود مقدار این فیلد برای آن سوال «1» در نظر گرفته می شود. در غیر این صورت مقدارش «0» خواهد بود. از روی این فیلد است كه سیستم متوجه می شود كدام یك از سوالات در random شركت كرده اند. و برای داوطلب 30 سوال به صورت Random یعنی آنهایی كه مقدار فیلد Random شان «1» است، نمایش داده می شود بعضی از این سوالات شامل عكس و بعضی دیگر شامل عكس نیستند (این سوالات طبق دفترچه آئین نامه راهنمایی و رانندگی در بانك نوشته شده است).
آزمون آئین نامه به صورت 30 سوال و در 30 دقیقه انجام می شود. به همین جهت وقت این آزمون نیز 30 دقیقه و تعداد سوالات نیز 30 سوال فرض شده است.
در پایان آزمون این چنین عمل شده كه كاربر بعد از اینكه آزمون خود را به اتمام رساند در همان جا نتیجه آزمون به او نشان داده می شود.داوطلب در صورتی قبول می شود كه در همان جا نتیجه آزمون به او نشان داده می شود. داوطلب در صورتی قبول می شود كه به 80 درصد سوالات پاسخ صحیح دهد. برای تصحیح سوالات به بانك وارد شده و در فیلد True Answer ذخیره است و فیلد بعدی، فیلد PersonAnswer است كه پاسخ كاربر در آن قرار می گیرد. در این دو فیلد یا عدد «1» به منزله گزینه یك، عدد «2» به منزله گزینه دو و عدد «3» به منزله گزینه سه قرار می گیرد. در پایان مقادیر این دو فیلد با هم مقایسه می شود، بعد از نمایش تعداد سوالاتی كه كاربر به آنها پاسخ صحیح یا نادرست داده و یا اینكه بدون پاسخ رها كرده به ترتیب در سه متغیر ذخیره می شود. تا در گزارش گیری از آنها استفاده شود.
نحوه ذخیره پاسخ كاربر به این ترتیب است كه كاربر پس از انتخاب گزینه و با زدن كلید نحوه ذخیره پاسخ كاربر به این ترتیب است كه كاربر پس از انتخاب گزینه و با زدن كلید بعدی پاسخ او در فیلد پاسخ او در فیلد PersonAnswer می نشیند. این امكان به كاربر داده شده كه در حین آزمون پاسخ های خود را مجدداً ویرایش كند كه بعد از ویرایش آخرین تغییرات نیز در بانك ذخیره می شود.
بخش دوم: طراحی حق تقدم
در طراحی تشخیص حق تقدم از دو قاعده استفاده كرده ایم. قاعده اول این است كه سمت راست وسیله نقلیه خالی باشد و قاعده دوم اینكه حركتش مستقیم باشد.
برای ماشین های آمبولانس و آتش نشانی كه نسبت به دیگر وسایل در اولویت هستند اولویت اول را داده ایم به این معنی كه در هر كجا كه ماشین آمبولانس و یا آتش نشانی باشند حق تقدم با آنهاست.
اولویت بعدی را اتومبیلهایی كه مقابلشان تابلوی ایست ندارند (یعنی اینكه سمت راستشان خالی است و یا اینكه اگر هم سمت راست آنها وسیله نقلیه ای است آن وسیله در مقابلش تابلو ایست دارد. در این مورد فرض را بر این گذاشته ایم كه اتومبیلهایی كه تابول ایست دارند در صفحه طراحی وجود ندارند). این اولویت نیز خود به دو پارامتر تقسیم می شود. آن هم اینكه آیا حركت مستقیم است یا اینكه غیر مستقیم. طبق شكل زیر:
به عنوان مثال در شكخل فوق چون تابلو ایست مقابل موتور سیكلت است برای اینكه بتوانیم حق تقدم را تشخیص دهیم، فرض كرده ایم كه در آن محدوده وسیله ای وجود ندارد. یعنی طبق شكل صفحه بعد عمل كرده ایم:
البته ناگفته نماند كه در اولویت آخر حق تقدم موتور سیكلت را نیز شركت داده ایم و در نظر نگرفتن آن محدوده به منزله این نیست كه آن وسیله را در نظر نگیریم.
اولویت بعدی اتومبیلهایی هستند كه مقابلشان تابلو ایست وجود دارد (آنهایی كه سمت راستشان خالی است، یعنی فقط اتومبیلی وجود نداشته باشد). طبق شكل زیر:
كه این الویت نیز خود دو پارامتر را در نظر می گیرد كه آیا حركت اتومبیل مستقیم است یا اینكه غیر مستقیم.
الویت بعدی با بقیه وسایل نقلیه است كه در صفحه طراحی وجود دارد.
برای اینكه متوجه شویم اتومبیل در كدام نقطه واقع شده است به هر چهار مسیر چهارراه اسمی داده ایم خیابان بالای چهارراه را Top، خیابان سمت چپ چهارراه را Left، خیابان جنوبی چهارراه را Down و خیابان سمت راست چهارراه را Right در نظر گرفته ایم به این جهت از چهار متغیرtop-pos , left-pos ، right-pos و Down-pos استفاده كرده ایم و به این ترتیب عمل كرده ایم كه اگر وسیله نقلیه در بالای چهارراه باشد Top-Pos آن را به “-1” كرده ایم. به این معنی كه در بالای چهارراه وسیله ای وجود دارد. در صورت خالی بودن آن نیز مقدار Top-pos را “0” كرده ایم. حال بعد از شناسایی نقاط نوبت به آن می رسد كه مشخص كنیم در كدام مسیرهای چهارراه كاربر تابلوی ایست گذاشته شده است. كنترل این عمل را با استفاده از همان متغیرهای
top-pos , left-pos ، right-pos و Down-pos انجام داده ایم. به اینمعنی كه اتومبیلی در آنجا هست ولی تابلو ایست نیز در مقابلش وجود دارد. حال اگر اتومبیلی در آنجا باشد و اجازه حركت داشته باشد با قرار دادن مقدار ‘2” در top-pos سیستم را متوجه این عمل می كنیم.
برای سه راه نیز چنین عملیاتی را انجام داده ایم. ولی برای میدان الویت را به صورت زیر تعیین داده ایم:
الویت اول با ماشین آمبولانس و یا آتش نشانی، الویت دوم با وسیله ای كه از فرعی وارد میدان می شود و آخرین الویت وسیله ای كه در میدان در حال
این متن فقط قسمتی از مشخصات و ویژگی های کل نرم افزار می باشد
جهت دریافت کل متن ، لطفا آن را خریداری نمایید
قیمت فایل فقط 2,000 تومان
برچسب ها : ویژگی های كلی نرم افزار , كار با نرم افزار , طرز پاك كردن