PDA

View Full Version : اساتید گرامی می شه کمک کنید .؟ پروژه آزمون مجازی



amatis_93
یک شنبه 07 خرداد 1391, 20:37 عصر
سلام
من توی vb.net همراه با بانک اکسس دارم یه آزمون مجازی درست می کنم .( ضمنا با ویژوال استودیو 2010 کار می کنم و اکسس 2007)
صفحات من

1.صفحه معرفی و دریافت اطلاعات کاربری
2. صفحه ی انتخاب درس آزمون(3 درس هر کدام 10 الی 20 سوال 4 گزینه ای)
3. سه صفحه جداگانه برای ازمون هر یک از دروس
4. صفحه ی کارنامه همرا با اطلاعات ازمون فعلی و آزمون ها قبل

یه بانک دارم با 4 تا جدول . به شرح زیر
جدول answer
با فیلد های

ID_answer = کد پاسخ
a1=جواب گزینه الف

,a2=جواب گزینه ب
,a3=جواب گزینه ج
,a4=جواب گزینه د

ID_question= کد سوال

,ID_test= کد امتحان

جدول question
با فیلد های
=question سوال
ID_question= کد سوال
az_azmoon=شماره آزمون
,ID_test= کد امتحان

جدول user
fname
lname
ID_user
password
ID_test
جدول workbook
ID
fname
lname
score=نمره
ID_test
ID_user

تعداد جواب ها ی درست= number of true

تعداد جواب ها ی غلط= number of false
without answer= تعداد بی پاسخ

مشکلات من
1. چطور می تونم گزینه هامو لود کنم طوری که اگه یک فیلد رو در جدول به پاسخ صحیح دائم اون فیلد مثلا به تکست 1 لود نشه و 4 گزینه جواب بین تکست باکس ها ی گزینه ها رندم بیاد و در ضمن با پاسخ سوالات دیگه قاطی نشه .
2. تکست خاصیت datasurce نداره چطور باید به بانکه اتصال بدمش ؟
3. اگه بخوام زمانی که صفحه ی آزمونم لود شد تا زمانی که کاربر روی دکمه ی پایان آزمون نزده یک تایمر داشته باشم و پس از پایان آزمون بخوام زمانی صرف شده رو نمایش بدم چکار باید بکنم؟
4. من برای آزمون پاسخ نامه گذاشتم . با چک باکس. چطور مقدارشون رو در بانک باید ذخیره کنم ؟ و همچنین آزمونم رو با اطلاعات درون بانک چطور باید محاسبه کنم تا بتونم امتیاز بدم ؟

پیشاپیش از نظرات و کمک هاتون صمیمانه ممنونم.:لبخندساده:

arman_Delta2002
یک شنبه 07 خرداد 1391, 21:07 عصر
1- بهتره که با شیع پنل هر به تعداد صوالاتون در هر صفحه یک ردیف ایجاد کنین که هر ردیف سوال باز شامل 2 ردیف بشه یک بخش سوال ها و بخش زیریش جواب ها که قسمت جواب ها 4 تا پنل باشه و بعد هر بار که فرم لود میشه به صورت شانسی هر جواب در یک خانه ردیف جواب ها بشینه یکم پیچیده ولی با 1-2 روز کد نویسی و اشکال زدایی راه میفته
2- تکست باکس رو باید به دیتا ست ربط بدین دیتا ست واست آفلاین بین بانک و اشیاست

TextBox_Jame_SubFact1.DataBindings.Add("Text", Sub_FactorFroshDataset1.Tables("D_Acc_Sub_FactorFrosh"), "Jame", False)

3- خوب باید زمان شروع رو از زمان پایان کم کنین قبلش اینا رو تو یک متقییر بریزین
4- اگه منظورتون نحوه ذخیره مقدار چک باکسه من یک کد جهت فراخوانی از بانک میزارم یعنی چک باکس رو به بانک ربط دادم جهت نماش تیک خورده یا نه

CheckBox_Select_SubFact1.DataBindings.Add("Checked", Sub_FactorFroshDataset1.Tables("D_Acc_Sub_FactorFrosh"), "Select1", False)

برای ذخیره مقدار چک باکس باید این رو بنویسی تا خاصیت چک رو برگردونه
CheckBox_Select_SubFact1.Checked
و یک فیلد برای چک باکس جدا گانه میخواد از نوع True False باشه یا همون Boolian

amatis_93
یک شنبه 07 خرداد 1391, 21:28 عصر
87553

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

کانکشن اتصال رو خطا می گیره
my_cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\lord\proje azmoon\WindowsApplication1\DB _Answer.accdb"


روی مسیر data sourse ایراد می گیره

amatis_93
یک شنبه 07 خرداد 1391, 21:45 عصر
دوستان لطفا ....
من 4 شنبه تحویل پروژه دارم................

M.KH-SH
یک شنبه 07 خرداد 1391, 22:10 عصر
my_cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.\DB _Answer.accdb"



این از کانکشن شما آدرس کانکشن رو درست نکرده بودین؟

