使用面向对象实现模拟移动业务办理系统,包括用户注册,用户登录,用户消费,话费充值,离开系统Java代码实现
时间: 2023-07-31 22:08:25 浏览: 47
以下是一个简单的面向对象模拟移动业务办理系统的Java代码实现:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class MobileSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 存储所有用户信息
HashMap<String, User> users = new HashMap<>();
while (true) {
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.print("请选择操作:");
int choice = scanner.nextInt();
scanner.nextLine();
switch (choice) {
case 1:
// 用户注册
System.out.print("请输入手机号:");
String phoneNumber = scanner.nextLine();
System.out.print("请输入密码:");
String password = scanner.nextLine();
User user = new User(phoneNumber, password);
users.put(phoneNumber, user);
System.out.println("注册成功!");
break;
case 2:
// 用户登录
System.out.print("请输入手机号:");
String loginPhoneNumber = scanner.nextLine();
System.out.print("请输入密码:");
String loginPassword = scanner.nextLine();
User loginUser = users.get(loginPhoneNumber);
if (loginUser != null && loginUser.checkPassword(loginPassword)) {
System.out.println("登录成功!");
// 进入用户操作界面
while (true) {
System.out.println("********** 用户操作界面 **********");
System.out.println("1. 查询余额");
System.out.println("2. 修改密码");
System.out.println("3. 返回主菜单");
System.out.print("请选择操作:");
int userChoice = scanner.nextInt();
scanner.nextLine();
switch (userChoice) {
case 1:
// 查询余额
System.out.println("当前余额为:" + loginUser.getBalance() + "元");
break;
case 2:
// 修改密码
System.out.print("请输入新密码:");
String newPassword = scanner.nextLine();
loginUser.setPassword(newPassword);
System.out.println("密码修改成功!");
break;
case 3:
// 返回主菜单
System.out.println("返回主菜单。");
break;
default:
System.out.println("无效操作,请重新选择!");
break;
}
if (userChoice == 3) {
break;
}
}
} else {
System.out.println("手机号或密码错误,请重新登录!");
}
break;
case 3:
// 用户消费
System.out.print("请输入手机号:");
String consumePhoneNumber = scanner.nextLine();
User consumeUser = users.get(consumePhoneNumber);
if (consumeUser != null) {
System.out.print("请输入消费金额:");
double consumeAmount = scanner.nextDouble();
if (consumeUser.consume(consumeAmount)) {
System.out.println("消费成功,当前余额为:" + consumeUser.getBalance() + "元");
} else {
System.out.println("余额不足,消费失败!");
}
} else {
System.out.println("手机号不存在!");
}
break;
case 4:
// 话费充值
System.out.print("请输入手机号:");
String rechargePhoneNumber = scanner.nextLine();
User rechargeUser = users.get(rechargePhoneNumber);
if (rechargeUser != null) {
System.out.print("请输入充值金额:");
double rechargeAmount = scanner.nextDouble();
rechargeUser.recharge(rechargeAmount);
System.out.println("充值成功,当前余额为:" + rechargeUser.getBalance() + "元");
} else {
System.out.println("手机号不存在!");
}
break;
case 5:
// 离开系统
System.out.println("再见!");
return;
default:
System.out.println("无效操作,请重新选择!");
break;
}
}
}
}
class User {
private String phoneNumber; // 手机号
private String password; // 密码
private double balance; // 余额
public User(String phoneNumber, String password) {
this.phoneNumber = phoneNumber;
this.password = password;
this.balance = 0;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
/**
* 检查密码是否正确
*/
public boolean checkPassword(String password) {
return this.password.equals(password);
}
/**
* 消费
*/
public boolean consume(double amount) {
if (balance >= amount) {
balance -= amount;
return true;
} else {
return false;
}
}
/**
* 话费充值
*/
public void recharge(double amount) {
balance += amount;
}
}
```
上述代码中,MobileSystem类是系统的入口,通过控制台提供各种功能操作。User类是用户类,包括用户手机号、密码和余额等信息,以及消费和话费充值等方法。在MobileSystem类中,使用HashMap<String, User>来存储所有用户信息,可以根据手机号快速查找用户对象。使用Scanner类来实现控制台输入,根据用户的选择执行相应的操作。在用户登录后,进入用户操作界面,可以查询余额、修改密码等操作。