java 实验2 类
共5道大题 最后一题为自动洗牌发牌系统
1) 编写一个类实现银行帐户的概念。包括的属性有:帐号、储户姓名、地址、存款余额,包括的方法有:存款、取款、查询、计算利息、累加利息等。
public class bank {
private int id;
private String name;
private String address;
private double money;
public bank()
{
this.id = 0;
this.name = "默认姓名";
this.address = "默认地址";
this.money = 0;
}
public String toString() {
return "bank [id=" + id + ", name=" + name + ", address=" + address + ", money=" + money + "]";
}
public bank(int id, String name, String address, int money) {
super();
this.id = id;
this.name = name;
this.address = address;
this.money = money;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
/**
* 存款
*/
public void saving(int m,int y) {
double a=getMoney();
double tax=y*0.001*m;
setMoney(getMoney()+m+tax);
System.out.println("存款成功:"+a+"元 "+y+"年后--->"+getMoney()+"元");
}
/**
* 取款
*/
public void take(int m)
{
double a=getMoney();
if(getMoney()<0)
{
System.out.println("余额不足取款失败");
}
setMoney(getMoney()-m);
System.out.println("取款成功:"+a+"元--->"+getMoney()+"元");
}
}
2)编写一个类实现桌子的概念,包括的属性有长、宽、高和颜色,包括的方法有:计算体积、显示桌子信息、设置桌子颜色及长宽高。
public class desk {
private double length;
private double width;
private double height;
private String color;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public desk(double length, double width, double height, String color) {
super();
this.length = length;
this.width = width;
this.height = height;
this.color = color;
}
public double V() {
return length*height*width;
}
@Override
public String toString() {
return "desk [length=" + length + ", width=" + width + ", height=" + height +", volume="+V()+ "]";
}
}
3)编写一个类实现一个圆,属性包括圆心、半径,方法主要包括显示的圆的信息、求面积等。圆心是Point类的对象,有两个属性x,y,代表横纵坐标。
public class circle {
private double r;
private double x;
private double y;
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
publ4ic double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public circle(point p, double r) {
this.r = r;
this.x = p.getX();
this.y = p.getY();
}
public double area() {
return (double)((int)(Math.PI*Math.pow(r, 2)*100))/100; //保留两位小数
}
@Override
public String toString() {
return "circle [r=" + r + ", x=" + x + ", y=" + y + ", area=" + area() + "]";
}
}
圆心类
public class point {
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public point(int x, int y) {
this.x = x;
this.y = y;
}
public point() {
this.x=0;
this.y=0;
}
}
4)设计一个扑克洗牌算法。将52张牌(不包括大、小王)用对象的形式表示,每张牌包括花色和大小。大小按如下序号排列:(2、3、4、5、6、7、8、9、10、J、Q、K、A), 花色为: ♠ 、♣、♥、♦ ,首先将扑克按顺序存放到一个一维数组中,然后按洗牌算法进行洗牌,最后,按东、南、西、北进行分发,显示扑克时将同一花色放在一起。
card类
public class card {
private String color;
private String num;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
@Override
public String toString() {
return "\t"+color+"-"+num;
}
}
具体算法代码:建牌库,洗牌,理牌
public class cards_test {
public static void main(String[] args) {
final int N=52,M=13;
card[] cards=new card[N];
card[] East=new card[M];
card[] West=new card[M];
card[] North=new card[M];
card[] South=new card[M];
for(int i=0;i<M;i++)
East[i]=new card();
for(int i=0;i<M;i++)
South[i]=new card();
for(int i=0;i<M;i++)
West[i]=new card();
for(int i=0;i<M;i++)
North[i]=new card();
String[] color= {"红桃","草花","红心","方片"};
String[] num= {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
for(int i=0;i<N;i++) {
cards[i]=new card();
cards[i].setNum(num[i%13]);
cards[i].setColor(color[i/13]);
}
System.out.println("洗牌前");
for(int i=0;i<N;i++) {
System.out.print(cards[i].toString());
if((i+1)%13==0)
System.out.println();
}
for(int i=0;i<N;i++) {
int index=(int)(Math.random()*10000)%52;
String temp=cards[i].getNum();
cards[i].setNum(cards[index].getNum());
cards[index].setNum(temp);
String co=cards[i].getColor();
cards[i].setColor(cards[index].getColor());
cards[index].setColor(co);
}
System.out.println("洗牌后");
String[] position= {"东:","西:","南:","北:"};
for(int i=0;i<N;i++) {
if(i%13==0)
System.out.print(position[i/13]);
if(i>=0&&i<=12)
East[i]=cards[i];
else if(i>=13&&i<=25)
South[i-13]=cards[i];
else if(i>=26&&i<=38)
West[i-26]=cards[i];
else
North[i-39]=cards[i];
System.out.print(cards[i].toString());
if((i+1)%13==0)
System.out.println();
}
System.out.print("理牌后(相同花色放一起)");
System.out.print("\n"+position[0]);
for(int j=0;j<4;j++)
for(int i=0;i<M;i++)
if(East[i].getColor().equals(color[j]))
System.out.print(East[i].toString());
System.out.print("\n"+position[1]);
for(int j=0;j<4;j++)
for(int i=0;i<M;i++)
if(West[i].getColor().equals(color[j]))
System.out.print(West[i].toString());
System.out.print("\n"+position[2]);
for(int j=0;j<4;j++)
for(int i=0;i<M;i++)
if(South[i].getColor().equals(color[j]))
System.out.print(South[i].toString());
System.out.print("\n"+position[3]);
for(int j=0;j<4;j++)
for(int i=0;i<M;i++)
if(North[i].getColor().equals(color[j]))
System.out.print(North[i].toString());
}
}
java 实验2 类的更多相关文章
- Java实验1 - 类的继承(super)- 创建checkaccount继承account
笔记总结: /** 任务81: 继承性,(降低代码亢余度) * 1.class 子类A Extends 父类B,(private 的内容无法被继承) * 2. 方法可以覆盖(Overrides), 注 ...
- java实验作业类的定义与描述
1 //1三角形的定义与描述 2 package test; 3 4 public class sjx { 5 private double a,b,c; 6 7 public sjx(double ...
- Java实验四
20145113 Java实验四 快捷键 之前没怎么记ISDEA的快捷键,但是熟练使用快捷键可以带来很多的便利,于是先开始学习一些常用的快捷键,就采用它默认的快捷键,这样后期就不会出现冲突,一些and ...
- Java实验四和实验五
实验四 类的继承性和多态性 [开发语言及实现平台或实验环境] Windows2000 或XP,JDK1.6与Jcreator4.0 [实验目的] 1. 掌握OOP方式进行程序设计的方法, 2. 了 ...
- Java实验二20135104
课程:Java程序设计 班级: 1351 姓名:刘帅 学号:20135104 成绩: 指导教师:娄嘉鹏 实验日期:2 ...
- Java实验报告二:Java面向对象程序设计
Java实验报告二:Java面向对象程序设计 ...
- java实验一实验报告
Java实验报告一:Java开发环境的熟悉 ...
- Java实验五报告——TCP传输及加解密
一.实验内容 1.运行教材上TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP发送: 注:加密使用AES或者D ...
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
随机推荐
- model进阶(queryset,中介模型,查询优化,extra)
queryset 方法 ############# 可切片 def queryTest(request): ret = models.Atricle.objects.all() 数据库查询 print ...
- Dynamics CRM 2011 通过工作流发邮件时的权限问题
场景: 在CRM中配置工作流,完成某个步骤后,发送邮件通知其他用户.发件人统一配置为管理员,收件人则根据业务需要设定动态值. 相关权限配置 首先启动流程的用户, 需要允许其他用户代表发送电子邮件 另外 ...
- C# 读取INI
虽然微软早已经建议在WINDOWS中用注册表代替INI文件,但是在实际应用中,INI文件仍然有用武之地,尤其现在绿色软件的流行,越来越多的程序将自己的一些配置信息保存到了INI文件中. INI文件是文 ...
- mybatis如何防止sql注入(2)
Mybatis框架下SQL注入漏洞修复建议1. 模糊查询like SQL注入修复建议按照新闻标题对新闻进行模糊查询,可将SQL查询语句设计如下:select * from news where ti ...
- ThreadStart中带参数
Thread Hand1 = new Thread(() => { MethodName(参数1, 参数2); }); Hand1 ...
- php写一个判断是否有cookie的脚本
前言: 刚刚学习完cookie函数,写个练习. 0x01: //其实第二个应该改为elseif,但是我懒.啊哈 <?php $vlas="BnJhiFoPS4"; if(is ...
- WARNING: cell0 mapping not found - not syncing cell0
WARNING: cell0 mapping not found - not syncing cell0
- JS||JQUERY常用语法
cookieEnabled属性语法 通常可以在浏览器的临时文件夹中保存一个文件,此文件可以包含用户信息(比如浏览过什么页面,是否选择了自动登录)等,这个文件被称作cookie,通过cookieEnab ...
- javascript中的类方法、构造方法、原型方法的对比
如果你已经接触js很久了,那么应该可以看看我总结的是否正确,如果你刚开始学习,那么通过我的总结,你可以更快的区别他们,记得我刚接触js时,这一块反正是模糊了很久! 1,长相的区别: function ...
- linux下搭建android NDK开发环境
1)下载android-ndk-r4 下载地址 http://www.ideasandroid.com/android/sdk/android-ndk-r4-linux-x86.zip http: ...