【发布时间】:2014-04-06 21:29:46
【问题描述】:
我刚开始使用 vb.net,所以请耐心等待。
我正在完成一项大学作业,我需要建立一个小型学生注册计划。
每当用户点击注册时,我都需要创建一个 7 位数的学号,我的代码和验证以及与 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)
我的界面是这样的
请注意,我不是要求某人为我完成此代码,我只是在寻找一些建议,有人可以为我指出正确的方向等。IF 语句也是我应该使用的正确选择结构学号的生成?
【问题讨论】: