东软睿道-Java高级应用编程

课件链接(点击下载)
源程序下载链接(点击下载)

变量和运算符

  1. 已知a,b均是整形变量,写出将a,b两个变量中的值互换的程序。
    (变量和运算符综合应用)
public static void main(String[] args) {
		int a = 1;
		int b = 2;
		System.out.println("交换前:");
		System.out.println("a="+a);
		System.out.println("b="+b);
		a = a ^ b;
		b = a ^ b;
		a = a ^ b;
		System.out.println("交换后:");
		System.out.println("a="+a);
		System.out.println("b="+b);	
	}
  1. 给定一个0~1000的整数,求各位数的和,例如345结果是3+4+5=12。
    (变量和运算符综合应用)
public static void main(String[] args) {
		System.out.println("请输入一个1~1000的整数:");
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b, c, d, e, sum;
		e = a / 1000;
		b = a / 100 % 10;
		c = a / 10 % 10;
		d = a % 10;
		sum = b + c + d + e;
		System.out.println("结果为:" + sum);
	}
  1. 摄氏温度转成华氏温度
public static void main(String[] args) {
        @SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);
        int a = 0;//接收选择
        float x;//存温度
        System.out.println("请选择操作:\n1.华氏温度->摄氏温度\n2.摄氏温度->华氏温度");
        a = sc.nextInt();
        
        while (a != 1 && a != 2) {
            //让用户只选择1或2
            System.out.println("请选择操作:\n1.华氏温度->摄氏温度\n2.摄氏温度->华氏温度");
            a =sc.nextInt();
        }

        //循环,用户继续转换吗?
        out:
        while (true) {
            switch (a) {
                case 1: {
                    System.out.println("请输入华氏温度 ");
                    x = sc.nextFloat();
                    System.out.println(x + "'F = " + (x - 32) * 5 / 9 + "'C");
                    System.out.println("继续转换吗?\n0.退出\n1.继续");
                    a = sc.nextInt();

                    //让用户只选择1或0
                    while (a != 1 && a != 0) {
                        System.out.println("0.退出\n1.继续");
                        a = sc.nextInt();
                    }

                    if (a == 0) {
                        //a=0,用户要退出
                        break out;
                    } else {
                        //继续选择转换操作
                        System.out.println("请选择操作:\n1.华氏温度->摄氏温度\n2.摄氏温度->华氏温度");
                        a = sc.nextInt();
                        while (a != 1 && a != 2) {
                            //让用户只选择1或2
                            System.out.println("请选择操作:\n1.华氏温度->摄氏温度\n2.摄氏温度->华氏温度");
                            a = sc.nextInt();
                        }
                        break;
                    }
                }
                
                case 2: {
                    System.out.println("请输入摄氏度 ");
                    x = sc.nextFloat();
                    System.out.println(x + "'C = " + (x * 9 / 5 + 32) + "'F");
                    System.out.println("继续转换吗?\n0.退出\n1.继续");
                    a = sc.nextInt();
                    while (a != 1 && a != 0) {
                        //让用户只选择1或0
                        System.out.println("0.退出\n1.继续");
                        a = sc.nextInt();
                    }
                    if (a == 0) {
                        //a=0,用户要退出
                        break out;
                    } else {
                        //继续选择转换操作
                        System.out.println("请选择操作:\n1.华氏温度->摄氏温度\n2.摄氏温度->华氏温度");
                        a = sc.nextInt();
                        while (a != 1 && a != 2) {
                            //让用户只选择1或2
                            System.out.println("请选择操作:\n1.华氏温度->摄氏温度\n2.摄氏温度->华氏温度");
                            a = sc.nextInt();
                        }
                        break;
                    }
                }
                default:
                    System.out.println("Error!");
            }
        }
    }
  1. 给定一个任意的大写字母A~Z,转换小写字母。
public static void main(String[] args) {
	        @SuppressWarnings("resource")
			Scanner sc = new Scanner(System.in);
	        System.out.println("输入大写字母:");
	        char a = sc.next().charAt(0);
	        	while (a <'A'|| a > 'Z'){
	        		System.out.print("输入错误,请重新输入:");
	        		a =sc.next().charAt(0);
	        		}
	        	a = (char) (a + 32);
	        	System.out.println("小写字母:" + a);
	    }

流程控制语句

  1. 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
