前言
本博客文章已收录至JavaScript专栏,阅读其他有关博客笔记请转至该专栏下查阅
传送门 -> JavaScript_程序员雨空集
实验二
实验2-1 根据平均分来划分等级
题目
- 在弹出框中依次输入语文、数学、英语、化学、历史分数。
- 计算平均分
- 等级:如果平均分大于等于90为优秀,小于90大于等于80为良好,小于80大于等于70为一般,小于70大于等于60为较差,小于60为很差
- 页面弹出框告知等级
- 用swich_case方式实现
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>根据平均分来划分等级</title>
</head>
<body>
<script>
var scores = [parseInt(prompt("请输入语文分数")), parseInt(prompt("请输入数学分数")),
parseInt(prompt("请输入英语分数")), parseInt(prompt("请输入化学分数")),
parseInt(prompt("请输入历史分数"))];
var sum = 0;
for (var i = 0; i < scores.length; i++) {
sum += scores[i];
}
var average = sum / scores.length;
var grade;
switch (true) {
case average >= 90:
grade = "优秀";
break;
case average >= 80:
grade = "良好";
break;
case average >= 70:
grade = "一般";
break;
case average >= 60:
grade = "较差";
break;
default:
grade = "很差";
}
document.write("你的等级是:" + grade);
</script>
</body>
</html>
效果展示
(1)全部输入90,输出“优秀”
(2)全部输入1,输出“很差”
实验2-2 加油优惠价格计算
题目
- 已知92号汽油,每升6元;如果大于等于20升,那么每升5.9;
- 已知97号汽油,每升7元;如果大于等于40升,那么每升6.5
- 编写JS程序,用户输入自己的汽油编号,然后输入自己加多少升,弹出价格
- 输入汽油编号。
- 输入想要加的油量。
- 根据编号和油量来规定单价、计算总价
- 页面中输出单价和总价钱
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>加油优惠价格计算</title>
</head>
<body>
<script>
// 用户输入汽油编号
var gasType = prompt("请输入汽油编号(92或97):");
// 用户输入加油量
var gasAmount = prompt("请输入加油量(升):");
// 根据用户输入的汽油编号和加油量计算价格
var price = 0;
var price02 = 0;
if (gasType === "92") {
if (gasAmount >= 20) {
price = gasAmount * 5.9;
price02 = 5.9;
} else {
price = gasAmount * 6;
price02 = 6;
}
} else if (gasType === "97") {
if (gasAmount >= 40) {
price = gasAmount * 6.5;
price02 = 6.5;
} else {
price = gasAmount * 7;
price02 = 7;
}
}
// 输出价格
document.write("汽油" + price02 + "元一升;");
document.write("共计:" + price + "元");
</script>
</body>
</html>
效果演示
实验2-3 统计成绩最大值和最小值
题目
输入小明的5门成绩,计算出总分,平均分、最高分,最低分。
- 定义一个数组arr,存放5门成绩。
- 定义总分变量sum=0。
- 定义最高分变量max=0。
- 定义最低分变量min=100。
- for循环遍历数组arr。
- 输出结果。
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>统计最大值和最小值</title>
</head>
<body>
<script>
// 定义一个数组arr,存放5门成绩
var arr = [];
var sum = 0;
var max = -Infinity; // 初始化为负无穷大
var min = Infinity; // 初始化为正无穷大
// 输入5门成绩,并将其存入数组arr中
for (var i = 0; i < 5; i++) {
var score = parseInt(prompt("请输入第" + (i+1) + "门成绩:"));
arr.push(score);
sum += score;
if (score > max) {
max = score;
}
if (score < min) {
min = score;
}
}
// 计算平均分
var average = sum / 5;
// 输出结果,用wirte形式
document.write("5门成绩分别是:"+arr[0]+","+arr[1]+","+arr[2]+","+arr[3]+","+arr[4] + "<br>");
document.write("总分是:" + sum + "<br>");
document.write("平均分:" + average + "<br>");
document.write("最高分:" + max + "<br>");
document.write("最低分:" + min + "<br>");
</script>
</body>
</html>
效果演示
实验2-4 while、do..while验证用户名和密码
题目
在网站上登录时会用到表单,让用户属于用户名和密码,输入正确才可以进入,本案例将采用while do..while两种循环方式来进行用户名和密码的验证。
- 用户输入用户名。
- 用户输入密码。
- 输入的内容,如果符合语句中的条件则提示“登录成功”,不符合时提示“用户名或者密码有误”,让你一直输入用户名和密码,直到输入正确为止。
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>登录验证</title>
</head>
<body>
<script>
var username = "admin";
var password = "123456";
var flag = false;
while(flag === false) {
var inputUsername = prompt("请输入用户名");
var inputPassword = prompt("请输入密码");
if (inputUsername === username && inputPassword === password) {
alert("登录成功");
flag = true;
} else {
alert("用户名或密码错误");
}
}
</script>
</body>
</html>
效果演示
- 先验证正确的
- 再验证错误的
实验2-5 按从大到小排序
题目
给出一组数,按照从大到小进行冒泡排序,从大到小序列输出。
- 定义数组arr,里边存放8个元素。
- 采用冒泡排序(共循环8-1次)
- 第一轮是比较7次 结果:(70 67 49 35 59 98 100 20)。
- 第二轮是比较6次 结果:(70 67 49 59 98 100 35 20)。
- 第三轮是比较5次 结果:(70 67 59 98 100 49 35 20)。
- 第四轮是比较4次 结果:(70 67 98 100 59 49 35 20)。
- 第五轮是比较3次 结果:(70 98 100 67 59 49 35 20)。
- 第六轮是比较2次 结果:(98 100 70 67 59 49 35 20)。
- 第七轮是比较1次 结果:(100 98 70 67 59 49 35 20)。
- 最后输出排序结果
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>按从大到小排序</title>
</head>
<body>
<script>
// 定义数组arr
var arr = [70, 67, 49, 35, 59, 98, 100, 20];
// 冒泡排序
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 弹出窗口显示排序后的数组
alert(arr);
</script>
</body>
</html>
效果演示
拓展2-1 三元运算符比较最大值
题目
给出3个数,在JavaScript中判断最大值,最小值。语法是 条件表达式?表达式1:表达式2。
- 在<script>中定义3个数。
- 运用三元运算符做比较。
- 输出最大值。
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>三元运算符比较最大值</title>
</head>
<body>
<script>
let num1 = 10;
let num2 = 200;
let num3 = 30;
//条件表达式
//num1>num2的话,就num1和num3去比
//num1<num2的话,就num2和num3去比
let max = ( num1 > num2 ? (num1 > num3 ? num1 : num3) : (num2 > num3 ? num2 : num3) );
window.alert(max)
console.log(max);
</script>
</body>
</html>
效果演示
拓展2-2 判断时间段
题目
使用比较运算符通过弹出框提示用户输入时间信息,根据用户输入的时间弹出问候信息。
- 用户输入的时间在6-12之间 弹出“上午好”
- 用户输入的时间在13-18之间 弹出“下午好”
- 用户输入的时间在19-23之间 弹出“晚上好”
- 用户输入的时间在0-5之间 弹出“这是休息时间,不要说话!”
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>判断时间段</title>
</head>
<body>
<script>
var InputNum = prompt("您输入的数字是(0~23之间)");
if (InputNum) {
InputNum = parseInt(InputNum);
if (InputNum >= 6 && InputNum <= 12) {
alert("上午好");
} else if (InputNum >= 13 && InputNum <= 18) {
alert("下午好");
} else if (InputNum >= 19 && InputNum <= 23) {
alert("晚上好");
} else if (InputNum >= 0 && InputNum <= 5) {
alert("这是休息时间,不要说话!");
} else {
alert("请输入正确的数字!");
}
} else {
alert("请输入数字!");
}
</script>
</body>
</html>
效果演示
- 输入0-5之间
- 输入6-12之间
- 输入13-18之间
- 输入19-23之间
- 什么都不输入
拓展2-3 求字符串数组中每一项的长度
题目
已知一个字符串数组,求字符串数组中每一个字符的长度,存储到一个新的数组中。
- 定义一个数组array,存放字符串元素。
- 定义个新数组newArray,用来存放字符串长度。
- for循环遍历array数组,并把每一项元素的长度赋值给newArray。
- 输出newArray新数组。
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>求字符串数组中每一项的长度</title>
</head>
<body>
<script>
let array = ['hello', 'world', 'JavaScript'];
let newArray = [];
// for循环遍历array数组,并把每一项元素的长度赋值给newArray
for (let i = 0; i < array.length; i++) {
newArray[i] = array[i].length;
}
// 输出newArray新数组
window.alert(newArray);
</script>
</body>
</html>
效果演示
拓展 2-4 输出数组长度
题目
数组中保存五个学生的数学成绩,遍历数组分别获取每一个学生的数学成绩分数,用length()函数获取数组的长度。
- 给数组arr赋值,存放5名同学的数学成绩。
- 使用length遍历数组。
- 输入每个同学的分数。
- 最后输出数组的长度。
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>输出数组长度</title>
</head>
<body>
<script>
let arr = [];
let length = 5;
// 输入每个同学的分数
for (let i = 0; i < length; i++) {
arr[i] = prompt("请输入第" + (i + 1) + "个同学分数");
}
// 使用length遍历数组
for (let i = 0; i < arr.length; i++) {
console.log("第" + (i + 1) + "个同学的分数是:" + arr[i]);
}
console.log("数组长度为" + length);
</script>
</body>
</html>
效果演示
拓展2-5 数组分隔
题目
将字符串数组用|或其他符号分割,使用for循环遍历数组,并打印出分隔之后的数组。
- 在数组中定义字符串函数aa,bb,cc,ee。
- 定义分隔符为 |。
- 输出aa|bb|cc|ee。
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>数组分隔</title>
</head>
<body>
<script>
let arr = ['aa', 'bb', 'cc', 'ee'];
let delimiter = '|';
// 初始化结果字符串
let result = '';
// 使用循环遍历数组
for (let i = 0; i < arr.length; i++) {
// 将当前元素与分隔符连接起来
result += arr[i];
// 如果不是最后一个元素,添加分隔符
if (i !== arr.length - 1) {
result += delimiter;
}
}
// 输出结果
console.log(result);
</script>
</body>
</html>