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