public static void main(String[] args) {
        System.out.println("请输入利润:");
		Scanner sc = new Scanner(System.in);
        int profit=(sc.nextInt())/10000;
        salary(profit);
    }
    public static void salary(int profit){
        double sum=0;
        if(profit<=10){
            sum=profit*0.1;
        }
        else if(profit<=20){
            sum=10*0.1+(profit-10)*0.075;
        }
        else if(profit<=40){
            sum=10*0.1+10*0.075+(profit-20)*0.05;
        }
        else if(profit<60){
            sum=10*0.1+10*0.075+20*0.05+(profit-40)*0.03;
        }
        else if(profit<100){
            sum=10*0.1+10*0.075+20*0.05+40*0.03+(profit-60)*0.015;       
        }
        else{
            sum=10*0.1+10*0.075+20*0.05+40*0.03+40*0.015+(profit-100)*0.01;
        }
        System.out.println("可以获得的奖金总数是:"+sum*10000);  
    }
  1. 给定一个成绩a,使用switch结构求出a的等级。A:90-100,B:80-89,C:70-79,D:60-69,E:0-59。
public static void main(String[] args) {
		int a;
	      @SuppressWarnings("resource")
                    Scanner sc =new Scanner(System.in);
	    System.out.println("请输入成绩:");
	    a=sc.nextInt();
	    final int n=a/10;
	    switch(n){
	    case 10:
	    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");	         
	      }
	}
  1. 假设某员工今年的年薪是30000元,年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)总收入。
public static void main(String[] args) {
		int salary = 30000;
		int sum =30000;
		for(int i = 1;i <= 10;i++){
			salary *= 1.06;
			sum = sum + salary;
			System.out.println("第"+(i+1)+"年工资:\t"+salary);
		}
System.out.println("\n");
System.out.println("预计未来十年工资总和:"+sum);
	}
  1. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,
    第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃前一天剩下的一半零一个。
    到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少个桃子?
public static void main(String[] args) {
		int a = 1;
		int i = 1;
		while (i < 10){
			a = 2 * (a + 1);
			i++;
		}
		System.out.println(a);
	}
  1. 判断是一个奇数还是偶数。
public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要判断的数字:");
        int a = sc.nextInt();
        if(a%2==0){
        	System.out.println("为偶数");
        }else{
        	System.out.println("为奇数");
        }
	}
  1. 编写程序, 判断一个变量x的值,如果是1,输出x=1,如果是5,输出x=5,如果是 10,输出x=10,除了以上的值,都输出x=none。
public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
    System.out.println("请输入需要判断的数字:");
    int x = sc.nextInt();
    if(x==1){
    	System.out.println("x="+x);
    }
    else if(x==5){
    	System.out.println("x="+x);
    }
    else if(x==10){
    	System.out.println("x="+x);
    }
    else{
    	System.out.println("x=none");
    }
  }
  1. 判断一个数字是否能被5和6同时整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能被5或6整除,(打印不能被5或6整除)。
public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	    System.out.println("请输入需要判断的数字:");
	    int x = sc.nextInt();
	    if(x%5==0 & x%6==0){
	    	System.out.println("能被5和6整除");
	    }
	    else if(x%5==0){
	    	System.out.println("能被5整除");
	    }
	    else if(x%6==0){
	    	System.out.println("能被6整除");
	    }
	    else{
	    	System.out.println("不能被5或6整除");
	    }
	}
  1. 判断这个年份是否为闰年。
public static void main(String[] args) {
		System.out.println("请输入年份:");
		Scanner sc = new Scanner(System.in);
		  int year = sc.nextInt();
		  if(year%4==0 && year%100!=0 || year%400==0) {
		   System.out.println("闰年");
		  }else {
		   System.out.println("非闰年");
		  }	  
     }
  1. 输入一个0-100的分数,如果不是0-100之间,打印成绩无效,根据成绩等级打印ABCDE。
public static void main(String[] args) {
		int score;
	      @SuppressWarnings("resource")
	    Scanner sc =new Scanner(System.in);
	    System.out.println("请输入成绩:");
	    score=sc.nextInt();
	    if(score>=0 & score<=100){
	    int n=score/10;
	    if(n==10 | n ==9){
	    	System.out.println("A");
	    }
	    else if(n == 8){
	    	System.out.println("B");
	    }
	    else if(n == 7){
	    	System.out.println("C");
	    }
	    else if(n == 6){
	    	System.out.println("D");
	    }
	    else {
	    	System.out.println("E");
	    }
	      }else{
	    	  System.out.println("分数无效!");
	      }
	}
  1. 输入三个整数x,y,z,请把这三个数用小到大输出。
