java基础题

 
一:增,删,改,查,如使用面向对象
----------------------------------------------------------------------------------------------------------------
 //增加 
   public void AddStudent(){
   String answer;
   int i=3;//这里原本是0
   do{
    System.out.println("您要添加学生吗?(y/n)");
    answer=a.next();
    if(!answer.equals("y")){
     break;
    }
    Student input=new Student();
    
    System.out.println("请输入要添加学生的学号");
    input.xuehao=a.nextInt();
    System.out.println("请输入要添加学生的姓名");
    input.name=a.next();
    break;
    
    src[i]=input;//这里原本是+4
    i++;
   }while(!answer.equals("n"));
  }
  //显示文本
  public int   showAllStudent(){//
   for(int i=0;i<src.length;i++){
    if(src[i]!=null){
     System.out.println(src[i]);
    }
    
   }
    System.out.println("1:增加学生 2:删除学生3:修改学生4:返回");
    return a.nextInt();
  }
------------------------------------------------------------------------------------------------------------------ 
 //修改

  public void lookStudent(){
   
   System.out.println("请您输入您要找的人的姓名");
   String c=a.next();
   for(int i=0;i<src.length;i++){
    if(src[i]!=null){
    if(c.equals(src[i].name)){
     System.out.println("请您输入姓名");
     src[i].name=a.next();
     System.out.println("请您输入您要修改的学号");
     src[i].xuehao=a.nextInt();
      
     break;
    }
    }else{
     System.out.println("没有您要找的那个人");
     break;
    }
   }
-----------------------------------------------------------------------------------------------------------
 //查询
  public void chaxu(){
   
   System.out.println("请您输入您要查询的学生姓名");
   String  m=a.next();
   for(int i=0;i<src.length;i++){
    if(src[i]!=null){
    if(m.equals(src[i].name)){
   
  //显示查询的学生; 
     System.out.println(src[i]);
     break;    
    }
    }else {
     System.out.println("没有这个人");
     break;
    }
   }
  }
------------------------------------------------------------------------------------------------------------
 //删除
  public void deleteStudent(){
   System.out.println("请您输入您要删除的学生");
    String c=a.next();
    int cp=0;
    boolean f = false;
    for(int i=0;i<src.length;i++){
     
         if(src[i]!=null){
       if(c.equals(src[i].name)){
            f = true;
           cp=i;
           break;
       }
         }else{
         System.out.println("没有这个人");
         break;
         }
    }
     if(f){
      for(int i=cp;i<src.length-1;i++){
       src[i]=src[i+1];
}
}
-----------------------------------------------------------------------------------------------------------------
推箱子游戏:布局:
   使用了二维数组:
java中用二维数组与c#中的二维数组的区别;
如:java中用:a[][] arr=new a[5][5];
如:c#中用: a[,]   arr=new a[5,5];

----------------------------------------------------------------------------------------------------------------
推箱子游戏:
rt java.util.Scanner;
public class Boos {
        public static void main(String[] args) {
        // TODO code application logic here
        int[][] arr=new int[10][10];//地图
        int rx=0;//人的行数
        int ry=0;//人的列数
        arr[rx][ry]=1;//放入一个人到地图
        int xx=5;//箱子的坐标
        int xy=5;
        arr[xx][xy]=2;//放入一个箱子到地图
        int mx=2;//目地坐标
        int my=8;
        arr[mx][my]=3;//放入目地地
            
        //移动人
        Scanner in=new Scanner(System.in);
        
        
        while(true){
         
         //显示地图
         for(int i=0;i<10;i++){
          for(int j=0;j<10;j++){
           if(arr[i][j]==0){
            System.out.print("□");
           }else if(arr[i][j]==1){
            System.out.print("囚");
           }else if(arr[i][j]==2){
            System.out.print("△");
           }else if(arr[i][j]==3){
            System.out.print("☆");
           }
          }
          
          System.out.println();
         }
         
         if(xx==mx && xy==my){
          break;
         }
         
         
         System.out.print("请问要向哪走:");
         String t=in.next();
         
         if(t.equals("w")){
          if(arr[rx-1][ry]==2){//有箱子
           xx--;
           arr[xx][xy]=2;
           arr[rx][ry]=0;//人移开了,所以人原来位置变为空地
           rx--;
           arr[rx][ry]=1;//人移到当前位置 
          }else{
           arr[rx][ry]=0;//人移开了,所以人原来位置变为空地
           rx--;
           arr[rx][ry]=1;//人移到当前位置 
          }
          
          
         }else if(t.equals("a")){
          if(arr[rx][ry-1]==2){
           xy--;
           arr[xx][xy]=2;
           arr[rx][ry]=0;
           ry--;
           arr[rx][ry]=1;
          }else{
           arr[rx][ry]=0;
           ry--;
           arr[rx][ry]=1;
          }
          
         }else if(t.equals("s")){
          if(arr[rx+1][ry]==2){
           xx++;
           arr[xx][xy]=2;
           arr[rx][ry]=0;
           rx++;
           arr[rx][ry]=1;
          }else{
           arr[rx][ry]=0;
           rx++;
           arr[rx][ry]=1; 
          }
          
         }else if(t.equals("d")){
          if(arr[rx][ry+1]==2){
           xy++;
           arr[xx][xy]=2;
           arr[rx][ry]=0;
           ry++;
           arr[rx][ry]=1;
          }else{
           arr[rx][ry]=0;
           ry++;
           arr[rx][ry]=1; 
          }
          
         }
         
        }
        
        System.out.println("胜利");
        
        
    }
----------------------------------------------------------------------------------------------------------------
万年历:
import java.util.*;
public class wnl
{
 public static void main(String[] args){
  Scanner input=new Scanner(System.in);
  System.out.println("输入年份");
  int year=input.nextInt();
  System.out.println("输入月份");
  int mouth=input.nextInt();
  int day=0;
  int d=0;
  for (int y=1900;y<year ;y++ )//计算总年天数
  {
   if (y%4==0&&y%100!=0||y%400==0)
   {
    day=day+366;
   }else {
    day=day+365;
   }
  }
  for (int m=1;m<mouth;m++ )//计算这一年的月份天
  {
   switch (m)/这段代码的开始;为什么要这段代码;
   {
   case 1:
   case 3:
   case 5:
   case 7:
   case 8:
   case 10:
   case 12:
    day=day+31;
    break;
   case 2:
    if (year%4==0&&year%100!=0||year%400==0)
    {
     day=day+29;
    }else {
     day=day+28;
    }
    break;
   default:
    day=day+30;
    break;/这段代码的结束;
   }
  }//计算总天数结束
  switch (mouth)//计算这一月的月份天数开始
  {
   
   
   case 1:
   case 3:
   case 5:
   case 7:
   case 8:
   case 10:
   case 12:
    d=31;  
    break;
   case 2:
    if (year%4==0&&year%100!=0||year%400==0)
    {
     d=29;
    }else {//在被year%4==0&&year%100!=0下的任何一个的条件下满足的情况使用这个;
     d=28;
    }
    break;
   default:
 /*这段代码是什么意思*/ d=d+30;//注意default:只属于switch循环的,,不能放在if里面;
    break;
   }//计算这一月的月份天数结束;
  System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
  for (int c=1;c<=(day+1)%7;c++ )//输出循环;(day+1)%7代表什么意思;
  {//
   System.out.print("\t");//空格
  }  
  for (int a=1;a<=d ;a++ ){
   System.out.print(a+"\t");//输出操作;
   if (((day+1)%7+a)%7==0)//7格换一行;(day+1)%7代表初始的空格数;a代表它一行排序的个数;
   {
    System.out.println();//换行;
   }
  }
 }
}//输出循环结束
-----------------------------------------------------------------------------------------------------------------
好题目:
/*1.百元买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡每3只1元;一百元买一百只鸡,要求三种鸡都要买,有多少种购买组合?
*/
class  A1
{
 public static void main(String[] args) 
 {
  for(int i=1;i<20;i++){
   for(int j=1;j<33;j++){
    for(int y=3;y<300;y+=3){
     if(i*5+j*3+y/3==100&&i+j+y==100){
      System.out.print("公鸡数为:"+i);
      System.out.print("母鸡数为:"+j);
      System.out.println("小鸡数为:"+y);
     }
    }
   }
  }

 }
}
--------------------------------------------------------------------------------------------------------------
  /*每天如此,到
15.猴子摘了一堆枣N个,第一天吃了一半,还嫌不过瘾,又多吃了一个:第二天又吃了剩下的一半零一个:以后第十天,猴子一看只剩下一个了。问最初有多少个枣子?*/
import java.util.*;
public class B
{
 public static void main(String[] args) 
 {
     int n=10;
  int sum=1;
   
  while(n>0){
      
    sum=(sum+1)*2;
         n--;
  } 
  System.out.println(sum);

 }
}
---------------------------------------------------------------------------------------------------------------
      /*
。.水仙花数问题:100-999之间的所有水仙花数有哪些,所谓的水仙花数是个十百位各自的立方总和等于本身*/
 import java.util.*;
 public class C{
 public static void main(String[] args){
     
 
   for(int i=100;i<=999;i++){
   int g=i%10;
   int s=i/10%10;
   int b=i/100%10;
  
      if(i==b*b*b+s*s*s+g*g*g){
         System.out.println(i);
   }
  
   
  }
 }
}
---------------------------------------------------------------------------------------------------------------
4.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
 
 */
 import java.util.*;
 public class D                            
{
 public static void main(String[] args) 
 {
   
      for(int a=1;a<=4;a++){
    
      for(int b=1;b<=4;b++){
      
     for(int c=0;b<=4;b++){
      if(a!=b&&a!=c&&b!=c){
       System.out.print(a);
       System.out.print(b);
       System.out.print(c+"\t");
      
      
      }  
      
     }
     
    }


     
   }
       
 }
}
-----------------------------------------------------------------------------------------------------
  /*。素数*/
  import java.util.*;
 public class E{
 public static void main(String[] args){
  Scanner input=new Scanner(System.in);

   int a=input.nextInt(); 
   boolean f=true;
 
   for(int i=2;i<=a;i++){
    if(a%i==0){
     f=false;
     break;
    }
   
   if(f==true){
    System.out.println("素数"+a);
  
   } 
  }
 }
}
------------------------------------------------------------------------------------------------------------
/*.打印斐波那契(Fibonacci)数列:如1,1,2,3,5,8,13,21......
a=0;
a=1;
a=0+1=1;
a=1+1=2;
a=1+2=3;
a=2+3=5;
a=3+5=8;
a=5+8=13;
a=8+13=21;
*/
class  F
{
 public static void main(String[] args) 
 { 
  int b=1;
  for(int a=1;a<100;a=a+b,b=a+b){
    System.out.print(a);
    System.out.print(b);  
  }
 }
}
------------------------------------------------------------------------------------------------------------
/*

 
7.海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,
多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,
拿走了一份。第二只猴子把剩下的桃子又平均分成五份,
又多了一个,它同样把多的一个扔入海中,
拿走了一份,第三、第四、第五只猴子都是这样做的,
问海滩上原来最少有多少个桃子?问海滩上原来最少有多少个桃子?
sum=sum/5-1;  5*sum+1=sum;

sum=(sum/5-1)/5-1;[(sum+1)*5+1]*5=sum;

*/
class  G
{
 public static void main(String[] args) 
 {
  int a=5;
  int sum=1;
  while(a>0){
     sum=(sum+1)*5;
    a--;
  }
  System.out.println(sum);
  
 }
}
// x
// x/5 x%5==1  4 
for(int i=6;i>=6;i++){
 for(int i=6;i>=6;i++){
  for(int i=6;i>=6;i++){
   for(int i=6;i>=6;i++){
    for(int i=6;i>=6;i++){
     int sum=sum+sum%5-1;
    }
   }
  }
 }
}
}
------------------------------------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值