JAVA程序代码(20)
- 格式:doc
- 大小:117.00 KB
- 文档页数:30
java顺序表的基本操作代码Java顺序表是一种基于数组实现的线性结构,具有随机访问、元素插入和删除等基本操作。
在Java中,我们可以通过定义一个数组来创建一个顺序表,并通过编写一些基本操作代码来实现对该顺序表的操作。
一、顺序表的定义和初始化在Java中,我们可以通过定义一个数组来创建一个顺序表。
下面是一个简单的代码示例:```public class SeqList<T> {private Object[] elementData; // 存储元素的数组private int size; // 当前元素个数// 构造函数public SeqList(int capacity) {elementData = new Object[capacity];size = 0;}}```在上述代码中,我们定义了一个SeqList类,其中包含了存储元素的数组elementData和当前元素个数size两个成员变量。
构造函数SeqList(int capacity)用于创建指定长度为capacity的数组,并将当前元素个数初始化为0。
二、顺序表的插入操作1. 在指定位置插入元素在Java中,我们可以通过下标来访问数组中的元素。
因此,在进行插入操作时,需要先将要插入位置之后的所有元素向后移动一位,然后再将新元素插入到指定位置上。
下面是一个简单的代码示例:```// 在指定位置插入元素public void insert(int index, T element) {if (index < 0 || index > size) {throw new IndexOutOfBoundsException("插入位置越界"); }// 判断数组是否已满,若已满则扩容if (size == elementData.length) {ensureCapacity(size * 2);}// 将要插入位置之后的所有元素向后移动一位for (int i = size - 1; i >= index; i--) {elementData[i + 1] = elementData[i];}// 插入新元素elementData[index] = element;size++;}// 扩容方法private void ensureCapacity(int minCapacity) {if (minCapacity > elementData.length) {Object[] newArray = new Object[minCapacity];System.arraycopy(elementData, 0, newArray, 0, size);elementData = newArray;}}```在上述代码中,我们首先判断要插入的位置是否越界。
/*1. 打印:--------------------------------------------------2. 求两个浮点数之商。
3. 对一个数四舍五入取整。
4. 判断一个数是否为奇数5. 求一个数的绝对值。
6. 求两个数的最大值。
7. 求三个数的最大值。
8. 求1-n之和。
9. 求1-n中的奇数之和。
10. 打印自2012年起,n年内的所有闰年。
11. 打印n行星号组成的等腰三角形。
12. 求两个正整数的最小公倍数。
13. 判断一个数是否为质数。
14. 求两个正整数的最大公约数。
15. 求一个正整数n以内的质数。
16. 求一个正整数n以内的质数。
17. 分别利用递推算法和递归算法求n! 。
*/class A{static void f(){System.out.println("----------------------");//1.打印:-----------}static double quzheng(double a){int b;System.out.println((b=(int)(a+0.5)));//2.求两个浮点数之商。
return(b);}static double qiushang(double a,double b){ //3.对一个数四舍五入取整System.out.println((a/b));return(a/b);}static boolean odd(int c){ //4.判断一个数是否为奇数if(c%2==0){return(false);}else{return(true);}}static int juedui(int d){ //5.求一个数的绝对值。
if(d<0){d=0-d;System.out.println(d);else{d=d;System.out.println(d);}return(d);}static int max(int e,int f){ //6.求两个数的最大值。
20个java案例以下是20个Java案例,涵盖了不同的主题和功能。
每个案例都有一个简要的描述和示例代码。
1. 计算两个数的和。
描述,编写一个程序,计算两个整数的和并输出结果。
示例代码:java.int num1 = 10;int num2 = 5;int sum = num1 + num2;System.out.println("两个数的和为," + sum);2. 判断一个数是否为偶数。
描述,编写一个程序,判断一个整数是否为偶数,并输出结果。
示例代码:java.int num = 6;if (num % 2 == 0) {。
System.out.println(num + "是偶数。
");} else {。
System.out.println(num + "不是偶数。
");}。
3. 求一个数的阶乘。
描述,编写一个程序,计算一个正整数的阶乘,并输出结果。
示例代码:java.int num = 5;int factorial = 1;for (int i = 1; i <= num; i++) {。
factorial = i;}。
System.out.println(num + "的阶乘为," + factorial);4. 判断一个字符串是否为回文字符串。
描述,编写一个程序,判断一个字符串是否为回文字符串,并输出结果。
示例代码:java.String str = "level";boolean isPalindrome = true;for (int i = 0; i < str.length() / 2; i++) {。
if (str.charAt(i) != str.charAt(str.length() 1 i)) {。
isPalindrome = false;break;}。
代码:一:::::::public class Cell {// 格子:食物或者蛇的节点private int x;private int y;private Color color;// 颜色public Cell() {}public Cell(int x, int y) {this.x = x;this.y = y;}public Cell(int x, int y, Color color) { this.color = color;this.x = x;this.y = y;}public Color getColor() {return color;}public int getX() {return x;}public int getY() {return y;}public String toString() {return"[" + x + "]" + "[" + y + "]";}}二::::::::::public class Worm {private int currentDirection;// 蛇包含的格子private Cell[] cells;private Color color;public static final int UP = 1;public static final int DOWN = -1;public static final int RIGHT = 2;public static final int LEFT = -2;// 创建对象创建默认的蛇:(0,0)(1,0)(2,0)······(11,0)public Worm() {// 构造器初始化对象color = Color.pink;// 蛇的颜色cells = new Cell[12];// 创建数组对象for (int x = 0, y = 0, i = 0; x < 12; x++) { // for(int y=0;;){}cells[i++] = new Cell(x, y, color);// 添加数组元素}currentDirection = DOWN;}public boolean contains(int x, int y) {// 数组迭代for (int i = 0; i < cells.length; i++) {Cell cell = cells[i];if (cell.getX() == x && cell.getY() == y) {return true;}}return false;}public String toString() {return Arrays.toString(cells);}public void creep() {for (int i = this.cells.length - 1; i >= 1; i--) {cells[i] = cells[i - 1];}cells[0] = createHead(currentDirection);}// 按照默认方法爬一步private Cell createHead(int direction) {// 根据方向,和当前(this)的头结点,创建新的头结点int x = cells[0].getX();int y = cells[0].getY();switch (direction) {case DOWN:y++;break;case UP:y--;break;case RIGHT:x++;break;case LEFT:x--;break;}return new Cell(x, y);}/*** food 食物**/public boolean creep(Cell food) {Cell head = createHead(currentDirection);boolean eat = head.getX() == food.getX() && head.getY() == food.getY();if (eat) {Cell[] ary = Arrays.copyOf(cells, cells.length + 1);cells = ary;// 丢弃原数组}for (int i = cells.length - 1; i >= 1; i--) { cells[i] = cells[i - 1];}cells[0] = head;return eat;}// 吃到东西就变长一格public boolean creep(int direction, Cell food) {if (currentDirection + direction == 0) {return false;}this.currentDirection = direction;Cell head = createHead(currentDirection);boolean eat = head.getX() == food.getX() && head.getY() == food.getY();if (eat) {Cell[] ary = Arrays.copyOf(cells, cells.length + 1);cells = ary;// 丢弃原数组}for (int i = cells.length - 1; i >= 1; i--) { cells[i] = cells[i - 1];}cells[0] = head;return eat;}// 检测在新的运动方向上是否能够碰到边界和自己(this 蛇)public boolean hit(int direction) {// 生成下个新头节点位置// 如果新头节点出界返回true,表示碰撞边界// ···············if (currentDirection + direction == 0) {return false;}Cell head = createHead(direction);if(head.getX() < 0 || head.getX() >= WormStage.COLS || head.getY() < 0|| head.getY() >= WormStage.ROWS) {return true;}for (int i = 0; i < cells.length - 1; i++) { if (cells[i].getX() == head.getX()&& cells[i].getY() == head.getY()) {return true;}}return false;}public boolean hit() {return hit(currentDirection);}// 为蛇添加会制方法// 利用来自舞台面板的画笔绘制蛇public void paint(Graphics g) {g.setColor(this.color);for (int i = 0; i < cells.length; i++) {Cell cell = cells[i];g.fill3DRect(cell.getX() * WormStage.CELL_SIZE, cell.getY()* WormStage.CELL_SIZE, WormStage.CELL_SIZE,WormStage.CELL_SIZE, true);}}}三:::::::::public class WormStage extends JPanel {/** 舞台的列数 */public static final int COLS = 35;/** 舞台的行数 */public static final int ROWS = 35;/** 舞台格子的大小 */public static final int CELL_SIZE = 10;private Worm worm;private Cell food;public WormStage() {worm = new Worm();food = createFood();}/*** 随机生成食物,要避开蛇的身体 1 生成随机数 x, y 2 检查蛇是否包含(x,y)* 3 如果包含(x,y) 返回 1 4 创建食物节点* */private Cell createFood() {Random random = new Random();int x, y;do {x = random.nextInt(COLS);// COLS列数y = random.nextInt(ROWS);// WOWS行数} while (worm.contains(x, y));return new Cell(x, y, Color.green);// 食物颜色/** 初始化的舞台单元测试 */public static void test() {WormStage stage = new WormStage();System.out.println(stage.worm);System.out.println(stage.food);}/*** 重写JPanel绘制方法paint:绘制,绘画,涂抹Graphics 绘图,* 理解为:绑定到当前面板的画笔*/public void paint(Graphics g) {// 添加自定义绘制!// 绘制背景g.setColor(Color.darkGray);// 背景色g.fillRect(0, 0, getWidth(), getHeight());g.setColor(Color.cyan);// 边框上的颜色// draw 绘制 Rect矩形g.drawRect(0, 0, this.getWidth() - 1, this.getHeight() - 1);// 绘制食物g.setColor(food.getColor());// fill 填充 3D 3维 Rect矩形突起的立体按钮形状g.fill3DRect(food.getX() * CELL_SIZE, food.getY() * CELL_SIZE,CELL_SIZE, CELL_SIZE, true);// 绘制蛇worm.paint(g);// 让蛇自己去利用画笔绘制private Timer timer;/*** 启动定时器驱动蛇的运行 1 检查碰撞是否将要发生* 2 如果发生碰撞:创建新的蛇和食物,重写开始* 3 如果没有碰撞就爬行,并检查是否能够吃到食物* 4如果吃到食物:重新创建新的食物* 5 启动重新绘制界面功能 repaint() 更新界面显示效果! repaint()* 方法会尽快调用paint(g) 更新界面!*/private void go() {if (timer == null)timer = new Timer();timer.schedule(new TimerTask() {public void run() {if (worm.hit()) {// 如果蛇碰到边界或自己worm = new Worm();// 创建新的蛇food = createFood();// 创建新食物} else {// 如果没有碰到自己boolean eat = worm.creep(food);// 蛇向前(当前方向)爬行,返回结果表示是否吃到食物if(eat) {// 如果吃到食物,就生成新食物food = createFood();}}repaint();}}, 0, 1000 / 5);this.requestFocus();this.addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent e) {int key = e.getKeyCode();switch (key) {case KeyEvent.VK_UP:creepForFood(Worm.UP);break;case KeyEvent.VK_DOWN:creepForFood(Worm.DOWN);break;case KeyEvent.VK_LEFT:creepForFood(Worm.LEFT);break;case KeyEvent.VK_RIGHT:creepForFood(Worm.RIGHT);break;}}});}private void creepForFood(int direction) { if (worm.hit(direction)) {worm = new Worm();food = createFood();} else {boolean eat = worm.creep(direction, food);if (eat) {food = createFood();}}}/** 软件启动的入口方法 */public static void main(String[] args) {// 启动软件....JFrame frame = new JFrame("贪吃蛇");// 一个画框对象frame.setSize(450, 480);// size 大小,setSize 设置大小// frame.setLocation(100,50);//Locationq位置frame.setLocationRelativeTo(null);// 居中// 设置默认的关闭操作为在关闭时候离开软件frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);// Visible可见的设置可见性frame.setLayout(null);// 关闭默认布局管理,避免面板充满窗口WormStage stage = new WormStage();// System.out.println("CELL_SIZE * COLS:"+CELL_SIZE * COLS);stage.setSize(CELL_SIZE* COLS, CELL_SIZE* ROWS);stage.setLocation(40, 50);stage.setBorder(new LineBorder(Color.BLACK));frame.add(stage);// 在窗口添加舞台stage.go();// 启动定时器驱动蛇自动运行}}。
Eclipse 常用快捷键Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。
Eclipse中有如下一些和编辑相关的快捷键。
1. 【ALT+/】此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。
2. 【Ctrl+O】显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。
3. 【Ctrl+/】快速添加注释,能为光标所在行或所选定行快速添加注释或取消注释,在调试的时候可能总会需要注释一些东西或取消注释,现在好了,不需要每行进行重复的注释。
4. 【Ctrl+D】删除当前行,这也是笔者的最爱之一,不用为删除一行而按那么多次的删除键。
5. 【Ctrl+M】窗口最大化和还原,用户在窗口中进行操作时,总会觉得当前窗口小(尤其在编写代码时),现在好了,试试【Ctrl+M】快捷键。
查看和定位快捷键在程序中,迅速定位代码的位置,快速找到Bug的所在,是非常不容易的事,Eclipse 提供了强大的查找功能,可以利用如下的快捷键帮助完成查找定位的工作。
1. 【Ctrl+K】、【Ctrl++Shift+K】快速向下和向上查找选定的内容,从此不再需要用鼠标单击查找对话框了。
2. 【Ctrl+Shift+T】查找工作空间(Workspace)构建路径中的可找到Java类文件,不要为找不到类而痛苦,而且可以使用“*”、“?”等通配符。
3. 【Ctrl+Shift+R】和【Ctrl+Shift+T】对应,查找工作空间(Workspace)中的所有文件(包括Java文件),也可以使用通配符。
4. 【Ctrl+Shift+G】查找类、方法和属性的引用。
这是一个非常实用的快捷键,例如要修改引用某个方法的代码,可以通过【Ctrl+Shift+G】快捷键迅速定位所有引用此方法的位置。
【2_1】//计算二个数的和class Example2_1 {public static void main(String args[]) {int x,y,s;x = 3;y = 5;s =x+y; //求和System.out.println("二数之和为:" + s);}}【2_2】//计算圆的面积class Example2_2 {public static void main(String args[]) {double pi,r,s;r = 10.8; //圆的半径pi = 3.1416;s = pi * r * r; //计算面积System.out.println("圆的面积为:" + s);}}【2_3】/* char 变量的用法*/class Example2_3 {public static void main(String args[]) {char ch1,ch2;ch1 = 88; // code for Xch2 = 'Y';System.out.print("ch1 and ch2:");System.out.println(ch1 + " " + ch2);}}【2_4】/* 布尔类型的用法*/class Example2_4 {public static void main(String args[]) {boolean b;b = false;System.out.println("b is " + b);b = true;System.out.println("b is " + b);// outcome of a relational operator is a boolean valueSystem.out.println("10 > 9 is " + (10 > 9));}}【2_5】public class Example2_5{public static void main(String[] agrs){//定义几个变量并赋值int a=41;int b=21;double x=6.4;double y=3.22;System.out.println("变量数值:");System.out.println("a="+a);System.out.println("b="+b);System.out.println("x="+x);System.out.println("y="+y);//加法System.out.println("加:");System.out.println("a+b="+(a+b));System.out.println("x+y="+(x+y));//减法System.out.println("减:");System.out.println("a-b="+(a-b));System.out.println("x-y="+(x-y));//乘法System.out.println("乘:");System.out.println("a*b="+(a*b));System.out.println("x*y="+(x*y));//除法System.out.println("除:");System.out.println("a/b="+(a/b));System.out.println("x/y="+(x/y));//从除法中求得余数System.out.println("计算余数:");System.out.println("a%b="+(a%b));System.out.println("x%y="+(x%y));//混合类型System.out.println("混合类型:");System.out.println("b+y="+(b+y));System.out.println("a*x="+(a*x));}}public class Example2_6{public static void main(String[] args){//定义若干整型数int i=37;int j=42;int k=42;System.out.println("变量数值");System.out.println("i="+i);System.out.println("j="+j);System.out.println("k="+k);//大于System.out.println("大于:");System.out.println("i>j="+(i>j));//falseSystem.out.println("j>i="+(j>i));//trueSystem.out.println("k>j="+(k>j));//false//大于等于System.out.println("大于等于:");System.out.println("i>=j="+(i>=j));//falseSystem.out.println("j>=i="+(j>=i));//trueSystem.out.println("k>=j="+(k>=j));//true//小于System.out.println("小于:");System.out.println("i<j="+(i<j));//trueSystem.out.println("j<i="+(j<i));//falseSystem.out.println("k<j="+(k<j));//false//小于等于System.out.println("小于等于:");System.out.println("i<=j="+(i<=j));//trueSystem.out.println("j<=i="+(j<=i));//falseSystem.out.println("k<=j="+(k<=j));//false//等于System.out.println("等于:");System.out.println("i==j="+(i==j));//falseSystem.out.println("k==j="+(k==j));//true//不等于System.out.println("不等于:");System.out.println("i!=j="+(i!=j));//trueSystem.out.println("k!=j="+(k!=j));//false}}class Example2_7{public static void main(String args[]){//字符char a1='银',a2='行',a3='帐',a4='号';//密鈅char secret='x';//异或运算加密a1=(char)(a1^secret); a2=(char)(a2^secret);a3=(char)(a3^secret); a4=(char)(a4^secret);System.out.println("密文:"+a1+a2+a3+a4);//再一次异或运算解密a1=(char)(a1^secret); a2=(char)(a2^secret);a3=(char)(a3^secret); a4=(char)(a4^secret);System.out.println("原文:"+a1+a2+a3+a4);}}【2_8】/* if结构*/public class Example2_8{public static void main(String args[]){int a=9,b=5,c=7,t;if(a>b){t=a; a=b; b=t;}if(a>c){t=a; a=c; c=t;}if(b>c){t=b; b=c; c=t;}System.out.println("a="+a+",b="+b+",c="+c);}}/* if-else-if 结构. */class Example2_9 {public static void main(String args[]) {int month = 4; // 4月份String season;if(month == 12 || month == 1 || month == 2){season = "冬天";}else if(month == 3 || month == 4 || month == 5){season = "春天"; }else if(month == 6 || month == 7 || month == 8){season = "夏天"; }else if(month == 9 || month == 10 || month == 11){season = "秋天"; }else{ season = "不合法的月份"; }System.out.println("4月是" + season + ".");}}【2_10】/* switch开关语句*/import java.applet.*;import java.awt.*;public class Example2_10 extends Applet{public void paint(Graphics g){int x=1,y=1;switch(x+y){case 1 :g.setColor(Color.red);g.drawString("i am 1",5,10);break;case 2:g.setColor(Color.blue);g.drawString("i am 2",5,10);// break;case 3:g.setColor(Color.green);g.drawString("i am 3",5,10);break;default:g.drawString("没有般配的",5,10);}}/*<APPLET CODE="Example2_10.class" WIDTH="200" HEIGHT="300"></APPLET>*/【2_11】/* for循环*/import javax.swing.JOptionPane;public class Example2_11{public static void main(String[] args){ int sum=0;for(int i=1;i<=100;i++){sum=sum+i;}JOptionPane.showMessageDialog(null,"1+2+3+...+100= "+sum);System.exit(0); //退出程序}}【2_12】/* while循环*/import javax.swing.JOptionPane;public class Example2_12{public static void main(String[] args){int s=1, i=1;while(i<=10){s=s*i;i++;}JOptionPane.showMessageDialog(null,"1*2*3*...*10= "+s);System.exit(0); //退出程序}}/* do-while循环*/import java.applet.*;import java.awt.*;public class Example2_13 extends Applet{public void paint(Graphics g){int i=1;do{g.drawOval(110-i*10,110-i*10,i*20,i*20);i++;}while(i<=10);}}/*<APPLET CODE="Example2_13.class" WIDTH="300" HEIGHT="300"></APPLET>*/【2_14】/* 使用break语句跳出循环 */import javax.swing.JOptionPane;class Example2_14{public static void main(String args[]){for(int i=0; i<100; i++){if(i == 10) break; // i=10时跳出循环JOptionPane.showMessageDialog(null,"i="+i);}JOptionPane.showMessageDialog(null,"循环已经结束!");System.exit(0); //退出程序}}/* 使用break语句跳出内循环 */class Example2_15{public static void main(String args[]){for(int i=1; i<6; i++){for(int j=1;j<3; j++){if(i == 3) break; // i=5时跳出循环int sum=i+j;System.out.println(i+"+"+j+"="+sum);}}System.out.println("循环已经结束!");}}【2_16】/* 使用"标签化中断"的break语句跳出循环 */class Example2_16{public static void main(String args[]){out: for(int i=1; i<6; i++) //设置标号{for(int j=1;j<3; j++){if(i == 3) break out; // i=3时跳出循环int sum=i+j;System.out.println(i+"+"+j+"="+sum);}}System.out.println("循环已经结束!");}}【2_17】/*continue语句打印三角形*/import javax.swing.JOptionPane;class Example2_17 {public static void main(String args[]) {String output="";for(int i=0; i<5; i++) {for(int j=0; j<5; j++) {if(j > i) {continue ;}output= output +"*"+" ";}output=output+"\n";}JOptionPane.showMessageDialog(null,output);System.exit(0);}}【2_18】/* 求一组数字的平均值*/import javax.swing.JOptionPane;class Example2_18 {public static void main(String args[]) {double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5};double result = 0;for(int i=0; i<5; i++){result = result + nums[i]; }JOptionPane.showMessageDialog(null,"平均值为:" + result / 5);System.exit(0);}}【2_19】// 二维数组赋值class Example2_19{public static void main(String args[]) {int twoD[][]= new int[4][5];int i, j, k = 0;for(i=0; i<4; i++)for(j=0; j<5; j++) {twoD[i][j] = k;k++;}for(i=0; i<4; i++) {for(j=0; j<5; j++)System.out.print(twoD[i][j] + " ");System.out.println();}}}【2_20】import java.util.*;class Example2_20{public static void main(String[] args){Vector v1 =new Vector();for (int i=1;i<10;i++){v1.addElement(" " + i);System.out.println(v1.toString());}v1.insertElementAt("abc",5);System.out.println("\n插入元素:"+v1.toString());}}【2_21】import java.util.*;public class Example2_21{ public static void main(String args[]){ String s="boy,java,Applet girl,Hat";StringTokenizer st=new StringTokenizer(s," ,"); //空格和逗号做分int number=st.countTokens();while(st.hasMoreTokens()){ String str=st.nextToken();System.out.println(str);}System.out.println("s共有单词:"+number+"个");}}。
java常用代码(20条案例)1. 输出Hello World字符串public class Main {public static void main(String[] args) {// 使用System.out.println()方法输出字符串"Hello World"System.out.println("Hello World");}}2. 定义一个整型变量并进行赋值public class Main {public static void main(String[] args) {// 定义一个名为num的整型变量并将其赋值为10int num = 10;// 使用System.out.println()方法输出变量num的值System.out.println(num);}}3. 循环打印数字1到10public class Main {public static void main(String[] args) {// 使用for循环遍历数字1到10for (int i = 1; i <= 10; i++) {// 使用System.out.println()方法输出每个数字System.out.println(i);}}}4. 实现输入输出import java.util.Scanner;public class Main {public static void main(String[] args) {// 创建一个Scanner对象scanner,以便接受用户的输入Scanner scanner = new Scanner(System.in);// 使用scanner.nextLine()方法获取用户输入的字符串String input = scanner.nextLine();// 使用System.out.println()方法输出输入的内容System.out.println("输入的是:" + input);}}5. 实现条件分支public class Main {public static void main(String[] args) {// 定义一个整型变量num并将其赋值为10int num = 10;// 使用if语句判断num是否大于0,如果是,则输出"这个数是正数",否则输出"这个数是负数"if (num > 0) {System.out.println("这个数是正数");} else {System.out.println("这个数是负数");}}}6. 使用数组存储数据public class Main {public static void main(String[] args) {// 定义一个整型数组nums,其中包含数字1到5int[] nums = new int[]{1, 2, 3, 4, 5};// 使用for循环遍历数组for (int i = 0; i < nums.length; i++) {// 使用System.out.println()方法输出每个数组元素的值System.out.println(nums[i]);}}}7. 打印字符串长度public class Main {public static void main(String[] args) {// 定义一个字符串变量str并将其赋值为"HelloWorld"String str = "Hello World";// 使用str.length()方法获取字符串的长度,并使用System.out.println()方法输出长度System.out.println(str.length());}}8. 字符串拼接public class Main {public static void main(String[] args) {// 定义两个字符串变量str1和str2,并分别赋值为"Hello"和"World"String str1 = "Hello";String str2 = "World";// 使用"+"号将两个字符串拼接成一个新字符串,并使用System.out.println()方法输出拼接后的结果System.out.println(str1 + " " + str2);}}9. 使用方法进行多次调用public class Main {public static void main(String[] args) {// 定义一个名为str的字符串变量并将其赋值为"Hello World"String str = "Hello World";// 调用printStr()方法,打印字符串变量str的值printStr(str);// 调用add()方法,计算两个整数的和并输出结果int result = add(1, 2);System.out.println(result);}// 定义一个静态方法printStr,用于打印字符串public static void printStr(String str) {System.out.println(str);}// 定义一个静态方法add,用于计算两个整数的和public static int add(int a, int b) {return a + b;}}10. 使用继承实现多态public class Main {public static void main(String[] args) {// 创建一个Animal对象animal,并调用move()方法Animal animal = new Animal();animal.move();// 创建一个Dog对象dog,并调用move()方法Dog dog = new Dog();dog.move();// 创建一个Animal对象animal2,但其实际指向一个Dog对象,同样调用move()方法Animal animal2 = new Dog();animal2.move();}}// 定义一个Animal类class Animal {public void move() {System.out.println("动物在移动");}}// 定义一个Dog类,继承自Animal,并重写了move()方法class Dog extends Animal {public void move() {System.out.println("狗在奔跑");}}11. 输入多个数并求和import java.util.Scanner;public class Main {public static void main(String[] args) {// 创建一个Scanner对象scanner,以便接受用户的输入Scanner scanner = new Scanner(System.in);// 定义一个整型变量sum并将其赋值为0int sum = 0;// 使用while循环持续获取用户输入的整数并计算总和,直到用户输入为0时结束循环while (true) {System.out.println("请输入一个整数(输入0退出):");int num = scanner.nextInt();if (num == 0) {break;}sum += num;}// 使用System.out.println()方法输出总和System.out.println("所有输入的数的和为:" + sum);}}12. 判断一个年份是否为闰年import java.util.Scanner;public class Main {public static void main(String[] args) {// 创建一个Scanner对象scanner,以便接受用户的输入Scanner scanner = new Scanner(System.in);// 使用scanner.nextInt()方法获取用户输入的年份System.out.println("请输入一个年份:");int year = scanner.nextInt();// 使用if语句判断年份是否为闰年,如果是,则输出"是闰年",否则输出"不是闰年"if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {System.out.println(year + "年是闰年");} else {System.out.println(year + "年不是闰年");}}}13. 使用递归实现斐波那契数列import java.util.Scanner;public class Main {public static void main(String[] args) {// 创建一个Scanner对象scanner,以便接受用户的输入Scanner scanner = new Scanner(System.in);// 使用scanner.nextInt()方法获取用户输入的正整数nSystem.out.println("请输入一个正整数:");int n = scanner.nextInt();// 使用for循环遍历斐波那契数列for (int i = 1; i <= n; i++) {System.out.print(fibonacci(i) + " ");}}// 定义一个静态方法fibonacci,使用递归计算斐波那契数列的第n项public static int fibonacci(int n) {if (n <= 2) {return 1;} else {return fibonacci(n - 1) + fibonacci(n - 2);}}}14. 输出九九乘法表public class Main {public static void main(String[] args) {// 使用两层for循环打印九九乘法表for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {System.out.print(j + "*" + i + "=" + (i * j) + "\t");}System.out.println();}}}15. 使用try-catch-finally处理异常import java.util.Scanner;public class Main {public static void main(String[] args) {// 创建一个Scanner对象scanner,以便接受用户的输入Scanner scanner = new Scanner(System.in);try {// 使用scanner.nextInt()方法获取用户输入的整数a和bSystem.out.println("请输入两个整数:");int a = scanner.nextInt();int b = scanner.nextInt();// 对a进行除以b的运算int result = a / b;// 使用System.out.println()方法输出结果System.out.println("计算结果为:" + result);} catch (ArithmeticException e) {// 如果除数为0,会抛出ArithmeticException异常,捕获异常并使用System.out.println()方法输出提示信息System.out.println("除数不能为0");} finally {// 使用System.out.println()方法输出提示信息System.out.println("程序结束");}}}16. 使用集合存储数据并遍历import java.util.ArrayList;import java.util.List;public class Main {public static void main(String[] args) {// 创建一个名为list的List集合,并添加多个字符串元素List<String> list = new ArrayList<>();list.add("Java");list.add("Python");list.add("C++");list.add("JavaScript");// 使用for循环遍历List集合并使用System.out.println()方法输出每个元素的值for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}}}17. 使用Map存储数据并遍历import java.util.HashMap;import java.util.Map;public class Main {public static void main(String[] args) {// 创建一个名为map的Map对象,并添加多组键值对Map<Integer, String> map = new HashMap<>();map.put(1, "Java");map.put(2, "Python");map.put(3, "C++");map.put(4, "JavaScript");// 使用for-each循环遍历Map对象并使用System.out.println()方法输出每个键值对的值for (Map.Entry<Integer, String> entry :map.entrySet()) {System.out.println("key=" + entry.getKey() + ", value=" + entry.getValue());}}}18. 使用lambda表达式进行排序import java.util.ArrayList;import java.util.Collections;import parator;import java.util.List;public class Main {public static void main(String[] args) {// 创建一个名为list的List集合,并添加多个字符串元素List<String> list = new ArrayList<>();list.add("Java");list.add("Python");list.add("C++");list.add("JavaScript");// 使用lambda表达式定义Comparator接口的compare()方法,按照字符串长度进行排序Comparator<String> stringLengthComparator = (s1, s2) -> s1.length() - s2.length();// 使用Collections.sort()方法将List集合进行排序Collections.sort(list, stringLengthComparator);// 使用for-each循环遍历List集合并使用System.out.println()方法输出每个元素的值for (String str : list) {System.out.println(str);}}}19. 使用线程池执行任务import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Main {public static void main(String[] args) {// 创建一个名为executor的线程池对象,其中包含2个线程ExecutorService executor =Executors.newFixedThreadPool(2);// 使用executor.execute()方法将多个Runnable任务加入线程池中进行执行executor.execute(new MyTask("任务1"));executor.execute(new MyTask("任务2"));executor.execute(new MyTask("任务3"));// 调用executor.shutdown()方法关闭线程池executor.shutdown();}}// 定义一个MyTask类,实现Runnable接口,用于代表一个任务class MyTask implements Runnable {private String name;public MyTask(String name) { = name;}@Overridepublic void run() {System.out.println("线程" +Thread.currentThread().getName() + "正在执行任务:" + name);try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("线程" +Thread.currentThread().getName() + "完成任务:" + name);}}20. 使用JavaFX创建图形用户界面import javafx.application.Application;import javafx.scene.Scene;import javafx.scene.control.Button;import yout.StackPane;import javafx.stage.Stage;public class Main extends Application {@Overridepublic void start(Stage primaryStage) throws Exception { // 创建一个Button对象btn,并设置按钮名称Button btn = new Button("点击我");// 创建一个StackPane对象pane,并将btn添加到pane中StackPane pane = new StackPane();pane.getChildren().add(btn);// 创建一个Scene对象scene,并将pane作为参数传入Scene scene = new Scene(pane, 200, 100);// 将scene设置为primaryStage的场景primaryStage.setScene(scene);// 将primaryStage的标题设置为"JavaFX窗口"primaryStage.setTitle("JavaFX窗口");// 调用primaryStage.show()方法显示窗口primaryStage.show();}public static void main(String[] args) { launch(args);}}。
JAVA20经典编程题全集及答案【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题public class lianxi01 {public static void main(String[] args) {System.out.println(\第1个月的兔子对数: 1\System.out.println(\第2个月的兔子对数: 1\int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2;f2 = f1 + f2; f1 = f;System.out.println(\第\个月的兔子对数: \ } } }【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
public class lianxi02 {public static void main(String[] args) { int count = 0;for(int i=101; i<200; i+=2) { boolean b = false;for(int j=2; j<=Math.sqrt(i); j++) {if(i % j == 0) { b = false; break; } else { b =true; } }if(b == true) {count++;System.out.println(i );} }System.out.println( \素数个数是: \} }【程序3】题目:打印出所有的 \水仙花数 \,所谓 \水仙花数 \是指一个三位数,其各位数字立方和等于该数本身。
Monkey_peach代码package com.sailor.game;/*** 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩* 下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
* 程序分析:采取逆向思维的方法,从后往前推断。
** @author Sailor**/public class Monkey_Peach {public static void main(String[] args) {int[] peach = new int[10];peach[9] = 1;// 下面利用的是数组和循环将每天的桃子数量都求出来了for (int i = peach.length - 1; i > 0; i--) {peach[i - 1] = 2 * (peach[i] + 1);}for (int i = 0; i < peach.length; i++) {System.out.println(peach[i]);}System.out.println("第一天的桃子数:"+getPeach_Num(10, 1));}// 利用递归的方法来求第一天的桃子数,输入参数为天数和当天的桃子数,输出为第一天桃子数public static int getPeach_Num(int day, int peach_num) {if (day == 1)return peach_num;else if (day < 1 || peach_num < 0)return 0;elsereturn getPeach_Num(day - 1, (peach_num + 1) * 2);}}package com.sailor.game;/*** 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩* 下的桃子吃掉一半,又多吃了一个。
1百分制分数到等级分数package pm;public class SwitchTest {//编写程序,实现从百分制分数到等级分数的转换////>=90 A// 80~89 B// 70~79 C// 60~69 D// <60 Epublic static void main(String[] args) {int s=871;switch(s/10){case 10 :System.out.println("A");break;case 9 :System.out.println("A");break;case 8 :System.out.println("B");break;case 7 :System.out.println("c");break;case 6 :System.out.println("D");break;default :System.out.println("E");break;}}}2成法口诀阵形package pm;public class SwitchTest{public static void main(String[] args){for(int i=1;i<=19;i++){for(int j=1;j<=i;j++){System.out.print(j+"*"+i+"="+(i*j)+"\t");}System.out.println();}}}3华氏和摄氏的转换法package pm;import java.util.Scanner;public class SwitchTest {public static void main(String[] args) {Scanner sc=new Scanner(System.in);while (true) {System.out.println("请输入要转换的温度类型:C 或F");String s = sc.next().trim();if ("c".equalsIgnoreCase(s)) {//做摄氏向华摄的转换System.out.println("请输入要转换摄氏的温度:..");double db = sc.nextDouble();double db2 = (db * 9 / 5) + 32;System.out.println("对应的华氏温度:" + db2 + "F");} else if ("f".equalsIgnoreCase(s)) {//做华摄向摄氏的转换System.out.println("请输入要转换华氏的温度:..");double db = sc.nextDouble();double db2 = (db - 132) * 5 / 9;System.out.println("对应的摄氏温度:" + Math.round(db2) + "C");}else if("exit".equalsIgnoreCase(s)){break;}}}}package pm;import java.util.Scanner;public class SwitchTest{public static void main(String[] args) {Scanner sc=new Scanner(System.in);boolean flag=true;while (flag) {System.out.println("请输入要转换的温度,如:50c或100f");String str = sc.nextLine().trim();if (str.endsWith("c") || str.endsWith("C")) {//做摄氏向华摄的转换30cString st = str.substring(0, str.length() - 1);double db = Double.parseDouble(st);//[0,2)//2 double db=Double.valueOf(st).doubleV alue();double db2 = (db * 9 / 5) + 32;System.out.println("对应的华氏温度:" + db2 + "F");} else if (str.endsWith("f") || str.endsWith("F")) {//做华摄向摄氏的转换String st = str.substring(0, str.length() - 1);double db = Double.parseDouble(st);//[0,2)//2 double db=Double.valueOf(st).doubleV alue();double db2 = (db - 132) * 5 / 9;System.out.println("对应的摄氏温度:" + Math.round(db2) + "C");}else if("exit".equalsIgnoreCase(str)){flag=false;}}}}4三个数的最大数package pm;public class SwitchTest {public static void main(String[] args) {int a=1,b=2,c=3,d=0;d=a>b?a:b;d=a>b?(a>=c?a:c):(b=>c?b:c);System.out.println("最多数为:"+d);}}5简单计算器的小程序package one;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;public class Jsq implements ActionListener { private JFrame frame;private JButton[] bus;private JTextField jtx;private JButton bu;private char[] strs;private String d_one = "";private String operator;public static void main(String[] args) {new Jsq();}/* 利用构造进行实例化*/public Jsq() {frame = new JFrame("计算器");jtx = new JTextField(14);bus = new JButton[16];strs = "789/456*123-0.+=".toCharArray();for (int i = 0; i < 16; i++) {bus[i] = new JButton(strs[i] + "");bus[i].addActionListener(this);}bu = new JButton("C");bu.addActionListener(this);init();}/* GUI 初始化*/public void init() {JPanel jp1 = new JPanel();jp1.add(jtx);jp1.add(bu);frame.add(jp1, BorderLayout.NORTH);JPanel jp2 = new JPanel();jp2.setLayout(new GridLayout(4, 4));for (int i = 0; i < 16; i++) {jp2.add(bus[i]);}frame.add(jp2, BorderLayout.CENTER);frame.pack();frame.setLocation(300, 400);frame.setV isible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }/* 事件的处理*/public void actionPerformed(ActionEvent arg0) {/*获取输入字符*/String conn = arg0.getActionCommand();/*清除计算器内容*/if ("C".equals(conn)) {d_one = "";operator = "";jtx.setText("");return;}/*暂未实现该功能*/if(".".equals(conn)){return;}/*记录运算符,保存运算数字*/if (("+-*/".indexOf(conn)) != -1) {if("".equals(d_one) && "".equals(jtx.getText())) return;d_one = jtx.getText();operator = conn;jtx.setText("");return;}/*计算结果*/if ("=".equals(conn)) {if("".equals(d_one) && "".equals(jtx.getText())) return;double db = 0;if ("+".equals(operator)) {db = Double.parseDouble(d_one)+ Double.parseDouble(jtx.getText());jtx.setText(db + "");}if ("-".equals(operator)) {db = Double.parseDouble(d_one)- Double.parseDouble(jtx.getText());jtx.setText(db + "");}if ("*".equals(operator)) {db = Double.parseDouble(d_one)* Double.parseDouble(jtx.getText());jtx.setText(db + "");}if ("/".equals(operator)) {db = Double.parseDouble(d_one)/ Double.parseDouble(jtx.getText());jtx.setText(db + "");}d_one = db + "";return;}//界面显示jtx.setText(jtx.getText() + conn);}}6三角形图案package pm;public class SwitchTest{public static void main(String[] args){int n=5;for(int i=0;i<=n;i++){for(int j=0;j<n-i;j++){System.out.print(" ");}for(int k=0;k<2*i-1;k++){System.out.print("*");}System.out.println();}}}7输出输入的姓名package pm;import java.util.Scanner;public class SwitchTest{public static void main(String[] args){String name=null;Scanner sca=new Scanner (System.in);char firstChar;do{System.out.println("please input your name");name=sca.nextLine();firstChar=name.charAt(0);}while(!(firstChar>='a' && firstChar<='z' ||firstChar>='A' && firstChar<='Z'));System.out.println("OK! your name is:"+name);}}8一小时倒计时小程序package pm;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class SwitchTest {private JFrame frame;private JLabel jl1;private JLabel jl2;private JLabel jl3;/*主方法*/public static void main(String[] args) {new SwitchTest().getTime();}/*倒计时的主要代码块*/private void getTime(){long time=1*3600;long hour =0 ;long minute =0 ;long seconds=0;while(time>=0){hour=time/3600;minute=(time-hour*3600)/60;seconds=time-hour*3600-minute*60;jl1.setText(hour+"时");jl2.setText(minute+"分");jl3.setText(seconds+"秒");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}time--;}}/*构造实现界面的开发GUI */public SwitchTest(){frame = new JFrame("倒计时");jl1 = new JLabel();jl2 = new JLabel();jl3 = new JLabel();init();}/*组件的装配*/private void init(){JPanel jp=new JPanel();jp.add(jl1);jp.add(jl2);jp.add(jl3);frame.add(jp);frame.setV isible(true);frame.setLocation(300,400);frame.setSize(300, 200);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}9棋盘图案public class Sjx{public static void main(String[] args){int SIZE=19;for(int i=0;i<SIZE;i++){if(i<10){System.out.print(" "+i);//两个空格}else{System.out.print(" "+(char)(i+'a'-10));//两个空格}}System.out.println();// System.out.print(i<10?(char)(i+'0'):(char)(i+'a'-10));for(int i=0;i<SIZE;i++){if(i<10){System.out.print(i+" ");//一个空格}else{System.out.print((char)(i+'a'-10)+" ");//一个空格}for(int j=0;j<SIZE;j++){System.out.print("*"+" ");//两个空格}System.out.println();}}}10数组输出唐诗package day04;public class ArrayTest {public static void main(String[] args){char[][] arr=new char[4][7];String s="朝辞白帝彩云间千里江陵一日还两岸猿声啼不住轻舟已过万重山";for(int i=0;i<arr.length;i++){for(int j=0;j<arr[i].length;j++){arr[i][j]=s.charAt(i*7+j);}}for(int i=0;i<arr[0].length;i++){for(int j=0;j<arr.length;j++){System.out.print(arr[arr.length-j-1][i]+" ");}System.out.println();}}}11找出满足条件的最小数package day02;public class Fangk{public static void main(String[] args){// for(int i=1000;i<=9999;i++){// int q=i/1000;// int b=i/100%10;// int s=i/10%10;// int g=i%10;// if(q>b && s>g && q+g==b+s && b%2!=0){// System.out.println("The Min Number is:"+i);// break;// }// }loop1: for(int q=1;q<=9;q++){loop2: for(int b=0;b<=9;b++){if(b%2==0){continue loop2;}for(int s=0;s<=9;s++){for(int g=0;g<=9;g++){if(q>b && s>g && q+g==b+s){System.out.println("The Min Number is:"+(q*1000+b*100+s*10+g));break loop1;}}}}}}}12判断一个数是否是素数package day02;public class Fangk{public static void main(String[] args){int num=14;boolean flag=true;for(int i=2;i<=num/2;i++){if(num%i==0){flag=false;break;}}if(flag){System.out.println(num+" is a prime number!");}else{System.out.println(num+" is not a prime number!");}}}//////////////////////////////////////////////////////////////////////package day04;import java.util.Scanner;public class A1{public static void main(String[] args){int n;Scanner sca=new Scanner(System.in);System.out.println("please input a number:");n=sca.nextInt();if(isPrimeNumber(n)){System.out.println(n+"is a prime number!");}else{System.out.println(n+"is not a prime number!");}}public static boolean isPrimeNumber(int n){ for(int i=2;i<=n/2;i++){if(n%i==0){return false;}}return true;}}13一个数倒序排列package day02;public class Daoxu{public static void main(String[] args){int olddata=3758;int newdata=0;while(olddata!=0){for(int i=0;i<4;i++){newdata=newdata*10+olddata%10;olddata=olddata/10;}System.out.println("newdata="+newdata);}}}14将一个整数以二进制输出package day04;import java.util.Scanner;public class ArrayTest {public static void main(String[] args){int n;Scanner s=new Scanner(System.in);System.out.println("please input a number:");n=s.nextInt();for(int i=31;i>=0;i--){if((n&(1<<i))!=0){System.out.print("1");}else{System.out.print("0");}if((32-i)%8==0){System.out.print(" ");}}}}15矩形图案package day02;public class Fangk {public static void main(String[] args){int m=5,n=6;for(int i=0;i<n;i++){System.out.print("* ");}System.out.println();for(int i=0;i<m-2;i++){System.out.print("* ");for(int j=0;j<n-2;j++){System.out.print(" ");}System.out.print("*");System.out.println();}for(int i=0;i<n;i++){System.out.print("* ");}}}16猜数字package day02;import java.util.Scanner;public class Csz {public static void main(String[] args) {Scanner s = new Scanner(System.in);int num = (int) (Math.random() * 1000);int m=0;for(int i=9;i>=0;i--){System.out.println("please input your number! ");m=s.nextInt();if(m>num){System.out.println("Too large!");}else if(m<num){System.out.println("Too small!");}else{System.out.println("Y ou are right!");break;}if(i>0){System.out.println("还有"+i+"次机会!");}}if( m!=num){System.out.println("下次再来吧!");}}}17.HotelManagerpackage hotel;import java.util.Scanner;public class HotelManager {private static String[][] rooms;// 表示房间public static void main(String[] args) {rooms = new String[10][12];String comm;// 表示用户输入的命令for (int i = 0; i < rooms.length; i++) {for (int j = 0; j < rooms[0].length; j++) {rooms[i][j] = "EMPTY";}}//while (true) {System.out.println("请输入命令:");Scanner sca = new Scanner(System.in);System.gc();comm = sca.next();if ("search".equalsIgnoreCase(comm)) {search();} else if ("in".equalsIgnoreCase(comm)) {int roomNo = sca.nextInt();String name = sca.next();in(roomNo, name);} else if ("out".equalsIgnoreCase(comm)) {int roomNo = sca.nextInt();out(roomNo);} else if ("exit".equalsIgnoreCase(comm)) {System.out.println("程序退出...");break;} else {System.out.println("命令输入错误,请重新输入:");}}}private static void out(int roomNo) {if("EMPTY".equals(rooms[(roomNo/100)-1][(roomNo%100)-1])){ System.out.println("该房间没有客人入住,退房失败!");return;}rooms[(roomNo/100)-1][(roomNo%100)-1]="EMPTY";System.out.println(roomNo+"退房成功!");}private static void in(int roomNo, String name) {if(!"EMPTY".equals(rooms[(roomNo/100)-1][(roomNo%100)-1])){ System.out.println("该房间已经有客人入住!");return;}rooms[(roomNo/100)-1][(roomNo%100)-1]=name;System.out.println(name+"成功入住"+roomNo+"房间!");}private static void search() {for (int i = 0; i < rooms.length; i++) {//打印房间号for (int j = 0; j < rooms[0].length; j++) {if (j + 1 < 10) {System.out.print(i + 1 + "0" + (j + 1) + " ");} else {System.out.print(i + 1 + "" + (j + 1) + " ");}}//打印房间状态System.out.println();for (int j = 0; j < rooms[0].length; j++) {System.out.print(rooms[i][j] + " ");}System.out.println();}}}18.StudentManagerpackage day05.student_manager;import java.util.Scanner;public class StudentManager {static int[][] scores=new int[6][5];static String[] students={"zhangsan","lisi","wangwu","zhaoliu","qianqi","liuba"};static String[] courses={"corejava","jdbc","servlet","jsp","ejb"};public static void main(String[] args) {for(int i=0;i<scores.length;i++){for(int j=0;j<scores[i].length;j++){scores[i][j]=(int)(Math.random()*100);}}Scanner s=new Scanner(System.in);String comm;while(true){System.out.println("请输入命令:");comm=s.next();if(comm.equals("A VG")){String para=s.next();avg(para);}else if(comm.equals("SORT")){String course=s.next();sort(course);}else if(comm.equals("GET")){String student=s.next();String course=s.next();get(student,course);}else if(comm.equals("EXIT")){break;}else{System.out.println("命令格式不正确,请重新输入!");}}}//main() end!public static void avg(String para){int sIndex=-1;int cIndex=-1;for(int i=0;i<students.length;i++){if(students[i].equals(para)){sIndex=i;}}if(sIndex==-1){for(int i=0;i<courses.length;i++){if(courses[i].equals(para)){cIndex=i;}}}if(sIndex==-1 && cIndex==-1){System.out.println("找不到学生或课程!");return;}double avg=0.0;if(sIndex!=-1){for(int i=0;i<scores[sIndex].length;i++){avg+=scores[sIndex][i];}avg/=scores[sIndex].length;System.out.println("学生:"+para+"的平均分是:"+avg);}else{for(int i=0;i<scores.length;i++){avg+=scores[i][cIndex];}avg/=scores.length;System.out.println("课程:"+para+"的平均分是:"+avg);}}public static void sort(String course){int[] courseScore=new int[scores.length];if(course.equals("sum")){//如果求总分的排名// //求出每个学生的总分,将成绩存放在courseScore数组中for(int i=0;i<scores.length;i++){int studentSum=0;for(int j=0;j<scores[i].length;j++){studentSum+=scores[i][j];}courseScore[i]=studentSum;}}else{//如果不是求总分排名int cIndex=-1;for(int i=0;i<courses.length;i++){//找到这门课程的下标if(courses[i].equals(course)){cIndex=i;}}if(cIndex!=-1){//如果是一门有效的课程//把scores数组中这一列的值放到courseScore数组中!for(int i=0;i<scores.length;i++){courseScore[i]=scores[i][cIndex];}}else{//如果不是一门有效的课程System.out.println("课程名不正确,请重新输入!");return;}}String[] studentCopy=new String[students.length];System.arraycopy(students, 0, studentCopy, 0, students.length);for(int i=0;i<courseScore.length-1;i++){for(int j=i+1;j<courseScore.length;j++){if(courseScore[i]<courseScore[j]){int temp=courseScore[i];courseScore[i]=courseScore[j];courseScore[j]=temp;String stemp=studentCopy[i];studentCopy[i]=studentCopy[j];studentCopy[j]=stemp;}}}int order=1;System.out.println("名次\t学生\t成绩");for(int i=0;i<courseScore.length;i++){if(i!=0 && courseScore[i]==courseScore[i-1]){order--;}else{order=i+1;}System.out.print(order+"\t");System.out.print(studentCopy[i]+"\t");System.out.println(courseScore[i]);order++;}}public static void get(String student,String course){int sIndex=-1;int cIndex=-1;for(int i=0;i<students.length;i++){if(students[i].equals(student)){sIndex=i;}}if(sIndex==-1){System.out.println("没有这个学生:"+student);return;}if(course.equals("sum")){//如果求总分int studentSum=0;for(int j=0;j<scores[sIndex].length;j++){studentSum+=scores[sIndex][j];}System.out.println(student+"学生的总分为:"+studentSum);return;}for(int i=0;i<courses.length;i++){if(courses[i].equals(course)){cIndex=i;}}if(cIndex==-1){System.out.println("没有这门课程:"+course);return;}System.out.println(student+"学生的"+course+"课程的成绩为:"+scores[sIndex][cIndex]);}}19.Fivepackage hotel;import java.util.Scanner;/*** 首先在程序第一次运行的时候,构建出棋盘,切以后* 不能再从新构建,知道结束,所以将其放到静态代码块中。