public static void main(String[] args) {
		  System.out.println("请输入几个数并用逗号隔开:");
		  @SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);
		String str = sc.next().toString();
		String[] arr  = str.split(",");
		int[] b = new int[arr.length];
		for(int j = 0;j < b.length; j++) {
		   b[j] = Integer.parseInt(arr[j]);
		  }
		  for(int i=0;i<arr.length-1;i++){
				for(int j=0;j<arr.length-1-i;j++){
					if(b[j]>b[j+1]){
						b[j]=b[j]^b[j+1];
						b[j+1]=b[j]^b[j+1];
						b[j]=b[j]^b[j+1];
					}}}
		  System.out.println("排序后:");
		for(int i : b){
			System.out.print(i+"\t");
	 }
  }
  1. 有一个不多于5位的正整数,求它是几位数,分别大一一年出每一位数字。
public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个不大于五位的正整数:");
		int num = sc.nextInt();
		int len = 0;
		int [] strArry = new int[5];
		int i=0;
		while(num%10!=0) {
			len++;
			strArry[i]=num%10;
			i++;
			num = num/10;
			}
		System.out.println("该数长度:"+len);
		for(int j=0;j<len;j++) {
			System.out.println("第"+(j+1)+"位:"+strArry[j]);
	     }	
    }
  1. 编写一个程序,计算邮局汇款的汇费。如果汇款金额小于100元,汇费为一元,如果金额在100元与5000元之间,按1%收取汇费,如果金额大于5000元,汇费为50元。汇款金额由命令行输入。
public static void main(String[] args) {
		System.out.println("请输入汇款金额:");
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		if(a<100 & a>0){
			System.out.println("汇费:"+(a+1));
		}else if(a>=100 & a<=5000){
			System.out.println("汇费:"+(a*1.01));
		}else if(a>5000){
			System.out.println("汇费:"+(a+50));
		}else{
			System.out.println("请输入正确汇款金额!");
		}
	}
  1. 分别使用for,while,do循环求1-100之间所有被3整除的整数的和。
public static void main(String[] args) {
		int ia;
		int ib = 0;
		int ic = 0;
		int sum1 = 0;
		int sum2 = 0;
		int sum3 = 0;
		for(ia = 0;ia <= 100;ia++){
			if(ia % 3 == 0){
				sum1 += ia;
			}
		}
		System.out.println("for算法一百内3整除的和:"+sum1);
        while(ib<=100){
        	if(ib%3==0){
				sum2 += ib;
			}
        	ib++;
        }
        System.out.println("while算法一百内3整除的和:"+sum2);
        do{
        	if(ic % 3 == 0){
        	sum3 += ic;
        	}
        	ic++;
        }while(ic <= 100);
        System.out.println("do算法一百内3整除的和:"+sum3);
	}
  1. 输入0-9之间的数,但不包括5。
public static void main(String[] args) {
		for(int i = 0;i <= 10;i++){
			if(i != 5){
				System.out.println(i);
			}
		}
	}
  1. 求整数n的阶乘。
public static void main(String[] args) {
		int a;
	    @SuppressWarnings("resource")
		Scanner sc =new Scanner(System.in);
	    System.out.println("阶乘位数:");
	    a=sc.nextInt();
	    getFactorial(a);
	}
	public static int getFactorial(int a){
		int b = 1;
		int i = 1;
		for(;i <= a;i++){
			b *= i;
		}
		System.out.println((i-1)+"位阶乘值位"+b);
		return b;
	}
  1. 找出大于200的最小质数。
public static void main(String[] args) {			
			for(int i=201; ; i++){				
					boolean flag = true;				
					for(int j = 2;j<i;j++){
					if(i%j==0){
						flag = false;
						break;
							}						
						}				
						if(flag){
							System.out.println(i);
							break;
				}					
			}				
	}
  1. 由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后为4321。
public static void main(String[] args) {
		System.out.println("请输入一个4位的正整数:");
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		int len = 0;
		int [] strArry = new int[4];
		int i=0;
		while(num%10!=0) {
			len++;
			strArry[i]=num%10;
			i++;
			num = num/10;
			}
		System.out.println("反转后");
		for(int j=0;j<len;j++) {
			System.out.print(strArry[j]);
	     }	
    }

数组

  1. 编写简单程序,要求数组长度为5,分别符值10,20,30,40,50,在控制台输出该数组的值。