بعد دوست عزیز برای رندوم انداختن جواب ها درون تکس باکس ها میتونین جواب صحیح رو در یک متغییر قرار بدین و بعد از اتمام آزمون اون جواب رو از اون متغییر بررسی کنین

مثال:::

100 سئوال داریم برای یک آزمون و 400 پاسخ که 100 پاسخ صحیح داره

حالا این 100 پاسخ صحیح رو زمانی که دارین به صورت رندوم توی تکس ها قرار میدین پاسخ اون گزینه و اون سئوال رو هم داخل این متغییر قرار میدین و در انتها هم با یک حلقه تمام جواب ها رو چک میکنین

amatis_93
یک شنبه 07 خرداد 1391, 22:35 عصر
سلام واسه کانکشنم این خطا رو می گیره
Error 2 Unable to copy file "E:\lord\proje azmoon\WindowsApplication1\WindowsApplication1\DB_ Answer.accdb" to "bin\Release\DB_Answer.accdb". Could not find file 'E:\lord\proje azmoon\WindowsApplication1\WindowsApplication1\DB_ Answer.accdb'. WindowsApplication1

اون یه تیکشو هم پاک می کنم باز خطا می گیره
می شه این قسمت رندمش رو با کد توضیح بدید

M.KH-SH
یک شنبه 07 خرداد 1391, 22:54 عصر
یک نمونه آماده کردم
نیاز به تغییر داره ولی از هیچی بازم بهتره


برای ساخت کانکشن هم از این سایت کمک بگیرین از هرکس دیگه بهتر میتونه کمک کنه

http://www.connectionstrings.com/access



. تکست خاصیت datasurce نداره چطور باید به بانکه اتصال بدمش ؟
3. اگه بخوام زمانی که صفحه ی آزمونم لود شد تا زمانی که کاربر روی دکمه ی پایان آزمون نزده یک تایمر داشته باشم و پس از پایان آزمون بخوام زمانی صرف شده رو نمایش بدم چکار باید بکنم؟
4. من برای آزمون پاسخ نامه گذاشتم . با چک باکس. چطور مقدارشون رو در بانک باید ذخیره کنم ؟ و همچنین آزمونم رو با اطلاعات درون بانک چطور باید محاسبه کنم تا بتونم امتیاز بدم ؟

جواب بخش 2 ::: از dataset استفاده کن
3- به راحتی میتونی timer1.interval رو روی 1 دقیقه قرار بدی و یک متغییر تعریف کنی و در هر بار چرخش تایمر یک عدد به اون متغییر اضافه کنه و در نهایت اون عدد رو از متغییر بخونی

یا نه کلا از زمان سیستم استفاده کنی و با بررسی زمان شروع آزمون و پایان آزمون زمان صرف شده رو به شما بده

4- شما یک فیلد درست کن و فقط مقداری رو که میخوای با یک تابع ساده اون مقدار که حالا میگیریم 0 یا 1 رو ذخیره کن اونم یک کوئری هستش که دیگه باید یکم بگردین

amatis_93
یک شنبه 07 خرداد 1391, 23:06 عصر
متشکرم.
اما ورژن ویژوال استودیو با اینکه 2010 هست نمی دونم چرا خطا می گیره که ساپورتش نمی کنه( می گه type ش .vbproj و با این ورژن ساپورت نمی کنه)
با این حال دستتون درد نکنه زحمت کشیدین

M.KH-SH
یک شنبه 07 خرداد 1391, 23:08 عصر
از دات نت فریم ورک 2 استفاده کردم شما میتونی صفحات مربوط به forms رو کپی کرده و داخل پروژه جدید بازکنید

برنامه هم با ویژوال بیسیک 2008 نوشته شده

amatis_93
یک شنبه 07 خرداد 1391, 23:14 عصر
مرسی تونستم بازش کنم .

amatis_93
یک شنبه 07 خرداد 1391, 23:28 عصر
اما این مشکل خطای کانکشنمو چطوری رفع کنم؟

M.KH-SH
یک شنبه 07 خرداد 1391, 23:44 عصر
بانک شما که پسورد نداره؟

بعد بانک رو در مسیر مشخص قرار بدین و import های لازم رو هم انجام بدین

از اون سایت هم کمک بگیرین

معمولا بان رو در پوشه bin>debug میریزن که آدرس دهی راحت باشه شما هم این کار رو انجام بدین و از این تابع برای آدرس مسر استفاده کنید
my.application.info.directorypath

arman_Delta2002
دوشنبه 08 خرداد 1391, 08:52 صبح
خوب به این صورت باید جدا کنیش و بعد هر چک باکس رو در یکی از سلول های خودش به صورت شانسی بچینی 87563 فقط همون پنلی که ساختی رو حذف نکن داخل همون 4 تا خونه با استفاده از یک پنل دیگه بساز

amatis_93
دوشنبه 08 خرداد 1391, 09:57 صبح
بانک شما که پسورد نداره؟

بعد بانک رو در مسیر مشخص قرار بدین و import های لازم رو هم انجام بدین

