#关于一个购物的项目:
1、用户模块
> 注册多个账号,用数组实现
> 账号里包含密码、余额、用户名
由于现在只做到这,白天得上班,晚上没事就找点项目做或者去b站看教学视频
报错的页面
测试的代码:
case 4:
Account a1 = new Account();
int pass = a1.account();//让用户输入密码或注册账号,不然就看不到用户页面的信息,返回的值是数组的角标
System.out.println("1、账户:" + a1.getName(pass));
System.out.println("2、余额:" + a1.getBalance(pass));
System.out.println("3、新建账户");
System.out.println("4、退出");
int num = scanner.nextInt();
switch (num){
//更改账号名
case 1:
a1.Rename(pass);
option();
//充值
case 2:
a1.Recharge(pass);
option();
//新建账户
case 3:
a1.newAccount();
option();
//退出
case 4:
option();
}
//返回具体数组里具体的用户名
public String getName(int pass){
return account[pass].name;
}
//返回具体数组里具体的余额
public double getBalance(int pass){
return account[pass].balance;
}
//进入用户界面先输入密码来确定数组里的属性
public int account(){
System.out.println("请输入你的密码:");
int p1 = scanner.nextInt();//从控制台获取数值
int num = password(p1);//传入验证密码的方法里
if(-1 == num){
System.out.println("密码错误,请检查密码或新建账户;(新建账户:1 重新输入:0)");
if(1 == scanner.nextInt()){
newAccount();//新建账户
account();//重新验证密码
}else
account();//重新验证密码
}
return num;//返回数组的角标
}
//新建账户
public void newAccount(){
for (int i = 0;i < account.length;i++){
if (account[i] == null){
System.out.println("请输入您的账户名称:");
String name = scanner.next();//下面构造器赋值
System.out.println("请输入充值的余额:");
double money = scanner.nextInt();//下面给构造器赋值
System.out.println("请输入您的密码:");
setPassword(scanner.nextInt());//设置密码
account[i] = new Account(name,money);
System.out.println("恭喜你创建成功");
break;
}
}
}
//密码验证
public int password(int password){//传进来的是用户登录的密码
for(int i = 0;i < this.password.length;i++){
if(this.password[i] == password){//如果等于则就返回角标,密码是新建账户和用户名一起赋值的
return i;
}
}
return -1;//没有相等的
}
//密码赋值
public void setPassword(int password){
for(int i = 0;i <= this.password.length;i++) {
if (this.password[i] == 0) {//验证有没有赋过值
this.password[i] = password;//如果没有就把新建用户时的密码赋给密码数组
break;
}
}if(this.password[9] != 0){//密码是依次赋值,最后一位有值就输出一句友好提示
System.out.println("账户已满");
}
}
原因应该是验证方法返回了-1导致的报错
但是我在下面的代码位置中做了判断的5555
//进入用户界面先输入密码来确定数组里的属性
public int account(){
System.out.println("请输入你的密码:");
int p1 = scanner.nextInt();//从控制台获取数值
int num = password(p1);//传入验证密码的方法里
if(-1 == num){
System.out.println("密码错误,请检查密码或新建账户;(新建账户:1 重新输入:0)");
if(1 == scanner.nextInt()){
newAccount();//新建账户
account();//重新验证密码
}else
account();//重新验证密码
}
return num;//返回数组的角标
}
整个项目的进度就卡在这了,就想先做出用户模块,代码捋了好多遍,就是没搞明白555555
就好像想打喷嚏,但就是硬生生的给憋回去了,自信都给整没了