1. 定义一个工具类
其中提供了对于整形数组和double类型数组的一些工具方法。方法分别有:
1.求数组值的和.
2.求数组中的最大值
3.对数组进行升序排序.
4.对数组进行倒序排序(也就是反转数组)
工具类要求:
a.私有化构造方法
b.不希望被继承
importjava.util.Arrays;
public class ToolsClass1 {
public static void main(String[] args) {
Instrument instrument=new Instrument();
instrument.SumAll();
instrument.Max();
instrument.RiseSort();
instrument.DownSort();
}
}
class Instrument{
static int [] array1={12,9,23,6,5,9,15,26};//定义并初始化整形数组array1
static double [] array2={12.232,9.235,56.234,63.964,9.1235,24.1235,17.2365,23.0};//定义并初始化浮点形数组array2
static int sum1=0;
static double sum2=0;
int max1=array1[0];
double max2=array2[0];
Instrument(){//构造函数
}
static void SumAll(){//求数组中各元素的和
for(int i=0;i<array1.length;i++){
sum1+=array1[i];
}
for(int j=0;j<array2.length;j++){
sum2+=array2[j];
}
System.out.println("整形数组中各元素的和为:" +sum1);
System.out.println("浮点形数组中各元素的和为:" +sum2);
}
void Max(){//求数组的最大值
for(int k=0;k<array1.length;k++){
if(array1[k] > max1){
max1=array1[k];
}
}
System.out.println("整形数组中的最大值为:" + max1);
for(int m=0;m<array2.length;m++){
if(array2[m] > max2){
max2=array2[m];
}
}
System.out.println("浮点形数组中的最大值为:" + max2);
}
static void RiseSort(){//将数组进行升序排列
Arrays.sort(array1);
System.out.println("整形数组的升序排列为:");
for(int i=0;i<array1.length;i++){
System.out.print(array1[i] + " ");
}
System.out.println();
Arrays.sort(array2);
System.out.println("浮点形数组的升序排列为:");
for(int i=0;i<array2.length;i++){
System.out.print(array2[i] + " ");
}
System.out.println();
}
static void DownSort(){//将数组进行降序排列
Arrays.sort(array1);
System.out.println("整形数组的将序排列为:");
for(int i=array1.length-1;i>0;i--){
System.out.print(array1[i] + " ");
}
System.out.println();
Arrays.sort(array2);
System.out.println("浮点形数组的将序排列为:");
for(int i=array2.length-1;i>0;i--){
System.out.print(array2[i] + " ");
}
System.out.println();
}
}
2. a.定义一个英雄类 Hero
属性:(全部私有,提供公共方法让外部访问)
年龄, 血量 ,攻击力,防御力
方法:
释放技能,加血.
必须至少包含一个构造方法,且该构造方法可以初始化所有四个成员变量
b.定义一个类BatMan继承Hero类
方法:
飞行(方法中输出一行打印"飞行")
c.定义一个SuperBatMan类继承 BatMan类
方法:
重写飞行方法(方法中输出一行打印"超级飞行")
最终分别创建BatMan对象和SuperBatMan对象,并调用飞行方法.
public class Hero {
private int age;
private double bland;
private double agrrsive;
private double protection;
public static void main(String[] args) {
Hero hero=new Hero(29,89.6,200.00,150.0);
hero.Skill();//创建主类对象
System.out.println("加血后的血量为:" + hero.RiseBland(50) + "PH");
BatMan batMan=new BatMan();//创建BatMan类对象,在调用子类对象的进程中,必定会先去调用主类的构造方法.在子类的构造函数中,用super(参数列表)进行调用主类的构造函数.
batMan.Flay();//调用BatMan类的方法
SuperBatMan superbatman=new SuperBatMan();//创建SuperBatMan类的对象
superbatman.Flay();//此类中的Flay方法与BatMan中的Flay方法构成重写,因此用子类对象调用的方法优先执行子类中的Flay方法.
}
Hero(int ageParm,double blandParm,double agrrsiveParm,double protectionParm){
age=ageParm;
bland=blandParm;
agrrsive=agrrsiveParm;
protection=protectionParm;
}
void Skill(){
this.agrrsive=agrrsive*2;
this.bland=bland/2.0;
System.out.println("释放技能之后的攻击力为:" + this.agrrsive);
System.out.println("释放技能之后的血量为:" + this.bland + "PH");
}
double RiseBland(double bland1){
this.bland=bland+bland1;
return this.bland;
}
}
class BatMan extends Hero{
BatMan() {
super(23, 56.23, 150.0, 90.50);//继承中,子类的构造过程中,必定会先去调用父类的构造函数,并且在子类的构造函数中的第一行用super(参数列表)去调用父类的构造函数.
}
void Flay(){
System.out.println("BatMan类中的飞行方法:" + "---------------飞行");
}
}
class SuperBatMan extends BatMan{
void Flay(){//与BatMan中的void Flay()方法构成重写
System.out.println("SuperBatMan类中的飞行方法:" + "---------------超级飞行");
}
}
3. 实现一个猜数的小游戏.
随机产生一个数(a)。
Scanner 的方式来输入一个数字,并提供反馈,告诉用户该输入的值比a大还是比a小,直到最终用户猜中,显示结果.
importjava.util.*;
public class Guess {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.print("请用户说出你猜测的整形数:");
System.out.println(" ");
int b=sc.nextInt();
Guess guess=new Guess();
guess.Tickling(b);
}
void Tickling(int b){
int a=(int)(Math.random()*100+1);
System.out.print("系统自动产生的随机数是a: " + a);
System.out.println(" ");
if(a!=b){
do{ if(a<b){
System.out.println("您输入的值比a大,请重新输入:");
break;
}
else{
System.out.println("您输入的值比a小,请重新输入:");
break;
}
}
while(a!=b);
}
else{
System.out.println("恭喜您,猜中了数字a的值:");
}
}
}
C编程作业:
1. #include<stdio.h>
void main()
{
int x,y,z;
int max1=0;
int max2=0;
printf("请分别输入三个整数:");
scanf("%d%d%d",&x,&y,&z);
max1=(x>y)?x:y;
max2=(max1>z)?max1:z;
printf("三个数中的最大值为:%d\n",max2);
}
2. #include<stdio.h>
void main(){
int i;
int sum1=0;
int sum2=1;
for(i=1;i<=20;i++){
sum2 *=i;
sum1 +=sum2;
}
printf("计算结果为:%d\n",sum1);
}
3. #include<stdio.h>
void main()
{
long int a;
int b1,b2,c1,c2,d1,d2,e1,e2,f1,f2;
printf("请输入一个五位数的整形数:a");
scanf("%d",&a);
b1=a%10;
c1=(a%100)/10;
d1=(a%1000)/100;
e1=(a/1000)%10;
f1=a/10000;
b2=(b1+6)%8;
c2=(c1+6)%8;
d2=(d1+6)%8;
e2=(e1+6)%8;
f2=(f1+6)%8;
printf("最后的结果为:%d%d%d%d%d\n",f2,e2,d2,c2,b2);
}