欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

类与对象实验报告

程序员文章站 2022-07-12 09:38:23
...

1、编写一个名为“复数”的类,包含复数的实部和虚部(数据成员),以及复数之间的基本算术运算:加、减(方法成员),并要求复数加减运算,程序运行中能对给定的复数进行运算,并打印运算的结果。
1)面向过程

import java.util.*;

//实现复数的双目运算
//一个名为“复数”的类,包含复数的实部和虚部(数据成员),以及复数之间的基本算术运算:加、减(方法成员),并要求复数加减运算,程序运行中能对给定的复数进行运算,并打印运算的结果。
//面向过程编程
public class complex1{
	static int r1,r2; //定义实数部分
	static int v1,v2;//定义虚数部分
	static int sr,sv;//定义运算后的实部和虚部
	static void add() {
		//定义复数运算加法方法
		sr=r1+r2;
		sv=v1+v2;
	}
	
	static void sub() {
		//定义复数运算减法方法
		sr=r1-r2;
		sv=v1-v2;
	}
	 static void output(int sr,int sv) {
		 //定义输出方法
		System.out.printf("The result is %d+%di",sr,sv);
		
	}
	 public static void main(String args[]) {
		 Scanner reader=new Scanner(System.in);
		 System.out.println("please input the real of first complex:");
		 r1=reader.nextInt();
		 System.out.println("please input the image of first complex:");
		 v1=reader.nextInt();
		 System.out.println("please input the real of second complex:");
		 r2=reader.nextInt();
		 System.out.println("please input the image of second complex:");
		 v2=reader.nextInt();
		 int i; //定义运算方向变量
		 System.out.printf("Which operation do you want to perform\n1.add\t2.sub\n");
		 do {
			 i=reader.nextInt();
			 if(i==1)
				 add();
			 else if (i==2) 
				 sub();
			 else
				 System.out.println("Choose the wrong, please choose again.");
			 
		 }while(i!=1&&i!=2);
		 output(sr,sv);
		 reader.close(); //关闭数据流
		
	 }
}

类与对象实验报告
2)面向对象

import java.util.Scanner;
//一个名为“复数”的类,包含复数的实部和虚部(数据成员),以及复数之间的基本算术运算:加、减(方法成员),并要求复数加减运算,程序运行中能对给定的复数进行运算,并打印运算的结果。
//面向对象编程
public class Complex {
    double real;//实部和虚部
    double image;
    Complex(){  //编写无参构造方法
        this.real=0.0;
        this.image=0.0;
    }
    Complex(double real,double image){ //编写有参构造方法,给实部和虚部赋值
        this.real=real;
        this.image=image;
    }
    void add(Complex c1, Complex c2){ //编写加法参数为对象类型
        this.real=c1.real+c2.real;
        this.image=c1.image+c2.image;
        System.out.println(this.real+"+"+this.image+"i");
    }
    public void sub(Complex c1,Complex c2){
        this.real=c1.real-c2.real;
        this.image=c1.image-c2.image;
        System.out.println(this.real+"+"+this.image+"i");
    }

    public static void main(String[] args){
        System.out.println("请输入第一个实部和虚部:");
        Scanner a=new Scanner(System.in);
        Complex c1=new Complex(a.nextDouble(),a.nextDouble());//创建对象并给第一个复数赋值
        System.out.println("请第二个输入实部和虚部:");
        Complex c2=new Complex(a.nextDouble(),a.nextDouble());
        Complex c3=new Complex();
        int i; //定义运算方向变量
		System.out.printf("Which operation do you want to perform\n1.add\t2.sub\n");
		do {
			 i=a.nextInt();
			 if(i==1) {
				 System.out.print("两复数之和为:");
			        c3.add(c1,c2);// 也可以c1或c2.add(c1,c2)一样的 这里主要是学习一下这个方法  下同
			 }
				
			 else if (i==2) {
				 System.out.print("两复数之差为:");
			        c3.sub(c1,c2);
			 }
			 else
				 System.out.println("Choose the wrong, please choose again.");
			 
		 }while(i!=1&&i!=2);
       a.close();
       //c.close();
    }
}

类与对象实验报告
2、用类来描述游戏角色的交手次数、经验值、生命值之间的关系,并断定角色决斗的胜负。
1)、两游戏角色决斗。角色1交手次数+1,生命值-1,经验值+2;角色2交手次数+1,生命值-2,经验值+3。经验值每增加50时,生命值+1;生命值<0判为负。生命值初始为1000,经验值初始为0。
2)、给定二个不同的角色,判定交手的胜负关系。
3)、实验报告给出决斗结果和交手次数
4)、实验报告给出所有源代码。

//定义玩家类
class player{
	//下列变量为生命值、经验值、减生命值、加成经验值、奖励生命值、计数
	int HP,EXP,HPC,EXPC,award,count=0;
	//定义战斗结果变量
	boolean fail=false;
	//构造方法
	player(int HP,int EXP,int HPC,int EXPC,int award){
		this.HP=HP;
		this.EXP=EXP;
		this.HPC=HPC;
		this.EXPC=EXPC;
		this.award=award;
	}
	//定义战斗过程方法
	public boolean fight(){
		HP-=HPC; //生命值损耗
		EXP+=EXPC; //经验加成
		if(EXP>=50){ //生命值加成
			HP+=award;
			EXP-=50;
		}
		count++;  //记录战斗次数
		if(HP<=0) //判断战斗结果为负
		fail=true;
		return fail;
	}
}
//定义游戏主类
public class fightgame{
	public static void main(String[] args){
		player p1=new player(1000,0,1,2,1);//创建玩家一 并初始化数据
		player p2=new player(1000,0,2,3,1);//创建玩家二 并初始化数据
		while(!p1.fight()&&!p2.fight()){
			//战斗开始
			p1.fight();
			p2.fight();

		}
		//宣布结果
		if(p1.fail&&!p2.fail)
			System.out.println("p2胜利,p1失败,共战斗"+p1.count+"次");
		else if(!p1.fail&&p2.fail)
			System.out.println("p1胜利,p2失败,共战斗"+p1.count+"次");
		else 
			System.out.println("平局,共战斗"+p1.count+"次");
	}
}


类与对象实验报告

相关标签: java小练习题