Java和c作业

来源:互联网 发布:淘宝申请售后只有维修 编辑:程序博客网 时间:2024/05/21 10:04

1.. 定义一个工具类其中提供了对于整形数组和double类型数组的一些工具方法

方法分别有:1.求数组值的和.

2.求数组中的最大值

3.对数组进行升序排序.

4.对数组进行倒序排序(也就是反转数组)

工具类要求:a.私有化构造方法b.不希望被继承

eg:package JavaSe;
import java.util.Arrays;
public class Homework1 {
public static void main(String[]args){
int sum=0;
double[]arr={5,56,84,6,84,54,6,5,3,51};
function.setsum(arr);
         function.sortarr(arr);
         function.backarr(arr);
         function.getMax(arr);
}
}
final class function{
private function(){
}
static  void setsum(double[] arr){      //求数组的和
int sum=0;
for(int i=0;i<arr.length;i++){
sum+=arr[i];
    }
System.out.println(sum);
}


static void  sortarr(double[]  arr){     //升序排序
for(int i =0;i<arr.length;i++){
for(int j=i; j<arr.length-1;j++){
if(arr[i]>arr[j+1]){
double temp= arr[i];
arr[i]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int i=0; i<arr.length; i++){    //输出
   System.out.print(arr[i]+" ");
}

static void  backarr(double[] arr){        //倒叙排序
System.out.println("       ");
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]<arr[j]){
double temp= arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for(int i=0; i<arr.length; i++){
System.out.print(arr[i]+" ");
}
}
static void getMax(double arr[]){      //获得最大值
   int max=0;
   System.out.println("        ");
   for(int i=0; i<arr.length; i++){
       if(max<arr[i]){
           max=(int) arr[i];
       }
       }
   System.out.println("数组最大值为"+max);
 }
}

2.2. a.定义一个英雄类 Hero

属性:(全部私有,提供公共方法让外部访问)

年龄, 血量 ,攻击力,防御力

方法:释放技能,加血.

须至少包含一个构造方法,且该构造方法可以初始化所有四个成员变量

b.定义一个类BatMan继承Hero类

方法: 飞行(方法中输出一行打印"飞行")

c.定义一个SuperBatMan类继承 BatMan类 方法:

重写飞行方法(方法中输出一行打印"超级飞行")

最终分别创建BatMan对象和SuperBatMan对象,并调用飞行方法.

eg:

public class Homework2 {
      public static void main(String[]args){
     Hero iron=new Hero();
     iron.speak(32,1000,100,10);
     BatMan second = new BatMan();
          SuperBatMan third = new SuperBatMan();
          second.fly();
          third.fly();


      }
}
class Hero{
   private int age;
   private int blood;
   private int attack;
   private int defense;
Hero(){
}
void setage(int age){
this.age=age;
}
int getage(int age){
return age;
}
void setBlood(int blood){
   this.blood= blood;
    }
int getBlood(int blood){
        return blood;
    }
void setAattac(int attack){
   this.attack= attack;
}
int getAttack(int attack){
        return attack;
    }
void setDefense(int defense){
   this.defense= defense;
}
int getDefense(int defense){
   return defense;
}
void  recoverHp(){
  blood+=10;
  System.out.println("血量回复" + blood);
  }
void speak(int age,int blood ,int attack ,int defense){
 System.out.println("我的属性是" + " 年龄"+age + " 血量" +blood + " 攻击力"+attack + " 防御力"+defense);
}
}
class BatMan extends Hero{
    void fly(){
    System.out.println("飞行");
    }
}
class SuperBatMan extends BatMan{
    void fly(){
        System.out.println("超级飞行");
    }
}


3. 实现一个猜数的小游戏.随机产生一个数(a)。Scanner 的方式来输入一个数字

并提供反馈,告诉用户该输入的值比a大还是比a小,直到最终用户猜中,显示结果

import java.util.Scanner;
public class Homework31 {
public static void main(String[]args){
    Scanner sr = new Scanner(System.in);
    int count = (int)(Math.random()*1001);
    System.out.println("猜下彩票的中奖号码在0到1000之间");
    while(true){
        int num = sr.nextInt();
        if(num==count){
            System.out.println("恭喜你中奖了");
            break;
        }
        else if(num>count){
            System.out.println("大了");
            continue;
        }else if(num<count){
            System.out.println("小了");
            continue;
        }
    }
}
}


C语言题:

1. 给你任意三个整形数据,找出其中最大一个整形数。

#include<stdio.h>
void main(){
int num1,num2,num3,Max;
scanf_s("%d,%d,%d,&num1,&num2,&num3);
if(num1>num2){
Max=num1;
}else {
Max=num2;
}
if(num3>Max){
Max=num3;
}
else{
Max=Max;
}
printf("三个数中最大值为:%d\n",Max);
}


2.求1+2!+3!+...+20!的和。

#include<stdio.h>
void main(){
long sum=0;
long n=1;
for(int i=1;i<=20;i++){
n=n*i;
sum+=n;
}
printf("1!+2!+3!+...+20!的和为:d|n",sum);
}


3.编程完成数据加密.数据是五位的整数

加密规则为:每位数字都加上6,然后用和除以8的余数代替该数字

再将第一位和第五位交换,第二位和第四位交换.

#include<stdio.h>
void mian(){
int x,i,temp1,temp2;
int k=56596;
int arr[5];
printf("请输入一个五位数的整数\n");
scanf(%d,&x);
for(i=0;i<5;i++){
arr[i]=i/k;
x-=(arr[i]*k);
k/=10;
arr[i]=(arr[i]+6)%8;
}
for(i=0;i<5;i++){
printf("%d\n",arr[i]);
}
temp1=arr[0];
arr[0]=arr[4];
arr[4]=temp1;
temp2=arr[1];
arr[1]=arr[3];
arr[3]=temp2;
for(i=0;i<5;i++){
printf("%d\n",arr[i]);
}
}

原创粉丝点击