public static void main(String[] args) {
		int[] a = new int[5];
		for (int i = 0; i <= 4; i++) {
			a[i] = 10 * (i + 1);
		}
		for (int b = 0; b < a.length; b++) {
			System.out.print(a[b] + "\t");
		}
	}
  1. 将一个字符数组的值(neusofteducation)拷贝到另一个字符数组中。
public static void main(String[] args) {
		char[] a = { 'n', 'e', 'u', 's', 'o', 'f', 't', 'e', 'd', 'u', 'c', 'a', 't', 'i', 'o', 'n' };
		char[] b = new char[a.length];
		System.arraycopy(a, 0, b, 0, a.length);
		System.out.println(b);
	}
  1. 给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值。
    (Arrays.sort排序,冒泡排序)
public static void main(String[] args) {
		int[] arr = { 1, 6, 2, 3, 9, 4, 5, 7, 8 };
		int[] arr2 = { 1, 6, 2, 3, 9, 4, 5, 7, 8 };
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length - 1 - i; j++) {
				if (arr[j] > arr[j + 1]) {
					int temp = arr[j + 1];
					arr[j + 1] = arr[j];
					arr[j] = temp;
				}
			}
		}
		for (int i : arr) {
			System.out.print(i + "\t");
		}
		System.out.println("\n");
		Arrays.sort(arr2);
		for (int i : arr2) {
			System.out.print(i + "\t");
		}
	}
  1. 有两个多维数组分别是{2,3,4;4,6,8;}和{1,5,2,8;5,9,10,-3;2,6,-5,-18;}按照如下方式进行运算。生成一个2行4列的数组。
    此数组的第一行第一列是21+35+42,第一行第二列是25+39+47,第二行第一列是41+65+8*2,以此类推。
public static void main(String[] args) {
		int x = 0;
		int sum = 0;
		int a[][] = { { 2, 3, 4 }, { 4, 6, 8 } };
		int b[][] = { { 1, 5, 2, 8 }, { 5, 9, -10, -3 }, { 2, 7, -5, 18 } };
		int c[][] = new int[2][4];
		for (int i = 0; i < 2; i++) {
			for (int j = 0; j < 4; j++) {
				while (x < 3) {
					sum += a[i][x] * b[x][j];
					x++;
				}
				c[i][j] = sum;
				System.out.print(c[i][j] + "\t");
				sum = 0;
				x = 0;
			}
			System.out.println("\n");
		}
	}
  1. 输出一个double型二维数组(长度分别为5/4,值自己设定)的值。
public static void main(String[] args) {
		double[][] arr1;
		arr1 = new double[5][4];
		for (int i = 0; i < arr1.length; i++) {
			for (int j = 0; j < arr1[i].length; j++) {
				arr1[i][j] = 250;
				System.out.print(arr1[i][j] + " ");
			}
			System.out.println("\n");
		}
	}
  1. 在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下表。
public static void main(String[] args) {
		int[] arr = new int[] {18,25,7,36,13,2,89,63};
		int max=arr[0];
        int b =0 ;
		for(int i=0;i<arr.length;i++) {
			if(max<arr[i]) {
				max=arr[i];
			b=i;
			}	
		}
		System.out.println("下角标为:"+b);
		System.out.println("最大数为:"+max);
			}
  1. 将一个数组中的元素逆序存放。
public static void main(String[] args) {
		int[] a = { 1, 6, 3, 9, 6, 5, 7, 8 };
		System.out.println("请遍历数组:");
		for (int i : a) {
			System.out.print(i + "\t");
		}
		int temp;
		for (int i = 0; i < a.length / 2; i++) {
			temp = a[i];
			a[i] = a[a.length - i - 1];
			a[a.length - i - 1] = temp;
		}
		System.out.println("\n逆序后的数组为:");
		for (int i : a) {
			System.out.print(i + "\t");
		}
	}
  1. 将一个数组中重复元素保留一个其他的清零。
public static void main(String[] args) {
		int[] a = { 1, 6, 6, 3, 9, 6, 5, 7, 8 };
		System.out.println("数组a:");
		for (int i : a) {
			System.out.print(i + "\t");
		}
		System.out.println("\n");
		List<Integer> list = new ArrayList<Integer>();
		for (int i : a) {
			if (!list.contains(i)) {// 如果列表包含指定的元素,则返回 true
				list.add(i);
			}
		}
		for (int i : list) {
			System.out.print(i + "\t");
		}
	}
  1. 给定一维数组{-10,2,3,246,-100,0,5},计算出数组中的平均,最大,最小值。
