大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用While和一个计数变量,以下是伪代码
专注于为中小企业提供网站设计制作、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业依安免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
定义计数变量并归零
定义状态变量并归零
while(计数变量3且状态变量为真)
{
输入密码
if(密码正确)
{
状态变量设定为真
}
else
{
计数变量+1
密码框清空
}
}
if(状态变量不为真) /说明前面的循环结束是因为输错了三次
{
提示:请管理员解锁
【密码输入过程与上方用while循环类似】
}
else
{
(剩余操作)
}
//输入密码时肯定会查询数据库,
//比较直观的方法就是建立一张表,记录登录人员的用户名及登录次数
//例如create table userLogon(
username VARCHAR2(20), --用户名
logontime VARCHAR2(4),--登录次数记录
logondate DATE --登录日期
)
//首先是登录时肯定输入用户名、密码。如果登录成功,从页面取得username作为条件查询建立的userLogon表
//中是否有已存在的用户,如果没有那么就插入新的用户名。
1.登录日志表中无该人员信息
insert into userLogon (username,logontime,logondate) values('页面获取的username','1',getsysdate());
这算一次登录。
(每次登录都会查日志表)
若为同一个人的下次登录的时候继续查日志表,select logontime from userLogon where username='页面获得的username'
这里可以查到logontime是字符串类型的'1'。
如果登录成功,那么修改表中的logontime
update userLogon set logontime='2',logondate=getsysdate() where username='页面获取的username'。
以此类推,第三次也是判断logontime的值,如果是2,那么就改成3。
那么第四次登录时会查到logontime的值为3,以这个条件作为判定,弹出不可继续登录的对话框。
if(日志表中的登录日期与当前日期一致){
将以上逻辑编码写入
}else{
登录次数已达3次,请明天登录
}
都是在用户登陆时查询数据库表,一般user表中会有:是否禁用、最后一次登陆时间(到秒)、用户登陆错误次数。
用户登陆时查询该用户数据,进行判断,若是正确,则更新是否禁用为可用、最后登陆时间、错误次数为0.
若是登陆错误时,错误次数+1,若是错误次数=3,则更新是否禁用为禁用,并更新最后一次登陆时间。
若是登陆时该用户数据中是否禁用为禁用,则判断最后一次登陆时间与当前登陆时间相比较,半小时后可以登陆,重复上面流程。
JAVA做登陆必须会HTML,用HTML做出一个用户名密码的界面。
编写后台代码。
如果说想法,也就是对用户名密码的正确性判断和输入字符是否合法,有些登陆需要验证码,可按个人意愿加。
为了安全性,可以写成3次登陆错误就禁止登陆的方式,实现方式使用cookies。
import java.util.Scanner;
/**
* @作者 王建明
* @创建日期 2013-07-15
* @创建时间 13:48:45
* @版本号 V 1.0
*/
public class Atm5 {
Scanner sc = new Scanner(System.in);
private String name = "lorin";
private double password = 123;
private double money = 500;
public void jj() {
System.out.println("***********************");
System.out.println("* *");
System.out.println("* 欢迎使用ATM *");
System.out.println("* *");
System.out.println("* 制作人:lorin *");
System.out.println("* *");
System.out.println("* *");
System.out.println("************************");
System.out.println("请输入密码");
Scanner aa = new Scanner(System.in);
int a = aa.nextInt();
int count = 2;
while (a != password count 0) {
System.out.println("密码错误,还有次" + (count--) + "输入机会!");
a = aa.nextInt();
}
if (count == 0) {
System.out.println("对不起,您连续三次输入密码错误,您的卡已被系统没收!");
return;
}
land();
}
public void land() {
System.out.println("请选择操作界面:1取款,2存款,3查询,4转账,5退出");
int a = sc.nextInt();
// 请加入此句
switch (a) {
case 1: // 去掉‘’ 因为a 为int型。
get();
break;
case 2:
set();
break;
case 3:
query();
break;
case 4:
divert();
break;
case 5:
SetOut();
break;
}
}
// 取款
public void get() {
System.out.println("请输入取款金额:");
int a = sc.nextInt();
if (a money) {
System.out.println("余额不足!");
} else {
money -= a;
System.out.println("当前余额为:" + money);
land();
}
} // 存款
public void set() {
System.out.println("请输入存款金额:");
int a = sc.nextInt();
money += a;
System.out.println("当前余额为:" + money);
land();
} // 查询
public void query() {
System.out.println("当前余额为:" + money);
land();
} // 转账
public void divert() {
System.out.println("该功能站未开放!");
land();
} // 退出
public void SetOut() {
System.exit(0);
}
public static void main(String[] args) {
Atm5 atm = new Atm5();
atm.jj();
}
}
package Hamber_Bao;
import java.util.Scanner;
public class Login {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
String manager = "admin";
String password = "admin";
boolean xn = false;
int i = 0;
do {
System.out.println("请输入用户名:");
String name = input.next();
System.out.println("请输入密码:");
String pass = input.next();
xn = (!(name.equals(manager)) || !(pass.equals(password)));
if (xn) {
System.out.println("您输入错误!请重新输入!");
i++;
if (i == 3) {
break;
}
}
} while (xn);
if(xn)
System.out.println("您无权限进入该系统!");
else
System.out.println("欢迎光临!");
}
}
首先利用do-while循环接受用户的输入
声明整型变量i计数
声明布尔类型变量,标记用户名和密码是否错误
若错误,提示,i自加,并且判断i是否等于3
若等于3,跳出
好好看看哦··
祝你学业有成!
By 【Hamber_Bao】
while是循环啊,应该用if吧,让用户有三次输入验证的机会string uid="XX";//用户输入的帐号string pwd="XX";//用户输入的密码int num=1;//用户输入验证的次数 if(num=3){ if(如果用户输入的帐号和密码验证通过){ // 进行相关操作 }else{ num++; return;// } }else{ //弹出消息,告知用户因为输入错误超过3次,帐号被锁定 }}