您的当前位置:首页正文

银行系统实验报告

2021-06-07 来源:个人技术集锦


封面

实验题目

姓 名

学 院

专 业

学 号 指导教师

基于面向对象思想编写的银行系统 软件学院 软件工程 2011 年 5 月11日

银行系统实验报告

1、实验目的

(1)熟悉java面向对象的编程方法,熟悉类的使用;

(2)掌握this、static关键字的使用; (3)熟练掌握Vector类的使用; (4)学会构造函数;

(5)熟练编程中的流程控制;

2、实验步骤

(1)在整个程序中抽取出两个类:银行顾客和管理员,其中银行顾客用Cust类表示,管理员用Emp类表示。银行顾客具有的属性为:取钱(getmoney)、存钱(savemoney)、查询(printlnfor)、转账(zhuanzhang),修改密码(changePWD);管理员的属性为:添加用户(add)、删除用户(delete)、计算总额(allsum)、打印顾客清单(print)、查询某个顾客(chaxun)。

(2)定义一个工具类KB,为以后输入语句提供方便;

(3)按需求调用各个类的行为状态完成类的编写,再编写主函数; (4)调试并运行程序。

3.实验过程(问题及解决方案)

(1)Cust类中判断密码时,应用这样的代码 boolean pwd()

{

for (int a=0;a<3;a++ ) {

System.out.println(\"请输入密码\");

int i=new Scanner(System.in).nextInt(); if(i==this.pwd) return true; else

{ System.out.println(\"密码输入错误\");

System.out.println(\"重新输入请按1,\退出请按2\\n\"); int g=new Scanner(System.in).nextInt();

- 1 -

}

if (g==2)

{ return false;

}

} }

结果编译时出错,显示无返回语句

解决方案:输入密码为错,且选择“2”退出时,用break跳出循环,最后再return false 即

boolean pwd()

{

for (int a=0;a<3;a++ ) {.

...

}

}

if (g==2) { }

break;

}

return false;

(2)运行判断密码的程序时,三次输入密码错误时应直接跳出程序,然而在上面这个程序中并没有直接跳出,而是再次执行语句System.out.println(\"重新输入请按1,\退出请按2\\n\");然后才跳出循环 解决方案:

方案1:将输出提示错误的语句与取密码值的语句分开放在两个不同的for循环中;结果行不通;

方案2:将a<3改成a<2,然后在for后面再写一条当a=2时的语句,即

boolean pwd()

{

- 2 -

int a=0;

for (a=0;a<2; ) {...

}

if (g==2) {

break; } else

a++;

} if(a==2)

System.out.println(\"密码输入有误,请下次光临\"); }

return false;

结果不成功;

方案:3:分析,当连续输入3次错误的密码时,应该显示两次“密码输入错误,请重新输入”,所以当a=2时就应该不在执行这条输出语句,所以就想办法给这条语句自己一个约束条件,即当a!=2时执行这条语句,所以就加上一个if语句限制这条语句,结果运行成功。

boolean pwd()

System.out.println(\"密码输入错误\");

System.out.println(\"重新输入请按1,\退出请按2\\n\"); int g=new Scanner(System.in).nextInt();

{

...

else {

if (a!=2)

{

- 3 -

}

}

if (g==2) {

break; }

} else

System.out.println(\"对不起,请您下次光临\");

}

return false;

(3)转账时未传递参数,结果显示找不到符号v

解决方案:将zhuanzhang()改为zhuanzhang(Vector v),同时将与此有关的调用都传递上参数。

(4)测试时v找不到符号

解决方案:将所有的“v.”改成“e.v.”,原因是Cust类中的顾客信息的初始化都是在管理员的类中完成的,所以想要调用顾客信息时要将管理员的类名加在前面。

4.实验总结

Java是一种简单的、面向对象的、安全的编程语言,它具有可移植性;Java中的程序中的类能够动态的载入到运行环境中,类的使用也使java程序的升级变得更加简单,更加容易实现。

Vector类的使用使java程序添加删除信息变得十分容易。

使用static关键字可以使它所定义的类成员的使用完全独立于该类的任何对象,使该类可以被它自己使用,一个成员被static修饰之后,它可以在该类的任何对象创建之前被访问,而不需要引用任何对象。但同时static关键字也有几条限制,如它只能引用static类型的数据,只能调用其他的static方法;

在成员方法中,对访问的同类中成员前加不加this效果都一样,但this关键字也并不是没有用处的,如在以下两种情况下使用this就使程序变得更加完善、好用:(1)当我们想通过构造的方法将外部传入的参数赋值给类成员变量,构造方法的形参名称与类成员变量名相同时,这时需要使用this;(2)构造方法是在产生对象时被java系统自动调用的,我们不能在程序中像调用其他方法一样去调用构造方法。这时我们可以用this(参数列表)的形式,根据其中的参数列表,选择相应的构造方法;

构造方法在程序设计中非常有用,它可以为类的成员进行初始化工作,当一个

- 4 -

类的实例对象刚刚出现时,这个类的构造方法就回自动被调用,我们可以再这个方法中加入要完成初始化工作的代码,它可以避免我们在编程过程中忽略对变量的初始化。

- 5 -

因篇幅问题不能全部显示,请点此查看更多更全内容