关于java实践报告

关于java实践报告,总体来说并不是很难,对我而言最大的难度在于对集合的运用,这也说明了我对第七章甚至java的整体运用并不好,第七章因为不熟练的原因是因为代码量没有敲多少,很多东西并不理解,双列集合和单列集合的运用,一般而言,像这种银行系统肯定是用Map集合更好用,直接将用户账号设定为键值,将对象用户设置为value值,再对比账号密码时直接进行调用,不管是containsKey方法还是equals关键字比较都可以,使代码更灵活也更简单。而List集合虽然可以用,但用起来更加繁琐,且不说创建集合对象时要创建更多对象,就单说调用时就要设置更多参数。说到调用,我最开始也是写了三个类,但也是在调用时候发现由于自己并没有理解集合类中集合对象的调用而导致我最后删掉了一个类,将方法直接写进测试类,虽然调用是解决了,但整个代码看起来臃肿了不少,不够简洁,这也是我的缺陷之一,我以后需要改进的地方。在if判定的方面,我的判断条件很容易卡住,因为多重循环是我的弱项,只不过这次实践报告用到多重循环的地方很简单,以后也需要多加锻炼。

import java.util.*;
class Person
{

private String name;
private String number;
private String ID;
private String password;
private double money;
private String call;
public Person(){
}
public Person(String nsme,String number,String ID,String call,String password,double money){
this.name=name;
this.number=number;
this.ID=ID;
this.password=password;
this.money=money;
this.call=call;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setNumber(String number){
this.number=number;
}
public String getNumber(){
return number;
}
public void setID(String ID){
this.ID=ID;
}
public String getID(){
return ID;
}
public void setPassword(String password){
this.password=password;
}
public String getPassword(){
return password;
}
public void setMoney(double money){
this.money=money;
}
public double getMoney(){
return money;
}
public void setCall(){
this.call=call;
}
public String getCall(){
return call;
}
}
public class Example013
{
public static void main(String[] args)
{
Map<String,Person> map=new HashMap<String,Person>();
int a=2;
int k;
int n=0;
Scanner in= new Scanner(System.in);
Scanner input=new Scanner(System.in);
Person person=new Person();
Person person1=new Person("Mr.zhang","123","410611199512017373","18790851234","123456",1000);
Person person2=new Person("Mr.wang","124","410611199512017374","18790851235","123457",100);
Person person3=new Person("Mr.Li","125","410611199512017375","18790851236","123458",2000);
Person person4=new Person("Mr.zhao","126","410611199512017376","18790851237","123459",11000);
Person person5=new Person("Mr.wu","127","410611199512017378","18790851238","1234560",1000);
map.put("123",person1);
map.put("124",person2);
map.put("125",person3);
map.put("126",person4);
map.put("127",person5);
Set keySet=map.keySet();
Iterator it=keySet.iterator();
while(it.hasNext()){
String key=(String)it.next();
person=map.get(key);
while(n<4){
System.out.println("请输人您的账号:");
String id=in.nextLine();
System.out.println("请输入您的密码:");
String pass=in.nextLine();
if(key.equals(id)&&pass.equals(person.getPassword()))
{
System.out.println("欢迎您,"+person.getName()+",请您选择服务");break;
}
else
{
if(a>0)
{

System.out.println("账户或密码错误!");
System.out.println("我们给您3次输入的机会,您还有"+a+"次机会^_^");
a--;
n++;
}
else
{
System.out.println("抱歉,我们要强制您退出系统了,因为你傻了吧唧的输错3次密码^_^");
System.exit(0);
}
}
}
do
{
System.out.println("1、存款\t2、取款\t3、查询\t0、退出\t");
k=in.nextInt();
switch(k)
{
case 1:
Scanner in1=new Scanner(System.in);
System.out.println("请输入您存款金额:");
double money1=in1.nextDouble();
person.setMoney(person.getMoney()+money1);
System.out.println("存款成功!");
break;
case 2:
double y;
Scanner in2=new Scanner(System.in);
System.out.println("请输入取款金额:");
double money2=in2.nextDouble();
if(person.getMoney()<money2)
{
System.out.println("余额不足!请重新选择服务(建议您查询余额之后再选择)");
}
else if(person.getMoney()>=money2){
System.out.println("取款成功!");
y=person.getMoney()-money2;
person.setMoney(y);
}
break;
case 3:
System.out.println(person.getMoney());
break;
case 0:
System.out.println("退出系统,祝您愉快");
System. exit(0);
}

}
while(k!=0);
}
}
}

时间: 2024-08-05 01:59:30

关于java实践报告的相关文章

20135231 JAVA实验报告三:敏捷开发与XP实践

---恢复内容开始--- JAVA实验报告三:敏捷开发与XP实践 20135231 何佳 实验内容 1. XP基础 2. XP核心实践 3. 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如“查网络”.“问同学”.“看书”等一律得0分)以及分析(从中

20172303 2018-2019-1 《程序设计与数据结构》第5周课堂实践报告

20172303 2018-2019-1 <程序设计与数据结构>第5周课堂实践报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 范雯琪 学号:20172303 实验教师:王志强 助教:张师瑜/张之睿 实验日期:2018年10月12日 必修/选修: 必修 测试内容 ASL测试 已知线性表具有元素{5,13,19,21,37,56,64,75,80,88,92},如果使用折半查找法,ASL是多少? 要求:写出结题过程 测试原理 ASL(Average Search Leng

第一次java实验报告

Java实验报告 20135226黄坤 一.实验内容 (一).命令行下Java程序开发 (二).Eclipse下Java程序开发.调试 (三).通过命令行和eclipse两种方式实现四则运算并进行测试 二.实验过程 Eclipse下Java程序开发.调试 在Eclipse中单击File->New-> Java Project新建Java项目,输入项目名称Hellojy,并单击Finish按钮完成新建项目,在Eclipse中单击File->New->Class新建Java类 据Jav

算法 《秦九韶算法java实践》

[历史背景] 秦九韶算法是中国南宋时期的数学家秦九韶表述求解一元高次多项式的值的算法--正负开方术.它也可以配合牛顿法用来求解一元高次多项式的根.在西方被称作霍纳算法(Horner algorithm或Horner scheme),是以英国数学家威廉·乔治·霍纳命名的. [原理解释] 设有n+1项的n次函数 f(x)=anxn+ an-1xn-1+an-2xn-2+ an-3xn-3+-- a2x2+a1x+ a0 将前n项提取公因子x,得 f(x)=(anxn-1+ an-1xn-2+an-2

架构设计:系统间通信(5)——IO通信模型和JAVA实践 下篇

接上篇:<架构设计:系统间通信(4)--IO通信模型和JAVA实践 中篇>,我们继续讲解 异步IO 7.异步IO 上面两篇文章中,我们分别讲解了阻塞式同步IO.非阻塞式同步IO.多路复用IO 这三种IO模型,以及JAVA对于这三种IO模型的支持.重点说明了IO模型是由操作系统提供支持,且这三种IO模型都是同步IO,都是采用的"应用程序不询问我,我绝不会主动通知"的方式. 异步IO则是采用"订阅-通知"模式:即应用程序向操作系统注册IO监听,然后继续做自己

GSM sniffer实践报告

GSM sniffer实践报告 一.声明这东西在国内挺敏感,国外已经玩了两三年了,国内现在才开始火起来,总之一句话,本报告只做研究用,勿做非法用途,违者自负!二.OsmocomBB简介OsmocomBB是GSM协议栈(Protocols stack)的开源实现,全称是Open source mobile communication Baseband.目的是要实现手机端从物理层(layer1)到layer3的三层实现.但是目前来看,真正的物理层(physical layer)并没有真正的开源实现,

Java实验报告二:Java面向对象程序设计

Java实验报告二:Java面向对象程序设计                                                                                                      实验要求: 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 实验内容 (一)单元测试 (二)面向对象三要素 (三)设计模式初步 (四)练习

【数据结构】二叉树的Java实践

二叉树,是常用的树之一. 性质: 每个节点最多有2个节点(即度最大为2) 有左.右节点(或左.右子树)之分,且节点有顺序之分(即左.右不能随意调换) 下面对二叉树做最简单的Java实践. > 二叉树的Java实践 树节点 package com.nicchagil.btree; public class TreeNode { private Integer value; private TreeNode left; private TreeNode right; public TreeNode(

Java实验报告五:Java网络编程及安全

Java实验报告五:Java网络编程及安全                                                                                                      20135315  宋宸宁 一.实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 二.实验步骤 1. 基于Java Socket实现安全传输 2. 基于TCP实现客户端和服务器,结对编程一人负责客户端,一人负责