一、实验目的
1. 了解 Java 的数据类型
2. 掌握各种变量的声明方式。
3. 理解运算符的优先级。
4. 掌握 Java 基本数据类型、运算符与表达式。
5. 理解 Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
6. 通过以上内容,掌握 Java 语言的编程规则。
二、实验内容
(1) 使用逻辑运算符编写程序,输出 1 到 1000 之间,找出所有能 3 整除又可以被7 整除的数。
代码示例
public class blog {
public static void main(String[] args) {
// Loop through numbers from 1 to 1000
for (int i = 1; i <= 1000; i++) {
// Check if the number is divisible by both 3 and 7
if (i % 3 == 0 && i % 7 == 0) {
System.out.println(i);
}
}
}
}
这段程序中,i % 3 == 0 && i % 7 == 0 这个条件会检查变量 i 是否同时能被3和7整除。如果能够整除,则会打印出这个数。程序会遍历从1到1000的每一个数,检查每个数是否满足条件。如果满足,就会输出这个数。
(2)分别使用 if 语句和 switch 语句编写程序,功能如下:/**
功能:输入百分制考试成绩,打印出相应的等级。设 A 为 90 分以上、B 为80 分以上、C
为 70 分以上、D 为 60 分以上、E 为 59 分以下。分别使用if语句和switch语句实现,使用switch语句,建议使用default语句。
注:Scanner scanner = new Scanner(System.in);
System.out.println("Please input a score");
float score = Float.parseFloat(scanner.nextLine());
代码示例(if)
// 使用if实现
import java.util.Scanner;
public class blog {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入分数:");
float score = Float.parseFloat(scanner.nextLine());
if (score > 100 || score < 0) {
System.out.println("输入错误,请重新输入!");
}else if (score >= 90 && score <= 100) {
System.out.println("A");
} else if (score >= 80 ) {
System.out.println("B");
} else if (score >= 70) {
System.out.println("C");
} else if (score >= 60) {
System.out.println("D");
} else if (score < 60) {
System.out.println("E");
} else {
System.out.println("输入错误,请重新输入!");
}
}
}
代码示例(Switch)
import java.util.Scanner;
public class blog {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入分数:");
float score = Float.parseFloat(scanner.nextLine());
if (score < 0 || score > 100) { // 输入错误的情况
System.out.println("输入错误,请重新输入");
return; // 结束程序
}
int scoreCategory = (int) score / 10; // 转换成等级区间
switch (scoreCategory) {
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");
break;
}
}
}
(3)使用 for 循环编写程序,输出九九乘法表,功能如下:
* 功能:打印九九乘法表
* 输入如下:
* 1 * 1 = 1
* 2 * 1 = 2 2 * 2 = 4
* 3 * 1 = 3 3 * 2 = 6 3 * 3 = 3
* 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
* 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
* 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
* 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
* 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8*8=64
* 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9*8=64 9*9=81
代码示例
public class blog {
public static void main(String[] args) {
// 外层循环控制行数
for (int i = 1; i <= 9; i++) {
// 内层循环控制每行显示的列数
for (int j = 1; j <= i; j++) {
System.out.print(j + " * " + i + " = " + (j * i) + "\t"); // 使用 \t 使输出对齐
}
System.out.println(); // 每完成一行打印后换行
}
}
}
这个程序中,我们首先开始外层循环,它遍历从1到9的数字,代表乘法表的每一行。对于每一行,我们再执行一个内层循环,这个循环遍历从1到当前行号(包含)的所有数字,代表乘法表的列。在内层循环中,我们打印当前列数 j 和当前行数 i 的乘积,而且使用 \t(代表一个制表符)来确保列之间有适当的间距,使输出结果更加整齐。每完成一行的打印后,我们使用 System.out.println() 来换行,以便开始打印下一行。
(4)使用 for 循环打印三角形
* 打印三角形-行数由用户控制台输入决定
* 例如:用户输入4
* *
* **
* ***
* ****
* ***
* **
* *
代码示例
import java.util.Scanner;
public class blog {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入三角形行数:");
int rows = scanner.nextInt();
// 打印上半部分
for (int i = 1; i <= rows; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println(); // 完成一行后换行
}
// 打印下半部分
for (int i = rows - 1; i > 0; i--) {
for (int j = i; j > 0; j--) {
System.out.print("*");
}
System.out.println(); // 完成一行后换行
}
}
}
在这个程序中,我们首先从控制台读取用户输入的行数。随后,第一个 for 循环用于打印三角形的上半部分。在这个循环中,对于每一行,我们打印的星号(*)数量等于当前的行数。
完成上半部分的打印后,第二个 for 循环用于打印三角形的下半部分。这个循环从 rows - 1 开始,逐渐递减至1,每行打印的星号数量与当前行数相等。
这样,整个程序就可以根据用户输入的行数来打印一个上下对称的三角形。
(5)使用 while 或 do{…}while 编写程序,完成猜数字游戏,功能如下:
* 类名:GuessNumber * 功能:猜数字游戏
* 1、系统随机给出一个0-1000之间一个随机整数
* 2、用户输入一个数字 系统给出提示--太小 太大 正确, 如果正确,直接结束游戏
* 3、10次都未猜中 结束游戏
参考代码
import java.util.Scanner;
import java.util.Random;
public class blog {
public static void main(String[] args) {
// 创建Random对象用于生成随机数
Random random = new Random();
// 生成一个0-1000之间的随机整数
int numberToGuess = random.nextInt(1001);
// 创建Scanner对象用于获取用户输入
Scanner scanner = new Scanner(System.in);
int numberOfTries = 0; // 初始化猜测次数
int userGuess = -1; // 用户的猜测值初始化为-1
System.out.println("欢迎来到猜数字游戏!");
System.out.println("我已经生成了一个0到1000范围内的数字。");
// 猜测次数少于10次且用户猜测不正确时继续循环
while (numberOfTries < 10 && userGuess != numberToGuess) {
System.out.print("输入你的猜想: ");
userGuess = scanner.nextInt(); // 读取用户输入的猜测值
numberOfTries++; // 猜测次数加1
// 提供反馈
if (userGuess < 0 || userGuess > 1000) {
System.out.println("请保证你猜想的范围在0到1000内。");
} else if (userGuess < numberToGuess) {
System.out.println("太小了,再猜一次吧!");
} else if (userGuess > numberToGuess) {
System.out.println("太大了,再猜一次吧!");
} else {
System.out.println("恭喜!你猜到了正确的数字!");
}
}
// 如果10次都没猜中,游戏结束,告诉用户正确答案
if (userGuess != numberToGuess) {
System.out.println("游戏结束!正确数字是: " + numberToGuess);
}
scanner.close(); // 关闭scanner对象
}
}
(4)编写学生成绩管理系统,系统分管理员、教师和学生三个不同角色登录,登录时需用户身份验证,验证成功后可以选择角色里的功能
1.管理员登录
2.教师登录
3.学生登录
4.退出系统
管理员功能
1.教师管理
2.学生管理
3.课程管理
4.信息维护
5.退出系统
教师功能
1.录入成绩
2.统计成绩
3.查看成绩
4.信息维护
5.退出系统
学生功能
1.查看成绩单
2.信息维护
3.退出系统
编写程序,完成以下功能:
管理员登录时,判断是否为“administrator”,密码“123”;登录成功显示管理员菜单
教师登录时,判断是否是“teacher”,密码“123”,登录成功显示教师菜单
学生登录时,判断是否为自己的姓名,密码为自己的学号;登录成功显示学生菜单(此处以张三 2024040601为例)
代码示例
import java.util.Scanner;
public class blog {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择登录角色:");
System.out.println("1. 管理员登录");
System.out.println("2. 教师登录");
System.out.println("3. 学生登录");
System.out.println("4. 退出系统");
System.out.print("请输入选项: ");
int role = scanner.nextInt();
scanner.nextLine(); // 吃掉换行符
switch (role) {
case 1:
if (adminLogin(scanner)) {
showAdminMenu(scanner);
}
break;
case 2:
if (teacherLogin(scanner)) {
showTeacherMenu(scanner);
}
break;
case 3:
if (studentLogin(scanner)) {
showStudentMenu(scanner);
}
break;
case 4:
System.out.println("系统退出,感谢使用!");
scanner.close();
return;
default:
System.out.println("无效的输入,请重新输入!");
}
}
}
private static boolean adminLogin(Scanner scanner) {
System.out.print("请输入管理员用户名: ");
String username = scanner.nextLine();
System.out.print("请输入密码: ");
String password = scanner.nextLine();
if ("administrator".equals(username) && "123".equals(password)) {
System.out.println("管理员登录成功!");
return true;
} else {
System.out.println("用户名或密码错误!");
return false;
}
}
private static boolean teacherLogin(Scanner scanner) {
System.out.print("请输入教师用户名: ");
String username = scanner.nextLine();
System.out.print("请输入密码: ");
String password = scanner.nextLine();
if ("teacher".equals(username) && "123".equals(password)) {
System.out.println("教师登录成功!");
return true;
} else {
System.out.println("用户名或密码错误!");
return false;
}
}
private static boolean studentLogin(Scanner scanner) {
System.out.print("请输入学生姓名: ");
String username = scanner.nextLine();
System.out.print("请输入学号: ");
String password = scanner.nextLine();
if ("张三".equals(username) && "2024040601".equals(password)) {
System.out.println("学生登录成功!");
return true;
} else {
System.out.println("姓名或学号错误!");
return false;
}
}
private static void showAdminMenu(Scanner scanner) {
int choice;
do {
System.out.println("管理员功能:");
System.out.println("1. 教师管理");
System.out.println("2. 学生管理");
System.out.println("3. 课程管理");
System.out.println("4. 信息维护");
System.out.println("5. 退出系统");
System.out.print("请选择功能: ");
choice = scanner.nextInt();
scanner.nextLine(); // 吃掉换行符
// 此处需要添加对应选项的功能实现
} while (choice != 5);
}
private static void showTeacherMenu(Scanner scanner) {
int choice;
do {
System.out.println("教师功能:");
System.out.println("1. 录入成绩");
System.out.println("2. 统计成绩");
System.out.println("3. 查看成绩");
System.out.println("4. 信息维护");
System.out.println("5. 退出系统");
System.out.print("请选择功能: ");
choice = scanner.nextInt();
scanner.nextLine(); // 吃掉换行符
// 此处需要添加对应选项的功能实现
} while (choice != 5);
}
private static void showStudentMenu(Scanner scanner) {
int choice;
do {
System.out.println("学生功能:");
System.out.println("1. 查看成绩单");
System.out.println("2. 信息维护");
System.out.println("3. 退出系统");
System.out.print("请选择功能: ");
choice = scanner.nextInt();
scanner.nextLine(); // 吃掉换行符
// 此处需要添加对应选项的功能实现
} while (choice != 3);
}
}
停留在世界边缘,与之惜别