• 实验一. Java编程基础


    一、 实验目的

    1、 掌握Java的基本语法格式;
    2、 掌握Java语言中的常量、变量和运算符的使用;
    3、 掌握Java程序的流程控制语句、方法的定义与使用;
    4、 掌握Java中数组的定义与使用。

    二、 预习与准备

    1、标识符:Java语言使用的是Unicode字符集,使用2个字节表示一个符号,总共可描述65536个不同的符号,基本上可以描述世界上所有国家的文字。因此,除可以使用通常的方式来命名标识符之外,也可以使用中文、日文、朝鲜文作为标识符。但是,对于程序员来说:最好还是使用遵从一般规范。
    2、在Java语言中规定了各基本类型的数据所占的固定字节数。分别如下:
    整数类型:1个字节:byte 2个字节:short 4个字节:int 8个字节:long
    字符类型:2个字节:char
    浮点类型:4个字节:float 8个字节:double
    布尔类型:boolean
    与C语言不同的是,Java语言中增加了boolean类型,即逻辑类型(布尔类型),其变量只有2个常量值,绝对不能与C中的非0就是真、0就是假混淆。
    运算规则、选择结构、循环结构、数组与C语言基本一致,不再赘述了。

    三、实验内容

    1、身高预测
    每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。
    设faHeight为其父身高,moHeight为其母身高,身高预测公式为:
    男性成人时身高 = (faHeight + moHeight) * 0.54(cm)
    女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)
    此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。
    利用给定公式和身高预测方法对你的身高进行预测。
    要求父母的身高、是否爱好体育锻炼等参数从键盘输入。
    参考代码:

    import java.util.Scanner;
    public class Test1 {
    	public static void main(String[] args) {
    		float faHeight;
    		float moHeight;
    		int exercise;
    		int eat = 0;
    		int sex;
    		double tall = 0;
    		
    		Scanner sc = new Scanner(System.in);
    		System.out.println("请输入你爸爸的身高(cm):");
    		faHeight = sc.nextFloat();
    		System.out.println("请输入你妈妈的身高(cm):");
    		moHeight = sc.nextFloat();
    		System.out.println("请问是否喜爱体育锻炼(是请输入1):");
    		exercise = sc.nextInt();
    		System.out.println("请问是否有良好的饮食习惯(是请输入1):");
    		exercise = sc.nextInt();
    		System.out.println("请问您的性别为:(1为男,2为女):");
    		sex = sc.nextInt();
    
    		if (sex == 1) {
    			tall = (faHeight + moHeight) * 0.54;
    		} else if (sex == 2) {
    			tall = (faHeight * 0.923 + moHeight) / 2;
    		} else {
    			System.out.println("输入错误!");
    		}
    
    		if (exercise == 1) {
    			tall = tall + tall * 0.2;
    		}
    
    		if (eat == 1) {
    			tall = tall + tall * 1.5;
    		}
    		System.out.println("经过分析您的身高约为:" + (int) tall + "cm");
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    程序运行结果:
    在这里插入图片描述

    2、编程实现,输入1个不多于四位的正整数。
    (1)求它是几位数;
    (2)分别打印出每一位数字;
    (3)按逆序打印出该数,例如:原数是321输出123.
    参考代码:

    import java.util.Scanner;
    
    public class Test2 {
    	public static void main(String[] args) {
    		int num;
    		int count = 0;
    		int temp;
    		Scanner sc = new Scanner(System.in);
    		System.out.println("请输入1个不多余四位的正整数:");
    		num = sc.nextInt();
    		temp = num;
    		while (temp / 10 != 0) {
    			temp = temp / 10;
    			count++;
    		}
    		count = count + 1;
    		System.out.println("您输入的位数为:" + count);
    		int[] arr = new int[count];
    		for (int i = 0; i < count; i++) {
    			arr[i] = num % 10;
    			num = num / 10;
    		}
    		System.out.println("分别打印每一位数字:");
    		for (int j = count - 1; j >= 0; j--) {
    			System.out.println(arr[j] + " ");
    		}
    		System.out.println("逆序打印该数字:");
    		for (int x = 0; x < count; x++) {
    			System.out.println(arr[x] + " ");
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    程序运行结果:
    在这里插入图片描述

    3、评委打分
    需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
    选手的最后得分为:去掉一个最高分和一个最低分后的4个评委的平均值(不考虑小数部分)
    参考代码:

    import java.util.Scanner;
    
    public class Test3 {
    	public static void main(String[] args) {
    		int[] score = new int[6];
    		int max = 0;
    		int min = 0;
    		int max_sign = 0;
    		int min_sign = 0;
    		int sum = 0;
    
    		Scanner sc = new Scanner(System.in);
    		System.out.println("请输入6个评委的打分:");
    		for (int i = 0; i < 6; i++) {
    			score[i] = sc.nextInt();
    		}
    		max = score[0];
    		min = score[0];
    
    		System.out.println("6个评委的打分别为:");
    		for (int i = 0; i < 6; i++) {
    			System.out.print(score[i] + " ");
    			if (score[i] > max) {
    				max = score[i];
    				max_sign = i;
    			}
    			if (score[i] < min) {
    				min = score[i];
    				min_sign = i;
    			}
    		}
    		System.out.println();
    		System.out.println("去掉一个最高分:" + score[max_sign]+"分");
    		System.out.println("去掉一个最低分:" + score[min_sign]+"分");
    		for (int i = 0; i < 6; i++) {
    			if (i == max_sign || i == min_sign) {
    				continue;
    			}
    			sum = sum + score[i];
    		}
    		System.out.println("最后得分为:" + sum / 4.0);
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    程序运行结果:
    在这里插入图片描述

    四、 实验小结

    通过本次实验,掌握了java语言的程序设计的基本方法,学会了java元中标识符的命名,运算符和表达式的应用,熟练掌握了java程序流程控制语句的运用。
    在本次实验中:
    1.使用了scanner对象,java.util.Scanner 是 Java5 的新特征可以通过scanner对象进行获取用户的输入,使用步骤要注意:
    (1).导入:
    import java.util.Scanner;
    (2).创建对象
    Scanner scan = new Scanner(System.in);
    (3).next()方法是读取字符串,要读取到有效字符后才结束输入,不能读取空格,即遇到空格就停。
    (4).其他的常用的方法
    nextDouble();
    nextLong();
    nextInt();
    nextFloat();
    nextByte();
    上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认,输入时要注意类型的匹配。
    2.本次实验我使用了数组,数组是一种引用数据类型,在使用数组时有多个数据,类型必须统一,否则会出错。数组的长度在程序运行期间不可以改变,使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值。如下:
    如果是整数类型:那么默认值为0
    如果是浮点类型:那么默认值为0.0
    如果是字符类型:那么默认值为\0
    如果是布尔类型:那么默认值为false
    如果是引用类型:那么默认值为null
    数组的索引编号从0开始,一直到“数组的长度-1”为止。
    for循环的使用过程中要灵活,循环如果满足了查找的需求 break 直接跳出,不浪费性能,灵活使用continue关键字。在利用for循环对数组进行遍历的时候,注意数组下标越界的情况,可灵活根据需要提取数组的相关信息。另外要注意空的死循环,不要在循环中new对象。

  • 相关阅读:
    OAuth2.0、和jwt、spring security之间的区别和联系
    SpringBoot程序具有哪些优点呢?
    一个优秀的软件测试工程师该如何进行需求分析
    【Java 基础篇】深入理解Java集合嵌套:构建和管理复杂数据结构的终极指南
    VS2022 编译protobuf , qt 使用
    大厂边缘组VS小厂核心组,要怎么选?
    Minio分布式集群部署——Swarm
    十分钟“手撕”七大排序
    多因素(MFA)是防止数据泄露的最佳安全实践方法
    vue+typeScript 中 webpack.ProvidePlugin的使用
  • 原文地址:https://blog.csdn.net/weixin_46220576/article/details/127587235