信息管理系统实战:
代码:
测试类:
package com.lifeng.card;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.lifeng.util.ObjectStreamUtil;
public class MainFrame {
//创建公共访问的对象
static Scanner scanner=new Scanner(System.in);
public static List<AccountVo> list=new ArrayList<AccountVo>();
public static List<BillVo> billList=new ArrayList<BillVo>();
public static void main(String[] args) {
welcome();
}
public static void welcome() {
//如果account.txt是空的,初始化4个账户,存入account.txt.否则读取account.txt中的对象
initAccount();//初始化几个默认值
System.out.println("======================================");
System.out.println("欢迎登录信用卡系统 ");
System.out.println("======================================");
System.out.println("请选择用户类型");
System.out.println("---------------------------------");
System.out.println("1.银行工作人员");
System.out.println("2.持卡消费者");
System.out.println("3.退出");
System.out.println("---------------------------------");
int input = 0;
try {
System.out.println("请选择:");
input = scanner.nextInt();
} catch (Exception e) {
System.out.println("您输入的数据有问题,请重新输入。");
returnMenu();
}
switch(input) {
case 1:
banklogin();
break;
case 2:
userlogin();
break;
case 3:// 退出
System.exit(0);
break;
default:
System.out.println("错误操作,请重新选择");
returnMenu();
}
}
private static void returnMenu() {
System.out.println("---------------------------------");
System.out.print("输入0为您返回主菜单");
// 判断用户是否需要返回主菜单
int input = scanner.nextInt();
System.out.println("---------------------------------");
// 输入0则返回主菜单
if (0 == input) {
welcome();
} else {
System.out.println("您输入的有误,自动为您返回主菜单");
welcome();
}
}
private static void banklogin() {
System.out.println("请输入银行管理员用户名:");
String user = scanner.next();
if (user.equals("admin")) {
System.out.println("请输入用户密码:");
String pw = scanner.next();
if (pw.equals("admin")) {
System.out.println("登录成功!");
LoginManagerFrame.Managerwelcome();
} else {
System.out.println("密码错误!,请重新操作");
banklogin();}
} else {
System.out.println("用户名不存在!,请重新操作");
banklogin();}}
private static void userlogin() {//用户登录
System.out.println("请输入卡号:");
String cardnum = scanner.next();
for(int i=0;i<list.size();i++) {
AccountVo account = list.get(i);
if (account.cardNo.equals(cardnum)) {
System.out.println("请输入密码");
String passw = scanner.next();
if (account.password.equals(passw)) {
System.out.println("登录成功");
LoginPerson.Personwelcome();//登陆成功之后的转换
break;
} else {
System.out.println("密码错误,请重新输入:");
while (!scanner.next().equals(account.password)) {
System.out.println("密码错误,请重新输入:");}
System.out.println("登录成功");
LoginPerson.Personwelcome();
break;}}
if (i == list.size() - 1){//防止漏输
System.out.println("卡号不存在 ,请重新输入");
userlogin();}}}
private static void initAccount() {
//如果account.txt是空的,初始化4个账户,存入account.txt.否则读取account.txt中的对象
list=ObjectStreamUtil.getAccountVoList();
if(list.isEmpty()) {
AccountVo user1 = new AccountVo("100010", "100010", "user1");
AccountVo user2 = new AccountVo("100011", "100011", "user2");
AccountVo user3 = new AccountVo("100012", "100012", "user3");
AccountVo user4 = new AccountVo("100013", "100013", "user4");
list.add(user1);//把对象一一写入
list.add(user2);
list.add(user3);
list.add(user4);
ObjectStreamUtil.saveAccountVoList(list);}}}
对象:
管理员:
package com.lifeng.card;
import java.util.List;
import java.util.Scanner;
import com.lifeng.util.ObjectStreamUtil;
public class LoginManagerFrame {
public static void Managerwelcome(){
System.out.println("***********************************");
System.out.println("========请选择操作:");
System.out.println("1.账户资料管理");
System.out.println("2.账户信用管理");
System.out.println("3.账户欠款管理");
System.out.println("4.账单查询");
System.out.println("5.退出到系统主页");
System.out.println("====请选择:");
int input = MainFrame.scanner.nextInt();
switch(input) {
case 1:
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 延迟1秒
accountManager();//账户资料管理
break;
case 2:
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 延迟1秒
accountCreditManager();//账户信用管理
break;
case 3:
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 延迟1秒
accountOwerCheck();//账户欠款查询
break;
case 4:
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 延迟1秒
billCheck();//账单查询
break;
case 5:// 退出
Managerwelcome();
break;
default:
System.out.println("错误操作,请重新选择");}}
private static void accountManager() {
System.out.println("============请输入操作:");
System.out.println("1.增加账户信息");
System.out.println("2.修改账户信息");
System.out.println("3.查询账户信息");
System.out.println("4.删除账户信息");
System.out.println("5.返回上一级");
System.out.println("6.返回系统主界面");
System.out.println("请选择操作:");
int input = MainFrame.scanner.nextInt();
switch(input) {
case 1:
System.out.println("请输入添加的卡号:");
String cardNo1 = MainFrame.scanner.next();
System.out.println("请输入添加的账户密码:");
String password1 = MainFrame.scanner.next();
System.out.println("请输入添加的账户名:");
String username1 = MainFrame.scanner.next();
AddAccount(cardNo1,password1,username1);
break;
case 2:
System.out.println("请输入需要修改的账户卡号:");