使用面向对象编程完成模拟移动业务办理系统,包括用户注册,用户登录,用户消费,话费充值,离开系统,当用户选择用户注册后会随机分配十个为使用的电话号码给用户选择,选择正确的序号后完成密码和预存话费;用户登录:用户输入正确的电话号码及其密码进入用户中心话费充值:用户输入正确的手机号码和充值金额即可完成手机充值反之提醒用户手机号码或者充值金额错误Java代码实现
时间: 2024-02-18 18:00:24 浏览: 29
以下是一个简单的Java代码实现:
```java
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class MobileSystem {
private ArrayList<User> users;
private ArrayList<String> phoneNumbers;
private Random random;
public MobileSystem() {
this.users = new ArrayList<>();
this.phoneNumbers = new ArrayList<>();
this.random = new Random();
// 初始化10个电话号码
for (int i = 0; i < 10; i++) {
String phoneNumber = "138" + String.format("%08d", i + 1);
this.phoneNumbers.add(phoneNumber);
}
}
public void run() {
Scanner scanner = new Scanner(System.in);
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. 离开系统");
int choice = scanner.nextInt();
scanner.nextLine();
switch (choice) {
case 1:
registerUser(scanner);
break;
case 2:
loginUser(scanner);
break;
case 3:
consume(scanner);
break;
case 4:
recharge(scanner);
break;
case 5:
System.out.println("谢谢使用,再见!");
return;
default:
System.out.println("无效的操作,请重新选择!");
break;
}
}
}
private void registerUser(Scanner scanner) {
System.out.println("请输入您的姓名:");
String name = scanner.nextLine();
System.out.println("请选择您要使用的电话号码:");
for (int i = 0; i < this.phoneNumbers.size(); i++) {
String phoneNumber = this.phoneNumbers.get(i);
System.out.println((i + 1) + ". " + phoneNumber);
}
int index = scanner.nextInt() - 1;
scanner.nextLine();
if (index < 0 || index >= this.phoneNumbers.size()) {
System.out.println("无效的电话号码,请重新选择!");
return;
}
String phoneNumber = this.phoneNumbers.get(index);
this.phoneNumbers.remove(index);
System.out.println("请输入您的密码:");
String password = scanner.nextLine();
System.out.println("请输入您要预存的话费金额:");
double balance = scanner.nextDouble();
scanner.nextLine();
User user = new User(name, phoneNumber, password, balance);
this.users.add(user);
System.out.println("用户注册成功!");
}
private void loginUser(Scanner scanner) {
System.out.println("请输入您的电话号码:");
String phoneNumber = scanner.nextLine();
System.out.println("请输入您的密码:");
String password = scanner.nextLine();
for (User user : this.users) {
if (user.getPhoneNumber().equals(phoneNumber) && user.getPassword().equals(password)) {
System.out.println("用户登录成功!");
user.printInfo();
return;
}
}
System.out.println("电话号码或密码错误,登录失败!");
}
private void consume(Scanner scanner) {
System.out.println("请输入您的电话号码:");
String phoneNumber = scanner.nextLine();
for (User user : this.users) {
if (user.getPhoneNumber().equals(phoneNumber)) {
System.out.println("请输入消费金额:");
double amount = scanner.nextDouble();
scanner.nextLine();
if (user.getBalance() < amount) {
System.out.println("余额不足,无法完成消费!");
return;
}
user.setBalance(user.getBalance() - amount);
System.out.println("消费成功,当前余额:" + user.getBalance());
return;
}
}
System.out.println("该电话号码未注册,无法进行消费!");
}
private void recharge(Scanner scanner) {
System.out.println("请输入您要充值的电话号码:");
String phoneNumber = scanner.nextLine();
for (User user : this.users) {
if (user.getPhoneNumber().equals(phoneNumber)) {
System.out.println("请输入充值金额:");
double amount = scanner.nextDouble();
scanner.nextLine();
if (amount <= 0) {
System.out.println("充值金额必须大于0!");
return;
}
user.setBalance(user.getBalance() + amount);
System.out.println("充值成功,当前余额:" + user.getBalance());
return;
}
}
System.out.println("手机号码错误,无法完成充值!");
}
public static void main(String[] args) {
MobileSystem system = new MobileSystem();
system.run();
}
}
class User {
private String name;
private String phoneNumber;
private String password;
private double balance;
public User(String name, String phoneNumber, String password, double balance) {
this.name = name;
this.phoneNumber = phoneNumber;
this.password = password;
this.balance = balance;
}
public String getName() {
return name;
}
public String getPhoneNumber() {
return phoneNumber;
}
public String getPassword() {
return password;
}
public double getBalance() {
return balance;
}
public void setName(String name) {
this.name = name;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public void setPassword(String password) {
this.password = password;
}
public void setBalance(double balance) {
this.balance = balance;
}
public void printInfo() {
System.out.println("姓名:" + this.name);
System.out.println("电话号码:" + this.phoneNumber);
System.out.println("余额:" + this.balance);
}
}
```
该程序使用了面向对象编程,将用户的信息封装在一个User类中,包括姓名、电话号码、密码和余额。MobileSystem类作为移动业务办理系统,包含了用户注册、用户登录、用户消费、话费充值和离开系统等功能。在用户注册时,随机分配10个未使用的电话号码供用户选择;在用户登录、用户消费、话费充值时,需要输入正确的电话号码和密码。程序通过Scanner类读取用户输入的信息,并进行相应的操作,最后输出结果。