生成7位数的学号

时间:2014-03-05 02:32:55

标签: vb.net winforms

我刚开始使用vb.net,请耐心等待。

我正在进行单一作业,我需要建立一个小型学生注册计划。

每当用户点击注册时,我需要创建一个7位数的学生编号,我的代码和验证以及与DB的连接工作正常,我只是在努力创建学生编号

生成学生的说明nr

  1. 学号应为7位
  2. 前两位数字代表学生注册的年份(全年的最后两位数字)我得到这样的数字并且工作正常:Dim cyear = DateTime.Now.ToString("yy")

  3. 这是我的问题: 接下来的4个数字代表到目前为止已经注册的学生人数,这个数字总是从左边用0填充以构成四位数。


  4. 示例

    如果到目前为止已经有20名学生注册(2014年),那么下一名学生将会注册 学号为140021


    4最后一位是一个校验位,您可以通过将学生编号的前6个单独数字相加得到,将结果除以10并取余数,然后将余数减去10得到最后一位数。 很好很容易,但是到目前为止只有一个学生注册了怎么办?当然,无法产生正确的结果

    我的问题

    (参见上面的第3条)如何生成数字3到6,从左到右填充每个新注册时增加一个?

    我尝试了以下代码,但它远离工作

    'Generate Student NR'
    Dim newstudent As Integer
    'displays 1st 2 letter of current year for student number'
    Dim cyear = DateTime.Now.ToString("yy")
    Dim lastdigit As Double
    Dim lastdigitRemainder
    Dim studentnr As Integer
    'if statment to generate new student number for each registration'
    If (register.Enabled = True) Then
        newstudent = cyear + 0 + 0 + 0 + 1
        'generate last digit of student nr'
        lastdigit = (cyear + newstudent) / 10
        lastdigitRemainder = lastdigit - 10
        studentnr = lastdigit + lastdigitRemainder
        MsgBox(studentnr)
    

    我的界面如下所示

    enter image description here

    请注意我没有要求有人为我完成此代码,我只是寻求一些建议,有人可以指出我正确的方向等。同样是IF声明我应该使用的正确选择结构生成学号?

2 个答案:

答案 0 :(得分:2)

这是你填充数字的方式:

int number = 1;
Console.WriteLine(number.ToString("0000"));

VB

Dim number As Integer = 1
Console.WriteLine(number.ToString("0000"))

答案 1 :(得分:2)

  Dim intYear As Integer = TextBox1.Text 'The years last two digits'
  'Show the student id: pad the students number with 0's, works with single, double etc digits. The intStudents is the variable I used for the student totals.
  MessageBox.Show(CStr(intYear.ToString) & intStudents.ToString("0000")) 

更加谨慎的方式......

  Dim strYear As String = TextBox1.Text
  MessageBox.Show(strYear & intStudents.ToString("D4")) 'D means the format and the number 4 is the length...

如果你问过你的问题......

'I assume this is your register button... if so you can do this..
 If (register.Enabled) Then
  'whatever else you need
 End If 

你是完整的编辑代码......

 'Generate Student NR'
 Dim newstudent As String
 Dim cyear As String = DateTime.Now.ToString("yy")
 Dim studentTotal As Integer = 13 'However many students registered so far...
'if statment to generate new student number for each registration'
 If (register.Enabled = True) Then
   newstudent = cyear & studentTotal.ToString("D4") 
   MessageBox.Show(newstudent) 'Use this as "MsgBox" is depreciated in newer frameworks'
 End If

'再添加一个用户变量......按照您的要求:)

 Dim studentTotal As Integer = 13 

 'Put in your click event ...
 studentTotal = studentTotal += 1