دانلود با لینک مستقیم و پر سرعت .
بررسی الگوی رفتاری حسابرسان مستقل در رویارویی با فشار بودجه زمانی تحت تئوری انگیزشی
دراین مکان که نمایندگی تهیه وتوزیع رسانه های تصویری ونرم افزارهای
کامپیوتری بود کارهای زیاد ودرهمی انجام می دادم و هر روزه بنابر خواسته ی
مدیر آنجا کاری را انجام می دادم، کارهایی هم چون فروش نرم افزار درداخل
فروشگاه به مشتریان گذری که بنابه دخواست مشتریان آن نرم افزار یا فیلمی را
که مد نظر داشتند را درخواست کرده وبه آن ها تحویل می دادم.
گاه این مشتریان راجع به نرم ازارها سوالاتی پرسیده که من تا حد امکان وتوانایی
آن ها را راهنمایی می کردم و طریقه نصب نمدن آن نرم ازار را به آن ها آموزش
می دادم، وگاه نیز بعضی از مشتریان نرم افزارهایی خاص را سفارش می دادند
که باید این نرم افزار یا فیلم از جایی دیگر تهیه می شد جهت این کار نرم افزار یا
فیلم درخواستی را در داخل کامپیوتر موجود ثبت کرده وبعدا به نمایندگی کلی
ارسال می نمودیم تا نمایندگی در اولین فرصت این فیلم و یا نرم افزار را ارسال
کرده وما به مشتریان تحویل می دادیم.
یک سری از نرم افزارهای درخواستی را می توانستیم از اینترنت دانلود کنیم که در
این صورت وارد اینترنت شده ونرم افزار مربوطه را جستجو کرده و به صورت
های بسته های آماده به مشتریان تحویل می دادیم.
یک سری دیگر از مشتریان خودشان فروشنده فیلم ها و نرم افزارها بودند که
قضیه ی این مشتریان با مشتریان قبلی فرق داشت چون این مشتریان به صورت
انبوه نرم افزار وفیلم را خریداری می کردند که در این صورت می بایست این
نرم افزارها وفیلم های مربوطه و مورد در خواست مشتری لیست شده ودر اختیار
او قرار گیرد تا به انتخاب خود نرم افزار ها وفیلم های مورد نیازخود را انتخاب
کرده و سفارش دهد، ما نیز این نرم افزارها و فیلم ها را برداشته وبه تعداد مورد
نیاز او در اختیارش قرار می دادیم اما قبل از تحویل این نرم افزارها وفیلم ها می
بایست تعداد واسم آن ها در بانک اطلاعاتی ثبت می شد.
یک مشتری ممکن بود که از نرم افزار خاص تعداد زیادی را بر دارد واز یک نرم
افزاری دیگر تعدادی کمتری را بردارد که در نتیجه باید این اعداد به دقت در بانک
اطلاعاتی ثبت و ذخیره می شد، قیمت هر کدام از این نرم افزارها وفیلم ها قبلا در
بانک اطلاعاتی نیز ثبت شده بود وبه این ترتیب قیمت کلی فروش به آن مشتری
تهیه و چاپ می شد وبه مشتری داده می شد.
کار دیگری که در این مکان انجام می دادم تهیه وپخش پوسترهایی در مورد فیلم ها
ونرم افزار های موجود در مغازه بود که می بایست کل نرم افزارها وفیلم های
موجود را در صفحه ای هم راه با قیمت هایشان تایپ کرده وپرینت گرفت ودر
داخل مرکزهای فروش به مشتریان عرضه کرد.
نوعی دیگر از پوسترها فقط مخصوص یک فیلم ویا یک نرم افزار خاص بود که
برای تهیه این پوسترها می بایست اطلاعات کاملی در مورد آن نرم افزار را در
برگه مربوطه تایپ کرده وعکس های مورد نظر را با نرم افزاری خاص
(فتوشاپ) برش داده ودر جای مخصوص به خود قرار داد وبعد از کامل شدن این
پوسترها می بایست آن ها را بر روی کاغذ براق چاپ نمود.
در این فروشگاه نیز نرم افزارهای مربوطه ومورد نیاز برای کار وثبت اطلاعات
را برروی سیستم نصب می نمودم.
چون نرم افزاره وفیلم ها هر روزه در حال تغییر و تحول بودند بانک اطلاعاتی نیز
می بایست هر روزه عوض می شد وتغییر وتحول می یافت و هر نرم افزاری که
قبلا در بانک بوده والان در مغازه نمانده است می بایست خذف ونرم افزارها وفیلم
های جدید وارد شده می بایست در داخل بانک اطلاعاتی درج می شد، این کار
هرروزه صبح انجام می شد کل اطلاعات نرم افزارها وفیلم های جدید از قبیل نام
نرم افزاریا فیلم، قیمت ، ورژن و... می بایست بادقت درج می شد.
بعضی از کارمندان که با کامپیوتر ونرم افزار آشنایی زیادی نداشتند را آموزش
می دادم به گونه ای که بتوانند با کامپیوتر کار کرده واز نرم افزارهای مورد
نیازبه خوبی استفاده کنند.
از اینترنت نرم افزارها جالب ومورد احتیاج را به حالتی گلچین کرده وبه صورت
بسته هایی در داخل "سی دی" یا "دی وی دی" در اختیار مشتریان قرار می دادیم.
هم چنین در این دوره تحقیقاتی در مورد OpenGl در Visual Basic برای این
موسسه انجام دادم چون این موسسه می خواست در مورد OpenGl در
Visual Basic
نرم افزارهای آماده ای عرضه کند.
این تحقیقات را از اینترنت وکتاب هایی در مورد بحث مربوطه انجام دادم که در
زیر بعضی از مطالب این بحث را آورده ام.
OpenGl یک رابط نر م افزاری برای سخت افزار گرافیک است. این رابط نرم
افزاری تقریبا شامل ١٢0فرمان مجزا از هم است که به برنامه نویس اجازه می
دهد اشکال مورد نیاز خود را به صورت دوبعدی و یا سه بعدی به راحتی تهیه
کند.
محیط برنامه نویسی ویژوال بیسیک بهترین محیط برای فراگیری مفاهیم برنامه
نویسی گرافیکی در OpenGL است.شما به کمک این محیط ساده می توانید خیلی
سریع شروع به یادگیری OpenGLکنید.
اما در صورتی که می خواهید به برنامه نویسی حرفه ای گرافیکی بپردازید به شما
پیشنهاد می کنم ازیک از زبانهای خانواده سی مانند Visual C++ 6 و یا Borland C++ 5
استفاده کنید تا از سرعت واقعی و تمامی امکانات این رابط گرافیکی لذت ببرید.
قبل از هر چیز ما بایدOpenGL را بر روی ویژوال بیسیک پیاده سازی کنیم.
خوشبختانه برای اینکار یک کتابخانه با نام VBOpenGLوجود دارد. این
کتابخانه شامل اکثر توابع OpenGL و کتابخانه های همراه آن است مانند glut که
کار شما را برای کار کردن با OpenGL بسیار ساده کرده است.
ایجاد پنجره در OpenGL کار نسبتا ساد ه ای است اما باید پیش از ایجاد پنجره درOpenGL
یکسری تنظیمات اولیه را انجام دهیم تا سیستم گرافیکی بداند که ما تحت چه
شرایطی می خواهیم پنجر ه را نمایش بدهیم. از جمله این تنظیمات می توان به
موارد زیر اشاره کرد:
اندازه پنجره (ارتفاع و طول آن (
تعیین عمق رنگ
تعیین حالت رنگ (مانند RGBA و RGBو...)
تعیین اینکه آیا می خواهیم از بافر دوگانه استفاده کنیم و یا نه.
سپس برای ادامه کار باید تابع CreateGLWindow را تعریف کنیم. کد زیر
تابع CreateGLWindow نشان می دهد.
Public Function CreateGLWindow(frm As Form, Width As
Integer, Height As Integer, Bits As
Integer) As Boolean
Dim PixelFormat As GLuint
Dim pfd As PIXELFORMATDESCRIPTOR
pfd.cColorBits = Bits ' color depth
pfd.cDepthBits = 16
pfd.dwFlags = PFD_DRAW_TO_WINDOW Or
PFD_SUPPORT_OPENGL Or PFD_DOUBLEBUFFER
pfd.iLayerType = PFD_MAIN_PLANE
pfd.iPixelType = PFD_TYPE_RGBA
pfd.nSize = Len(pfd)
pfd.nVersion = 1
PixelFormat = ChoosePixelFormat(frm.hDC, pfd)
If PixelFormat = 0 Then
KillGLWindow
MsgBox "Can't Find A Suitable PixelFormat.", vbExclamation,
"ERROR"
CreateGLWindow = False
End If
If SetPixelFormat(frm.hDC, PixelFormat, pfd) = 0 Then
KillGLWindow
MsgBox "Can't Set The PixelFormat.", vbExclamation,
"ERROR"
CreateGLWindow = False
End If
hrc = wglCreateContext(frm.hDC)
If (hrc = 0) Then
KillGLWindow
MsgBox "Can't Create A GL Rendering Context.",
vbExclamation, "ERROR"
CreateGLWindow = False
End If
If wglMakeCurrent(frm.hDC, hrc) = 0 Then
KillGLWindow
MsgBox "Can't Activate The GL Rendering Context.",
vbExclamation, "ERROR"
CreateGLWindow = False
End If
frm.Show
If Not InitGL () Then
KillGLWindow
MsgBox "Initialization Failed.", vbExclamation, "ERROR"
CreateGLWindow = False
End If
CreateGLWindow = True
End Function
درون تابع CreateGLWindow دو تابع دیگر به نا مهای InitGLو KillGLWindow
فراخوانی شده این دو تابع جزء توابعOpenGL نبوده و خود ما باید آنها را در
ماژولOGLUtils تعریف کنبم.
کار تابع آزاد کردن فضای استفاده شده توسط برنامه در سیستم است(در صورتی
که از این تابع استفاده نکنیم امکان مواجه شدن با کمبود فضا بر روی حافظه
اصلی سیستم و یا حافظه کارت گرافیکی افزایش می یابد.) کد مربوط به این تابع
را می توانید در زیر مشاهده کنید.
Public Sub KillGLWindow ()
If hrc Then
If wglMakeCurrent(0, 0) = 0 Then
MsgBox "Release of DC and RC Failed.", vbInformation,
"SHUTDOWN ERROR"
End If
If wglDeleteContext(hrc) = 0 Then MsgBox "Release Rendering
Context
Failed.", vbInformation, "SHUTDOWN ERROR"
End If
hrc = 0
End If
End Sub
تابع InitGl جزء توابعی است که خود ما باید آن را تعریف کنیم کار این تابع پاک
کردن صفحه نمایش و آماده سازی آن برای رسم اشکال است. ما همیشه قبل از
شروع رسم بر روی صفحه نمایش برنامه این تابع را فراخوانی می کنیم تا تمام
تنظیمات اولیه که به آن نیاز خواهیم داشت را بدین وسیله تعریف کنیم.
برای تعیین رنگ اشکال OpenGl دارای چند دستور به نام های GlColor3f و GlColor3d
می باشد.تمام این دستورها کارهای مشابه را انجام می دهند و تنها تفاوت آنها در
نوع پارامترهای آنها است برای مثال پارامترهای glColor3d از نوع Integer
است و می تواند هر عددی مابین ٠ تا55 ٢ باشد اما نوع پارامترهای glColor3f
از نوع اعشاری است و می تواند شامل تمام اعداد اعشاری ما بین ٠ تا ١ باشد.
در نوعGlColor4d چهار پارامتر را وجود دارد که به ترتیب این پارامترها
برابراند با رنگ قرمز، رنگ سبز، رنگ آبی و آلفا. مقدار هر کدام از این
پارامترها بیانگر شدت رنگ است. به عنوان مثال اگر به رنگ آبی مقداریک را
بدهیم و به مابقی بجز آلفا مقدار صفر را بدهیم به این معنی است که رنگ آبی را
انتخاب کرده ایم و یا اگر به تمامی رنگ ها مقدار یک را بدهیم یعنی رنگ سفید را
انتخاب کرده ایم. همواره دانستن این موضوع که از چه مقادیری و ترکیب رنگی
استفاده کنیم تا رنگ مورد نظر خود را پیدا کنیم،یک مساله گمراه کننده بوده اما
یک راه حل بسیار ساده برای اینکار وجود دارد و آن استفاده از
است . MS Paint
با یک مثال کارنحوه رسم خط و نقطه را نشان می دهیم. در این مثال ما سه نقطه
متفاوت با رنگهای قرمز،سبز و آبی در تغییر سه محل متفاوت از صفحه نمایش
رسم می کنیم. برای اینکار تابع DrawGLScene را بصورت زیر دهید:
Public Function DrawGLScene () As Boolean
glClear clrColorBufferBit ' pak kardan baffer safe rasm baraye
shoro be rasn jadid
glBegin bmPoints
glColor4f 1, 0, 0, 1 'range germez
glVertex2f 0.3, 0.2 'mokhtasate rase shomare 1
glColor4f 0, 1, 0, 1 ' range sabz
glVertex2f ‐0.3, 0.2 'mokhtasate nogte shomare 2
glColor4f 0, 0, 1, 1 'range abi
glVertex2f ‐0.3, ‐0.2 'mokhtasate ogte shomare 3
glEnd
DrawGLScene = True
End Function
در اینجا ما با استفاده OpenGLبه glBegin اعلام می کنیم که آماده رسم یک
شکل شود وتمام رئوسی را که بااستفاده از دستور glVertext2f به آن داده شده
را به شکل منتسب کند ودر پایان با دستور glEnd به OpenGl اعلام می کنیم که
تمامی رئوس داده شده اند و شکل باید رسم شود ، دستور GlBegin دارای یک
پارامتر است که مقدار BmPoint به آن داده شده است این مقدار به OpenGl
اعلام می کند که باید به ازای هر راس یک نقطه برروی صفحه نمایش بکشد ،
همانگونه که می بینید قبل از دادن رئوس رنگ هر راس را به OpenGl اعلام
کرده ایم در حقیقت با هر بار فراخوانی تابع GlColor4f رنگ قلمو عوض می
شود وشما می توانید فقط یک بار در ابتدا رنگ قلمو را مشخص کنید و دیگر شما
احتیاجی به این کار ندارید.
کار تابع glVertext2f تعیین هر راس یک شکل می باشد این تابع دارای دو
پارامتر است که این پارامترها به ترتیب برابرند با Xوy که همان مکان xو y را
برروی صفحه نمایش نشان می دهند.
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 13 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید