用labview做密码登录系统综述Word格式.docx
《用labview做密码登录系统综述Word格式.docx》由会员分享,可在线阅读,更多相关《用labview做密码登录系统综述Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
图2第7次登录后的界面
输入用户名后,可以按回车键,光标会跳到密码输入栏,输入密码后,可以按回车键进行密码确认,也可以点击“用户登录”,单击“用户登录”或按下回车键进行验证,如果用户信息不正确的话,会提示“用户名或密码错误,请重新输入”,如果用户输入三次错误的用户名和密码时,会提示“输入错误的用户名或密码次数超出限制,请联系系统管理员确认您的用户名和密码!
”,此时请联系管理员确认正确的用户名和密码。
如果用户信息正确,则允许登录,如图2所示。
如果用户的权限只是测试员的话,则只有“进入系统”、“修改密码”、“退出系统”这几个按键可用,选择“修改密码”则可以对自己的密码进行修改,如下图:
图3修改密码
如果用户权限是管理员的话,则多了一个“用户管理”的功能,用于对当前所有用户的密码等信息进行管理,如下图所示:
图4用户管理
可以进行的管理包括:
增加用户——弹出对话框提示输入新用户的用户名、密码、权限,确认后完成用户增加;
图5增加用户
删除用户——选择左边的任意一个用户,点删除用户,确认后删除该用户;
图6删除用户
编辑用户——双击某一行时,可以对该用户的密码和权限进行修改,但用户名、登录次数和最后登录时间不能改变。
图7编辑用户
退回用户登录界面,单击“进入系统”开始进入系统。
二、程序分析与解释
主程序前面板
主程序的程序框图
VI的结构层次
从VI层次结构可以看出该实例中有5个层次,而且包含很多子VI,所以本实例采用由主到次,由表及里的方式说明。
首先看主程序框图,大的框架是有一个while循环和一个事件结构组成,其中事件结构有8个分支,即前面板上可能发生的各个事件
1.先进入事件0—用户登录
该事件分支用于判断用户名和用户密码是否正确和匹配,然后在执行相应的程序,其中用了一个子VI—核对密码,它输出用户的用户权限、最好登录时间、登录次数和密码是否正确,又用了3个条件结构,外部1个条件结构执行密码输入结果相应的程序,条件假的分支的内层条件结构执行不同的错误次数的相应程序,条件真的内层条件结构用于判断该用户是否是管理员并执行对应的程序。
该程序用到了局部变量和属性节点,使得程序实现的功能变得强大,实现起来也非常简单。
下面进入核对密码子VI
前面板如图
程序框图:
该VI中首先利用检索数组和一个条件结构检查输入的用户名是否存在,当用户名存在,则判断输入密码是否正确,并输出判断结果;
否则直接输出为假。
2.下面分析事件1-超时
图中已经对超时作了很详细的说明,现在直接进入子VI-读取信息:
前面板如图:
程序框图很简洁,根据命令项的内容读取数据库中的数据并自动修改更新信息。
由于涉及到数据库的内容,比较难以展开,故在此只将各个子VI的大致的功能说明一下。
子VI链接数据库,并打开数据库,然后读取数据,再作修改,最后关闭数据库。
3.事件2-修改密码
本事件处理修改密码和更新修改的数据,当子VI-输新密码输出为真时,则在条件结构中更新数据,否则什么也不用做。
现在进入子VI-输新密码中
可以看到该子VI中也是用的事件结构,用4个分支来实现修改密码这一功能。
(1)分支0-确认
当在前面板按下确认键,即进入该分支,如果输入密码为非空,则判断两次输入的密码是否一致,若一致就退出本程序,同时将修改密码赋值为T,若不一致,提示重新输入密码;
若输入密码为空,则提示重新输入。
(2)分支1-请确认您的新密码,请输入您的新密码
当“请确认您的新密码”,“请输入您的新密码”中有键按下,则进入条件结构的真分支,然后再判断条件,执行相应程序。
(3)分支2-前面板关闭
运行程序,如果关闭前面板,则停止程序运行
(4)分支3-退出
若按下“|取消”键,则退出该程序。
现在进入子VI-更新数据
通过连接字符串把用户信息和命令信息输入给数据库处理VI,更新数据库。
与数据库相关的VI,前面已经叙述。
4.事件分支3-进入系统
该分支更新最后登录时间、登录次数等信息,更新完成退出程序。
此处的子VI-更新信息与上述的子VI-更新信息略有不同,下面看一下它的程序框图:
5.事件分支4-退出系统
该分支在前面已经叙述过。
6.事件分支5-前面板关闭
7.事件分支6-
如果在“用户密码”处有ENTER键按下的话,将“用户登录”事件设置为真,触发登录的事件,判断密码等信息是否正确,否则不动作。
8.事件分支7-
判断在“用户名”处是否有ENTER键按下,如果有则将“用户密码”处设为键选中,用属性节点实现,以便用户输入密码否则不动作。
9.事件分支8-用户管理
该事件通过子VI-用户管理来实现对用户的添加和删除。
现在进入子VI中
该VI也是通过事件结构来实现对多列列表框中的用户进行管理,事件结构外判断用户数量是否大于8,若大于8则添加垂直滚动条。
以下说明各事件分支的作用。
(1)分支0-添加用户
首先索引到当前的用户,然后由子VI-编辑用户来确定是否添加用户,若添加用户则需要子VI-增加用户添加,并且将添加的用户插入到原来的用户列表中。
现在进入子VI-编辑用户中
该VI还是事件结构实现编辑的功能。
在while循环外面做出判断:
当在编辑用户时用户名不能被改变而在其他状态下用户名可以被改变。
以下分析各个事件分支的作用:
1)分支0-确认
判断输入的用户名是否已经存在,若存在则重新输入和编辑,否则直接进行编辑。
如果已经添加用户,则输出用户信息,并且将编辑用户赋值为T。
2)分支1-前面板关闭
前面已经叙述了。
3)分支2-取消
取消时退出程序,并将“编辑用户”设为F,即不进行编辑。
现在进入子VI-增加用户
该VI把新添加的用户信息加入数据库中。
(2)分支1-前面板关闭
(3)分支2-删除用户
提示是否要删除选中的用户,若要删除则进入子VI-删除用户。
现在进入子VI-删除用户。
根据命令信息删除数据库中该用户的信息。
(4)分支3-多列列表框
通过双击某一项,选中并打开编辑框。
首先索引到当前的用户,然后由子VI-编辑用户来确定是否修改用户信息,若修改了信息则需要子VI-更新数据,并且将修改的用户插入到原来的用户列表中,也要更新数据库。
子VI-编辑用户和子VI-更新数据前面已经叙述了。
(5)分支4-退出管理
该分支与前面退出系统类似。
三、总结与展望
通过最近一段时间对登录系统整个程序的研究和分析,自己已经获得了相当大的收获,程序中大量运用事件结构,属性节点和数组函数,同时也需要数据库工具包的支持,结果使得实现的功能很强大,结构设计得也很美观,给人很大兴趣和激励。
看完这个大程序,自己也认识到以后在设计庞大的程序时,要先设计好框架,清楚各个程序之间的逻辑关系,再添加具体的功能,我也看到自己在使用数组函数的时候很生疏,以后要多练习。
看到自己能够设计出和平时用的一样的登录系统,心里甚是兴奋,如果自己能够完全掌握属性节点,调用节点,数据库的使用,队列和状态图,那么我将能设计出更强功能的应用程序,自己将对labview语言产生更浓厚的兴趣。
加油,争取下一次干的更漂亮!
2009-6-5