Vb.net 生成7位学生编号

Vb.net 生成7位学生编号,vb.net,winforms,Vb.net,Winforms,我刚开始学习vb.net,所以请耐心等待 我正在做一个大学作业,我需要建立一个小的学生注册计划 我需要创建一个7位数的学生号,每当用户单击register,我的代码和验证以及到DB的连接工作正常,我只是在努力生成学生号 生成学员编号的说明 学生编号应该有7位数字 前两位代表学生注册的年份(全年的最后两位),我得到的结果是这样的,它运行良好:Dim cyear=DateTime.Now.ToString(“yy”) 这是我的问题: 接下来的4个数字代表到目前为止注册的学生人数,这个数字总是从左起用

我刚开始学习vb.net,所以请耐心等待

我正在做一个大学作业,我需要建立一个小的学生注册计划

我需要创建一个7位数的学生号,每当用户单击register,我的代码和验证以及到DB的连接工作正常,我只是在努力生成学生号

生成学员编号的说明

  • 学生编号应该有7位数字
  • 前两位代表学生注册的年份(全年的最后两位),我得到的结果是这样的,它运行良好:
    Dim cyear=DateTime.Now.ToString(“yy”)

  • 这是我的问题: 接下来的4个数字代表到目前为止注册的学生人数,这个数字总是从左起用0填充,组成四位数字


  • 示例

    如果到目前为止(2014年)已有20名学生注册,那么下一名学生将 学生号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)
    
    我的界面看起来像这样


    请注意,我不是要求有人帮我完成这段代码,我只是想寻求一些建议,有人可以为我指出正确的方向等。这也是我应该用于生成学号的正确选择结构的前提条件?

    这是你填写学号的方式:

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


    这是您输入数字的方式:

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

    更完美的方式

      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 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
    
    '根据您的请求,向用户变量…再添加一个:)


    谢谢你帮了大忙!如果最后一个数字达到9会发生什么?它会自动转到下一个数字吗?你为什么不试试呢?应该像编写一个2行控制台应用程序一样简单。谢谢你们这么多帮了大忙的家伙,如果你们不介意的话,再问一个问题,我在这里使用if语句正确吗?谢谢你们帮了大忙!如果最后一个数字达到9会发生什么?它会自动转到下一个数字吗?你为什么不试试呢?应该像编写一个2行控制台应用程序一样简单。谢谢你们这么多帮了大忙的家伙,如果你们不介意的话,再问一个问题,我在这里使用if语句对吗?你们也可以去掉一些变量;最后一位和最后一位余数…请参阅我的编辑。。。这应该很好:)欢迎光临!是的,它工作完美,生产140000,这是正确的,你是一个活生生的储蓄者!!!只有一个问题:每当注册发生时,如何使用上述代码递增1?简单。。只要用“+=1”表示欢迎,我就把它写在答案里了。如果您有DIM(单击事件中的去极化变量),您需要至少将studenttotal一个移到单击事件之外,因为每次单击它时,这将是不同的。为了保持计数,将其作为类中的一个私有全局变量……您也可以去掉一些变量;最后一位和最后一位余数…请参阅我的编辑。。。这应该很好:)欢迎光临!是的,它工作完美,生产140000,这是正确的,你是一个活生生的储蓄者!!!只有一个问题:每当注册发生时,如何使用上述代码递增1?简单。。只要用“+=1”表示欢迎,我就把它写在答案里了。如果您有DIM(单击事件中的去极化变量),您需要至少将studenttotal一个移到单击事件之外,因为每次单击它时,这将是不同的。为了维护计数,请在类中将其作为私有全局变量。。。