实验:实现WoniuATM的注册与登录
作者:reader1   类别:PHP开发    日期:2018-07-03 11:16:42    阅读:705 次   消耗积分:0 分




试验简介



基于前面所学知识,我们已经可以尝试完成WoniuATM模拟系统的基础功能了。那么本实验就重点来完成WoniuATM模拟系统的操作菜单绘制(基于命令行),以及注册和登录两个核心功能,并完成简单的函数(方法)调用。




试验目的



1.掌握命令行菜单的绘制方法和调用方式。

2.利用数组完成用户的注册和登录。

3.对目前系统存在的问题有清楚的认识,并通过后续学习继续完善。



试验流程


1.设计程序的基本结构。


在程序设计中,我们不可能把所有的代码都放在main主方法中,这样可以想像当代码量多了以后是几乎不可能行得通的。不单无法维护,代码也无法重用,同时更不能对代码结构进行各种优化。所以,无论哪门程序设计语言,无论是面向对象还是面向过程的编程语言,都支持利用类或者函数(或方法)来针对不同的功能利用不同的函数(或方法)来处理,这样可以从根本上避免程序的结构性混乱。

 

所以,在完成一个程序设计之前,通常我们可以简单地先划分出程序要实现的小功能,并将每个小功能作为一个函数(或方法)来处理。在Java面向对象程序中,我们通常称之为方法。我们可以将本实验的功能细分为四个小功能:主菜单,子菜单,注册,登录,所以我们可以先规划如下代码结构:


package com.woniuxy.atm.one;
 
public class MainUI {
public static void main(String[] args) {
MainUI ui = new MainUI();   // 定义当前类的变量(实例)ui
ui.mainMenu();       // 调用当前类的方法mainMenu()
}
// 绘制主操作菜单(登录前)
public void mainMenu() {
}
// 绘制子操作菜单(登录后)
public void subMenu() {
}
// 注册功能
public void register() {
}
//登录功能
public void login() {
}
}



2.实现登录前的主菜单。


基于命令行的操作,其实主要通过输出一个菜单提示,然后根据用户的输入值进行对比和判断,利用分支结构去调用不同的功能即可实现,所以主菜单的实现功能代码如下:


// 绘制主操作菜单(登录前)
public void mainMenu() {
System.out.println("=====欢迎使用蜗牛ATM无限制存取款系统=======");
System.out.println("===请输入你的选项,1:登录   2:注册   3:退出 ===");
System.out.println("==================================");
Scanner sc = new Scanner(System.in);
String option = sc.next();
switch (option) {
case "1":
this.login();     // this: 代表本类的实例(只适用于非静态方法之间的调用)
break;
case "2":
this.register();
break;
case "3":
System.exit(0);   // 退出当前程序
break;
default:
System.out.println("你输入的选项错误,请重新输入。 ");
this.mainMenu();    // 当输入错误的时候,通过递归调用自己,重新提示输入
break;
}
}



3.实现登录成功后的子菜单。


// 绘制子操作菜单(登录后)
public void subMenu() {
System.out.println("====================请输入你的选项:===============");
System.out.println("==1:查询余额   2:转账   3:取款   4:存款   5:返回主菜单   
6:退出==");
System.out.println("==============================================");
Scanner sc = new Scanner(System.in);
String option = sc.next();
switch (option) {
case "1":
// 调用查询余额的方法
break;
case "2":
// 调用转账的方法
break;
case "3":
// 调用取款的方法
break;
case "4":
// 调用存款的方法
break;
case "5":
this.mainMenu();  // 返回主菜单
break;
case "6":
System.exit(0);   // 退出
break;
default:
System.out.println("你输入的选项错误,请重新输入。 ");
this.subMenu();    // 当输入错误的时候,通过递归调用自己,重新提示输入
break;
}
}



4.利用数组实现注册功能。


要实现用户的注册功能,我们必须首先定义一个存储方式,用于保存用户注册的账户信息,进而在登录验证或账户处理过程中能够记录相应的操作。从目前我们所掌握的知识来说,只有数组是可以用来保存多组信息的,普通的变量无法完成这一目的。所以我们优先考虑使用数组来完成。


但是数组通常是用来保存一类数据类型的,我们要实现注册功能,或者说一个账户信息至少应该包含三个信息:“用户名,密码,余额”,这还不包括其它账户信息,比如联系方式,真实姓名等等。我们不妨先简化该模型,简化为就三个关键信息:“用户名,密码,余额”。那么现在的问题关键点就在于,如果利用数组来更好地完成这三个信息的处理,进行多账户管理呢?

 

我们可以有三种方式来完成:


(1) 分别为三个关键信息定义三个数组,保持数组下标和数组长度的充分一致性,这样每个下标对应的信息就是同一个账户的信息。

版权所有,转载本站文章请注明出处:蜗牛笔记, http://www.woniunote.com/article/57
上一篇:原理:预备知识:Java程序设计基础->数组(二)
下一篇:实验:重构WoniuATM并完善其功能(一)
${comment['nickname']}   ${comment['createtime']}
  
       
${comment.content}
${reply.nickname} 回复 ${comment.nickname}    ${reply.createtime}
     
  
回复内容:${reply.content}