第十周学习java

目录

银行用户管理系统——使用Java编程

存储信息方法思路

文件输入输出

序列化

集合框架

异常处理

登录注册系统

用户登录验证

用户注册

其他特性


银行用户管理系统——使用Java编程

我们在日常生活中,经常会使用到各类银行业务,例如存取款、账户查询、账户创建等等。为了处理和管理这些业务,银行通常会使用计算机系统,这类系统我们称之为银行用户管理系统。

在Java编程中,我们也可以创建一种类似银行用户管理系统的程序。在这个简单的示例中,我们创造了一个简单的银行用户管理系统,包括用户登录、注册,以及用户账户的增删查改等基本功能。

以下是我们的代码:

 

// 这里是代码的一部分,包括主程序、登陆函数、注册函数。

package Bank;
import java.io.*;
 import java.util.ArrayList;
 import java.util.Random;
 import java.util.Scanner;
 import java.util.InputMismatchException;
 public class BankUserDemo {
 public static void main(String[] args) throws IOException, ClassNotFoundException {
 // 这里写主程序
 } 
public static boolean login() throws IOException {
 // 这里写登陆函数 
} 
public static void enroll() throws IOException {
 // 这里写注册函数 
} 
// ...其他函数... }

在这个系统中,我们定义了一个名为BankUserDemo的主类,其主函数使用输入输出流和文件对象,并在主函数中,我们根据用户的选择,调用其他函数来完成各项操作。

登陆函数login():首先系统会给出一个验证码,用户需要输入正确的验证码方可进行下一步。然后用户输入账户和密码,系统会在已注册用户信息中进行查找,如果匹配则登陆成功,否则登陆失败。

注册函数enroll():也需要首先通过验证码的检验,然后用户可以输入新的账户及密码进行注册。系统会检查新注册的账户是否已存在,如果已存在则注册失败,否则注册成功。

在审核这些基础操作后,用户可以进行一系列的账户操作,例如录入账户信息、删除账户信息、修改账户信息、查看所有用户信息、查找一个特定账户的信息等。这些操作都是通过我们定义的其他函数来实现的。

 
public static void addUid() throws IOException, ClassNotFoundException {
 // 录入账户信息函数 
} 
public static void remove() throws IOException, ClassNotFoundException {
 // 删除账户信息函数 
} 
public static void setInformation() throws IOException, ClassNotFoundException {
 // 修改账户信息函数 
} 
public static void showAll() throws IOException, ClassNotFoundException {
 // 查看所有用户信息函数 
} 
public static void showOne() throws IOException, ClassNotFoundException {
 // 查找一个特定账户信息函数 
} 
public static void showSifting() throws IOException, ClassNotFoundException {
 // 查找筛选用户信息函数 
} 
public static void delete() throws IOException {
 // 删除所有信息函数 
}

以上就是我们这个简单的银行用户管理系统的结构和主要功能。我们使用Java的输入输出流和文件对象处理存储在文本文件中的用户信息,通过实现各种函数,完成了一个完整的银行用户管理系统。实际上,这只是一个非常基础和简单的版本,银行的实际系统会包含更多复杂的功能和更严格的安全措施。

存储信息方法思路

我们的银行用户管理系统中主要使用到的Java技术包括文件输入输出、序列化、集合框架、异常处理等。下面我们来逐一介绍。

文件输入输出

在系统中,我们使用文件来保存和读取用户的数据。当需要读取或写入数据时,系统会创建一个File对象,然后使用ObjectInputStreamObjectOutputStream进行读取或写入。

例如,在enroll()函数中,我们使用如下代码来读取文件中的数据:

 
ArrayList<LoginUser> list = new ArrayList<>();
File file = new File("user.txt");
ObjectInputStream ois = null;
try {
    ois = new ObjectInputStream(new FileInputStream(file));
    list = (ArrayList<LoginUser>) ois.readObject();
} catch (Exception e) {
} finally {
    if (!(ois == null))
        ois.close();
}

在这段代码中,我们首先创建了一个ArrayList来保存读取到的数据,然后创建了一个File对象和一个ObjectInputStream对象。我们通过readObject()方法将保存在文件中的对象进行读取,然后将读取到的对象转化为ArrayList对象。

序列化

我们需要将用户的信息进行序列化才能存入文件,所以我们的BankUser类和LoginUser类都实现了Serializable接口,使得它们的对象可以被序列化和反序列化。

集合框架

在我们的系统中,我们使用ArrayList集合来保存多个对象。例如,我们需要一个ArrayList对象来保存所有的BankUser对象。而在进行账户信息操作的函数中,我们可以使用ArrayList的方法进行操作,如添加新的账户信息(add()方法)、删除账户信息(remove()方法)、查找账户信息(get()方法)等等。

异常处理

在读写文件或者处理用户输入时,可能会产生一些异常(如文件未找到,输入格式错误等)。在我们的系统中,我们使用try-catch-finally块来对可能的异常进行处理,以确保系统在出现异常时不会突然崩溃。

例如,当用户在输入金额时,如果输入的是非数字的字符,会引发InputMismatchException。我们可以使用try-catch块来捕获此类异常,然后在控制台打印错误信息。

以上就是银行用户管理系统的主要实现方法。在这个系统中,我们还定义了很多其他的辅助函数,例如输出菜单的函数、录入新用户信息的函数等等,主要使用Java的基本语法和控制语句(如switch-caseif-else)来实现。通过各种函数的协同工作,我们的系统达到了预期的效果。

登录注册系统

用户登录验证

在我们的银行管理系统中,登录函数首先创建一个随机的验证码,并要求用户输入该验证码进行验证。

 
Random r = new Random();
int number = r.nextInt(100000);
System.out.println("请输入验证码:" + number);
int numberText = sc.nextInt();

这段代码首先使用Java的Random类生成一个随机的五位数验证码,然后打印在控制台上,并要求用户进行输入验证。如果用户输入的验证码与系统生成的验证码相匹配,系统将允许用户继续执行。否则,将打印错误消息并让用户重新输入。

接下来,登录函数需要检索登记的用户数据,验证用户的用户名和密码。

 
File file = new File("user.txt");
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
list = (ArrayList<LoginUser>) ois.readObject();
ois.close();

该段代码使用Java的ObjectInputStream类从文件"user.txt"中读取序列化的用户对象列表。然后,将读取的对象转换为ArrayList,方便以后进行查找和验证。

接着,让用户输入用户名和密码,并在用户列表中进行查找。

 
System.out.println("请输入您的管理员账号");
String uid = sc.nextLine();
System.out.println("请输入您的管理员密码");
String password = sc.nextLine();
LoginUser s = new LoginUser(uid, password);

系统构造一个新的用户对象,并将用户的用户名和密码设为用户输入的值。然后,该用户对象被用于在用户列表中查找是否存在匹配的用户。

用户注册

注册函数的实现方法与登录函数相似。它也会首先生成一个随机的验证码然后要求用户进行输入验证。

接着,系统也会读取序列化的用户对象列表。与登录函数不同的是,注册函数要求用户输入新的用户名和密码,并在用户列表中检查是否存在相同的用户名。

一旦用户选择了一个唯一的用户名,新的用户对象就会被添加到用户列表中,并写回到文件"user.txt"中。

其他特性

除了登录和注册,系统还提供了其他几个基本的功能,像添加新用户、删除用户、修改用户信息,查看所有用户和查看特定用户的信息等等。它们的具体实现可能有些微妙差别,但基本原理都是创建一个新的用户对象,然后在用户列表中进行查找、添加、删除或修改等操做。

例如,添加新用户的函数会先创建一个新的用户对象,然后要求用户输入新用户的信息。之后,系统会在用户列表中检查是否存在同样的用户名。如果没有,新用户就会被添加到用户列表中,并写回到文件。

在所有这些函数中,我们都使用了Java的输入/输出流和File对象来读取和写入文件,用try-catch块来处理可能出现的异常,还用ArrayList来储存用户列表,以及用Random类生成随机验证码。

通过掌握这些Java的基本特性和技术,我们就可以创建一个基本的银行用户管理系统。

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值