public static void main(String[] args) {
		int[] data = new int[] { -10, 2, 3, 246, -100, 0, 5 };
		int max = data[0]; // 假设第一个数为最大值
		int min = data[0]; // 假设第一个数为最小值
		int sum = data[0];
		for (int i = 1; i < data.length; i++) {
			if (data[i] > max) {
				max = data[i];
			}
			if (data[i] < min) {
				min = data[i];
			}
			sum += data[i];
		}
		System.out.println("最大值为:" + max);
		System.out.println("最小值为:" + min);
		System.out.println("平均值为:" + (double) sum / data.length);
	}
  1. 统计一个字符串中中英文字符,数字,其他字符出现的次数。
public static void main(String[] args) {
		String str = "adbs13我爱东软,.!";
		Homework00001 countCharacter = new Homework00001();
		countCharacter.count(str);
	}
	int chCharacter = 0;
	int enCharacter = 0;
	int numberCharacter = 0;
	int otherCharacter = 0;
	void count(String str) {
		if (null == str || str.equals("")) {
			System.out.println("字符串为空");
			return;
		}
		for (int i = 0; i < str.length(); i++) {
			char c = str.charAt(i);
			if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
				enCharacter++;
			} else if ((c >= '0') && (c <= '9')) {
				numberCharacter++;
			} else if (isChinese(c)) {
				chCharacter++;
			} else {
				otherCharacter++;
			}
		}
		System.out.println("字符串:" + str + "");
		System.out.println("中文字符有:" + chCharacter);
		System.out.println("英文字符有:" + enCharacter);
		System.out.println("数字有:" + numberCharacter);
		System.out.println("其他字符有:" + otherCharacter);
	}
	public boolean isChinese(char ch) {
		Character.UnicodeBlock a = Character.UnicodeBlock.of(ch);
		if (a == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
				|| a == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
				|| a == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
				|| a == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B) {
			return true;
		}
		return false;
	}
  1. 某一个子字符串在字符串中出现的次数。
public static void main(String[] args) {
	String str;
	char ch;
	int charNum=0;
	System.out.println("请输入字符串:");
	@SuppressWarnings("resource")
	Scanner sc=new Scanner(System.in);
	str=sc.next();
	System.out.println("请输入目标:");
	ch=sc.next().charAt(0);
	String strch=String.valueOf(ch);
	for(int i=0;i<str.length();i++)
	{
		if(strch.equals(str.substring(i, i+1)))
			charNum++;
	}
	System.out.println("目标:"+strch+"\t共计次数:"+charNum);
}
  1. 统计一个字符串中英文字符、数字、其它字符各自出现的次数。
public static void main(String[] args) {
        //统计一个字符串中英文字符、数字、其它字符各自出现的次数
        int e = 0;
        int n = 0;
        int o = 0;
        String s = "sdghhjg111fjhjkh6666cfghfvghfgjfg9054";
        char[] a = s.toCharArray();
        for(char b:a){
            if(b>=65&&b<=90 || b>=97&&b<=122){
                e++;
            }else if(b>=48 && b<=57){
                n++;
            }else{
                o++;
            }
        }
        String s = "aasssddddaaggggaakkhgaa";
        String ss = "aa";
        int index = 0;
        int n = 0;
        int fromIndex = 0;
        while((index = s.indexOf(ss,fromIndex)) != -1){
            n++;
            fromIndex = index+ss.length();
        }
        System.out.println(n);

面向对象基础

  1. 定义一个点类Point,包含2个成员变量x,y分别标示x坐标,y坐标,两个构造器Point()和Point(int x0,int y0),以及一个movePoint(int dx,int dy)方法实现点的位置移动,创建两个Point对象p1,p2,分别调用movePoint方法后,打印p1和p2的坐标。
public static void main(String[] args) {
		Point p1=new Point();
		   p1.x=10;
		   p1.y=5;
		  p1.movePoint(p1.x,p1.y);
		  System.out.println("X1:" + p1.x +"\t"+ "Y1:" + p1.y);
		  Point p2=new Point();
		   p2.x=2;
		   p2.y=1;
		  p2.movePoint(p2.x,p2.y);
		  System.out.println("X2:" + p2.x +"\t"+ "Y2:" + p2.y);
	}
}
class Point {
	int x;
	int y;
	Point() {}
	Point(int x0, int y0) {
		x = x0;
		y = y0;
	}
	void movePoint(int dx, int dy) {
		x = dx +1;
		y = dy +1;
	}
  1. 定义一个矩形类Rectangle:
    2.1 定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周长。
    2.2 有2个属性:长length、宽width
    2.3 通过构造方法Rectangle(int width, int length),分别给两个属性赋值
    2.4 创建一个Rectangle对象,并输出相关信息
public static void main(String[] args) {
		Rectangle a = new Rectangle(2, 5);
		a.showAll();
		a.getArea();
		a.getPer();
		}
}
class Rectangle{
	int length;
	int width;

