实验一. 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");
	}
}

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

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] + " ");
		}
	}
}

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

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);
	}
}

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

四、 实验小结

通过本次实验,掌握了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对象。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值