PDA

View Full Version : ایجاد کد داوطلبی براساس سال و ترم ورود



lahtagolfa
دوشنبه 26 دی 1390, 11:05 صبح
باسلام
من می خوام تو برنامه ام سیستم خودش کد داوطلبی رو بده طوری که سه رقم اولش سال و ترم ورود به موسسه باشه ولی نمی دونم کدامو چه جوری بنویسم.اگه کسی می دونه لطفا کمک کنه.

javadasadi
دوشنبه 26 دی 1390, 11:26 صبح
خب ببین دوست من بعد از این که فیل سال ورودی و ترم ورودی مشخص شد می تونی به رشته کد داوطلبی اضافه کنی
باید کد داوطلبی از نوع رشته باشد
مثلا :
code=codegroup+term+year+number
number هم میتونه تعداد ورودی های ترم جاری باشه حتی میتونی کد گروه تحصیلی رو هم به کد داوطلبی اضافه کنی

massar
دوشنبه 26 دی 1390, 12:39 عصر
سلام دوست عزیز
برای تبدیل سال (یا ماه یا روز) به سترینگ میتونید از ToString() آبجکت DateTime استفاده کنید، مثلا برای در آوردن دو رقم آخر سال ورود: EntryYear.ToString("yy");
یا میتونید سال رو کامل به استرینگ تیدیل کنید بعد از متد Remove (برای دو رقمی کردن استرینگ سال: Remove(0,2);) یا متد SubString ( SubString(2,2);) استفاده کنید.

پس کدتون مثلا میتونه یچی مثل این باشه:

DateTime entryYear = new DateTime(1996,1,1);
int entryTerm = 1;

string.Format("{0}{1}", entryYear.ToString("yy"), entryTerm);
//natije mide: 961

در ضمن برای استفاده از تاریخ شمسی library تاریخ شمسی که استفاده میکنید حتما از چیزی شبیه ToString که در بالا گفتم پشتیبانی میکنه وگرنه باید از Remove یا Replace استفاده کنید.

eniac_4
دوشنبه 26 دی 1390, 15:14 عصر
دوست عزیز بنظر من اگه مثل من مبتدی هستی میتونی بجای استفاده از تاریخ سیستم و تبدیل اون بیای تو فرم ثبت نامت یه کمبو باکس قرار بدی که مقادیر بازه ای از سال ها رو درون خودش داشته باشه
و یه کمبو باکس دیگه نیمسال اول و نیمسال دوم رو داشته باشه که عدد 1 و 2 رو برگردونه

حالا برای ادامه کد داوطلبیت میتونی میتونی یه عدد چهار رقمی مثه 0000 رو قرار بدی که هر بار که یه ثبت نام انجام میشه 1 بهش اضافه بشه
مثلا 9020001 این برای اولین داوطلبی که ثبت نام میکنه

دومی تا اخر :
9020002
9020003
...
9916985
ولی اصول کار اینه که بجای این این چهار رقم اخر که سعودی باشه از چهار رقم اخر شماره شناسنامه یا کد ملی استفاده میشه تا هم شماره ها متغیر باشه و هم قابل تشخیص نباشه

میتونی با کنار هم قرار داده این سه مقدار کد رو بدست بیاری

ya30ien2
دوشنبه 26 دی 1390, 15:43 عصر
حالا اومدیم 4 رقم آخر دو نفر شبیه به هم بودن و اون دو نفر در یک ترم در یک سال در یک رشته خواستد ثبت نام کنند اون وقت چی؟

eniac_4
دوشنبه 26 دی 1390, 20:11 عصر
خب تو روش اول امکان نداره تکرار پیش بیاد و امنیتش خیلی پایینه ولی برای اینکه تو روش دوم تکرار پیش نیاد اینه که تو کد ملی دو نفر امکان نداره 4 رقم اخر با هم برابر باشن چون سیستم کد گذاری ثبت احوال اینجوری طراحی شده و این امکان تکرار فوق العاده کمه ولی یه برنامه نویس تمام صورت ها و احتمال هار و باید در نظر بگیره
و برای محکم کاری میتونی یه شرط بذاری که مثلا کد دانشجویی یک نفر 880760096 هستش
88 سال ورود 76 کد رشته اس 96 هم شماره شناسنامه حالا اگه این تکرار بوجود بیاد صفری که بعدز 88 قرار داره (880 ) تغییر پیدا میکنه
881760096

حالا اومدیم 4 رقم آخر دو نفر شبیه به هم بودن و اون دو نفر در یک ترم در یک سال در یک رشته خواستد ثبت نام کنند اون وقت چی؟

ya30ien2
دوشنبه 26 دی 1390, 23:13 عصر
در مورد چهار رقم کد ملی که گفتی باید بگم که کاملا در اشتباهی
خودت میگی چهار رقم آخر یعنی از 0001 تا سقف 9999 و این در حالی هستش که جمعت ایران چیزی حدود 75 میلیون نفر هستش پس چطور میشه این چهار رقم بطوری باشه که میون 75 میلیون تقسیم بشه ؟
کل کد ملی (10رقم) منظور هست که مال هیچ کس با هیچ کس دیگه ای شبیه نیست نه چهار رقم آخر
پس بهتر هستش از همون روش اول استفاده بشه
یا دو رقم اول سال - یک رقم ترم جاری- دو رقم کد رشته -یک رقم (پیوسته - نا پیوسته )-از سه رقم شروع بشه و به صورت افزایشی بره بالا +یه کار دیگه که بهت پیشنهاد میکنم :ارقام آخر رو با توجه به سال جاری بگیر ( یعنی وقتی سال جدید آغاز شد دوباره مثلا ارقام آخر رو از 111 شروع کن و دوباره افزایش تا پایان سال)