ArrayList的遍历与查询:
package arraylist;
import java.util.ArrayList;
import java.util.Scanner;
//学生信息系统:展示数据,并按照学号完成搜索
public class ArrayListTest3_Student {
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
students.add(new Student("16","王", 20,"软件1班"));
students.add(new Student("17","浩", 20,"软件2班"));
students.add(new Student("18","祥", 20,"软件3班"));
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);
System.out.println("----------------------");
System.out.println("学号:" + s.getStudyNnumber());
System.out.println("姓名:" + s.getName());
System.out.println("年龄:" + s.getAge());
System.out.println("班级:" + s.getClassName());
System.out.println("----------------------");
}
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("请您输入学号查询学生对象");
String studynNumber = sc.next();
Student s = getStudentById(students, studynNumber);
if(s==null)
{
System.out.println("查无此人");
}else{
System.out.println("查询学生的信息如下:");
System.out.println("学号:"+s.getStudyNnumber());
System.out.println("姓名:"+s.getName());
System.out.println("年龄:"+s.getAge());
System.out.println("班级:"+s.getClassName());
}
}
}
//搜索学生学号并返回学生对象地址
public static Student getStudentById(ArrayList<Student> students, String StudyNumber){
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);
//询问当前遍历的这个学生对象的学号,是否是我们要找的学号
if(s.getStudyNnumber().equals(StudyNumber)) {
//找到
return s;
}
}
//查无此人
return null;
}
}
ATM系统(开户和登录):
package yoe;
//账户类
public class Account {
private String cardId;
private String uesrName;
private String passWord;
private double money;
private double quoteMoney;//取现额度
public Account() {
}
public Account(String cardId, String uesrName, String passWord, double money, double quoteMoney) {
this.cardId = cardId;
this.uesrName = uesrName;
this.passWord = passWord;
this.money = money;
this.quoteMoney = quoteMoney;
}
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public String getUesrName() {
return uesrName;
}
public void setUesrName(String uesrName) {
this.uesrName = uesrName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public double getQuoteMoney() {
return quoteMoney;
}
public void setQuoteMoney(double quoteMoney) {
this.quoteMoney = quoteMoney;
}
}
package yoe;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class ATMSystem {
public static void main(String[] args) {
ArrayList<Account> accounts = new ArrayList<>();
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("=========yoe的ATM系统=========");
System.out.println("1:登录账户");
System.out.println("2:注册账户");
System.out.println("请选择您的功能");
int command = sc.nextInt();
switch (command){
case 1:
//用户登录
login(accounts, sc);
break;
case 2:
//用户注册(alt+Enter快速生成方法格式)
register(accounts, sc);
break;
default:
System.out.println("您输入的操作不存在");
}
}
}
//系统登录操作
private static void login(ArrayList<Account> accounts, Scanner sc) {
System.out.println("==============系统登录操作==============");
//查询系统中是否有账户
if(accounts.size() == 0){
System.out.println("系统中没有任何账户!");
}else{
System.out.println("请输入您的账号:");
String cardId = sc.next();
for (int i = 0; i < accounts.size(); i++) {
Account acc = accounts.get(i);
while(true) {
if (acc.getCardId().equals(cardId)) {
System.out.println("请输入密码:");
String passWord = sc.next();
for (int i1 = 0; i1 < accounts.size(); i1++) {
Account ac = accounts.get(i1);
if (ac.getPassWord().equals(passWord)) {
System.out.println("登陆成功,请您选择您所要办理的业务:");
System.out.println("===============================");
} else {
System.out.println("密码错误请重新输入!");
}
}
} else {
System.out.println("系统中并没有该账户!");
}
}
}
}
}
//系统开户操作
private static void register(ArrayList<Account> accounts, Scanner sc) {
System.out.println("==============系统开户操作==============");
//1,创建一个账户对象,用于后期封装账户信息
Account account = new Account();
//2,录入当前账户的信息,注入账户对象中去
//用户名
System.out.println("请您输入用户名");
String name = sc.next();
account.setUesrName(name);
//用户密码
while (true) {
System.out.println("请您输入密码:");
String passWord = sc.next();
System.out.println("请您输入确认密码:");
String okPassWord = sc.next();
if (okPassWord.equals(passWord)) {
account.setPassWord(passWord);
break;
}else{
System.out.println("对不起您输入的两次密码不相同,请您重新输入密码:");
}
}
//账户取款限额
System.out.println("请您输入当次账户限额:");
double quoteMoney = sc.nextDouble();
account.setQuoteMoney(quoteMoney);
//为账户生成一个八位且与其他账号不一样的Id
String cardId = getRandomCardId(accounts);
account.setCardId(cardId);
//3,把账户对象添加到账户集合中
accounts.add(account);
System.out.println("恭喜您"+name+"先生/女士,您开户成功,您的卡号是:"+cardId+"请您妥善保管");
}
private static String getRandomCardId(ArrayList<Account> accounts) {
//先生成八位数字
Random r = new Random();
while (true) {
String cardId = "";
for (int i = 0; i < 8; i++) {
cardId += r.nextInt(10);
}
//判断这个八位的卡号是否与其他账户的卡号重复
Account acc = getAccountByCardId(cardId, accounts);
if(acc == null)
{
return cardId;
}
}//当一个带返回值方法的内部调用死循环时没有return,循环条件必须时布尔代数的true
}
//查询卡号是否相同的方法
private static Account getAccountByCardId(String cardId, ArrayList<Account> accounts){
for (int i = 0; i < accounts.size(); i++) {
Account acc = accounts.get(i);
if(acc.getCardId().equals(cardId))
{
return acc;
}
}
return null;
}
}
明天接着完成剩余部分。