	Rectangle(int width, int length) {
		this.width = width;
		this.length = length;
	}
	void showAll() {
		System.out.println("长:"+length+"\t"+"宽:"+width);
	}
	void getArea() {
		System.out.println("面积:"+width*length);
	}
	void getPer() {
		System.out.println("周长:"+(width+length)*2);
	}
  1. 定义一个笔记本类,该类有颜色(char)和cpu型号(int)两个属性。 [必做题]
    3.1 无参和有参的两个构造方法;有参构造方法可以在创建对象的同时为每个属性赋值;
    3.2 输出笔记本信息的方法
    3.3 然后编写一个测试类,测试笔记本类的各个方法
public static void main(String[] args) {

		Computer test = new Computer('B', 5700);
		test.show();
	}
}
class Computer {
	char color;
	int model;

	Computer() {
	}
	Computer(char color, int model) {
		this.color = color;
		this.model = model;
	}
	void show() {
		System.out.println("颜色:" + color + "  型号:" + model);
	}
  1. 设计一个类Student:
    (1)属性包括姓名、学号和成绩
    (2)方法,按照成绩从高到低的顺序输出姓名、学号和成绩信息。
public static void main(String[] args) {
		Student[] stu = new Student[3];
		stu[0] = new Student("张三", 181203601, 89);
		stu[1] = new Student("李四",181203602, 65);
		stu[2] = new Student("scott",181203603, 77);
		Student.sort(stu);
		for (Student s : stu) {
			s.show();
		}
	}
}
class Student {
	private String name;
	private int id;
	private int score;

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}
	public Student(String name, int id, int score) {
		super();
		this.name = name;
		this.id = id;
		this.score = score;
	}
	public void show() {
		System.out.println("学号:" + id + "\t姓名:" + name + "\t成绩:" + score);
	}
	public static void sort(Student[] stu) {
		Student s;
		for (int i = 0; i < stu.length - 1; i++) {
			for (int j = 0; j < stu.length - i - 1; j++) {
				if (stu[j].score > stu[j + 1].score) {
					s = stu[j];
					stu[j] = stu[j + 1];
					stu[j + 1] = s;
				}
			}
		}
	}
  1. 创建一个员工类,有属性员工编号、员工名称、职位、工资等属性
    要求属性私有,提供公有get、set属性访问方法,以及一个为属性
    赋值的构造方法
    创建两个员工对象,存到HashMap集合中,键是员工的编号,值是员工对象
    遍历map集合,打印键值。
 public static void main(String[] args) {
 Map<Integer,Emp> map = new HashMap<Integer,Emp>();
        Emp e1 = new Emp(1, "zhaosi", "董事长", 1);
        Emp e2 = new Emp(2, "liuneng", "村副主任", 2);
        map.put(e1.getEmpno(), e1);
        map.put(e2.getEmpno(), e2);
        for(Object o:map.keySet()){
            Integer key = (Integer)o;
            System.out.println("键是"+key+"值是"+map.get(key));
        }   
    }
    //创建一个员工类,有属性员工编号、员工名称、职位、工资等属性
    //要求属性私有,提供公有get、set属性访问方法,以及一个为属性
    //赋值的构造方法
    //创建两个员工对象,存到HashMap集合中,键是员工的编号,值是员工对象
    //遍历map集合,打印键值    

class Emp{
    private int empno;
    private String ename;
    private String job;
    private int sal;
    public int getEmpno(){
        return this.empno;
    }
    public void setEmpno(int empno){
        this.empno = empno;
    }
    public String getEname() {
        return ename;
    }
    public void setEname(String ename) {
        this.ename = ename;
    }
    public String getJob() {
        return job;
    }
    public void setJob(String job) {
        this.job = job;
    }
    public int getSal() {
        return sal;
    }
    public void setSal(int sal) {
        this.sal = sal;
    }
    public Emp(int empno,String ename,String job,int sal){
        this.empno = empno;
        this.ename = ename;
        this.job = job;
        this.sal = sal;
    }
    @Override
    public String toString() {
        return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", sal=" + sal + "]";
    }

你可能感兴趣的:(Java,neusoft,java,快速排序,算法)