از اون سایت هم کمک بگیرین

معمولا بان رو در پوشه bin>debug میریزن که آدرس دهی راحت باشه شما هم این کار رو انجام بدین و از این تابع برای آدرس مسر استفاده کنید
my.application.info.directorypath



توی این تابعی که گفتین باید آدرس بانک رو بریزم دیگه ؟
My.Application.Info.DirectoryPath("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\lord\proje azmoon\WindowsApplication1\WindowsApplication1\bin \Debug\DB _Answer.accdb")

اینو خطا گرفت
اگه با data Adapter هم بانک رو اتصال بدم و بعد رشته اتصالش رو توی قسمت کانکشن کپی کنم بازم خطا می گیره

my_cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="|DataDirectory|\DB _Answer.accdb"
می کاراکتر موجود نیست (|) این کاراکتر رو خطا می گیره . چرا اکسس این طوری اذیت می کنه .؟
بانکم پسورد نداره

younes221
دوشنبه 08 خرداد 1391, 10:30 صبح
می کاراکتر موجود نیست (|) این کاراکتر رو خطا می گیره . چرا اکسس این طوری اذیت می کنه .؟

سلام عزیز ، اون ( " ) قبل از ( | ) رو حذف کن تا درست بشه.

M.KH-SH
دوشنبه 08 خرداد 1391, 12:00 عصر
my_cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & my.application.info.directorypath & "\DB _Answer.accdb"

amatis_93
دوشنبه 08 خرداد 1391, 16:15 عصر
روش هایی که گفتید رو امتحان کردم نشد

M.KH-SH
دوشنبه 08 خرداد 1391, 17:27 عصر
پروژه رو ارسال کنین تا مشکل رو برطرف کنیم.

به این پست برین یک نمونه رو چندی پیش نوشته بودم
http://barnamenevis.org/showthread.php?321150-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D9%87-%D8%A8%D8%A7%D9%86%DA%A9-%D9%88-%DA%A9%D8%AF%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-%D8%AF%D9%81%D8%AA%D8%B1-%D8%AA%D9%84%D9%81%D9%86-%D9%85%D8%AE%D8%AA%D8%B5%D8%B1&p=1408728#post1408728

شما بیشتر برای بخش کانکشن نگاه کنین

amatis_93
دوشنبه 08 خرداد 1391, 19:16 عصر
لینک پروژه آزمونم. راستی واسه صفحه اولش یه پسورد معمولی گذاشتم 1993


http://uplod.ir/rea9k8tp3qll/Azmoon.zip.htm

از این که کمک می کنید متشکرم

amatis_93
دوشنبه 08 خرداد 1391, 22:50 عصر
یه سوال

می خوام وقتی دکمه شروع آزمونم رو زدم یه فرم بیاد مثلا روش نوشته باشه شروع آزمون بعد hide بشه و فرم آزمون لود بشه . یه چیزی مثل splash
چه طور یه همچنین چیزی بسازم . یکی از تاپیکا نوشته بود توی propertis فرم باید اونو به عنوان splash تعریف کرد . اما نگفت کدوم خاصیت !

M.KH-SH
سه شنبه 09 خرداد 1391, 00:00 صبح
دوست عزیز خیلی از تک نیک های ابتکاری هست که میتونی بزنی
یک فرم یا یک پنل تعریف کن و با یک حلقه به اون افکت بده
برای فرم از opacity و برای پنل هم از color استفاده کن

amatis_93
سه شنبه 09 خرداد 1391, 01:02 صبح
مرسی splash حل شد .
timer هم حل شد
جدای اتصالات به بانک ( sql 2005 هم با ویندوز 7 و 64 بیت کار نمی کنه ؟) ( مرحله غول )
می مونه
محاسبه ی امتیاز ها در پاسخ نامه
و اعمال ذخیره و بازیابی رکوردها ( که اگه مشکل اتصال حل بشه ، اینم آسون می شه )
یه چیز مهم اینکه چطور رندم بیارم ( هم سوال و هم پاسخ ها ) رو که هم پاسخ ها قاطی نشن و هم اینکه همیشه یه گزینه به خصوص مثل الف پاسخ درست نباشه. ( مرحله غول 2 )

M.KH-SH
سه شنبه 09 خرداد 1391, 07:43 صبح
برای اتصال که مشکل رو گفتم برای رندم هم یک نمونه کد دادم بهتون که میتونین از اون استفاده کنین
بقیه موارد هم کوئری هستش

amatis_93
شنبه 13 خرداد 1391, 11:50 صبح
سلام مرسی .
روی سیستم 32 بیتم دارم xp نصب می کنم به همراه sql . ایشالا که درست بشه.

M.KH-SH
شنبه 13 خرداد 1391, 15:06 عصر
درست میشه چون این دیگه هیچ مشکلی نداره
راستی بانک برنامه هم در کنار خود فایل exe برنامه بریزین که مشکلی بعدا به وجود نیاد و آدرس دهی هم از همونجا بدین که از کارکتر . یا از تابع my.application.info.directorypath استفاده کنین