Java中通过键盘输入学生姓名,然后统计输入了多少个学生姓名

时间: 2024-05-07 13:20:47 浏览: 7
可以使用Scanner类来实现从键盘输入学生姓名并统计个数。具体实现如下: ```java import java.util.Scanner; public class StudentNameCounter { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int count = 0; // 计数器,用于统计学生姓名个数 while (true) { System.out.print("请输入学生姓名(输入exit退出):"); String name = scanner.nextLine(); if ("exit".equals(name)) { break; // 如果输入exit,则结束循环 } count++; // 统计学生姓名个数 } System.out.println("一共输入了" + count + "个学生姓名"); scanner.close(); } } ``` 运行上述代码,将会不断从键盘输入学生姓名,直到输入exit结束循环,最后输出输入的学生姓名个数。
相关问题

用Java实现以下描述:输入5个学生的信息(包含学号、姓名、3科成绩),统计各学生的总分,然后将学生信息和统计结果存入二进制数据文件STUDENT.DAT中,再从STUDENT.DAT文件中读取数据,寻找平均分最高的学生,并输出该学生的所有信息。完整代码即可

### 回答1: 以下是用 Java 实现上述功能的代码示例: ``` import java.io.*; import java.util.Scanner; // 定义学生类,包含学号、姓名、3科成绩、总分、平均分 class Student implements Serializable { int id; String name; int score1; int score2; int score3; int total; double avg; // 构造函数,用于创建学生对象 public Student(int id, String name, int score1, int score2, int score3) { this.id = id; this.name = name; this.score1 = score1; this.score2 = score2; this.score3 = score3; this.total = score1 + score2 + score3; this.avg = total / 3.0; } // 输出学生信息的方法 public void printInfo() { System.out.println("学号:" + id + " 姓名:" + name + " 成绩1:" + score1 + " 成绩2:" + score2 + " 成绩3:" + score3 + " 总分:" + total + " 平均分:" + avg); } } public class Main { public static void main(String[] args) throws IOException, ClassNotFoundException { // 创建学生数组,用于存储输入的 5 个学生信息 Student[] students = new Student[5]; // 创建输入流对象,用于从键盘输入学生信息 Scanner in = new Scanner(System.in); // 循环输入 5 个学生信息 for (int i = 0; i < 5; i++) { System.out.println("请输入第 " + (i + 1) + " 个学生的信息:"); System.out.print("学号:"); int id = in.nextInt(); System.out.print("姓名:"); String name = in.next(); System.out.print("成绩1:"); int score1 = in.nextInt(); System.out.print("成绩2:"); int score2 = in.nextInt ### 回答2: 下面是用Java实现的完整代码: ```java import java.io.*; class Student implements Serializable { private String id; private String name; private int[] scores; // 三科成绩 public Student(String id, String name, int[] scores) { this.id = id; this.name = name; this.scores = scores; } public int getTotalScore() { int total = 0; for (int score : scores) { total += score; } return total; } @Override public String toString() { return "学生信息:学号-" + id + ",姓名-" + name + ",成绩-" + scores[0] + "," + scores[1] + "," + scores[2]; } } public class Main { public static void main(String[] args) { // 输入5个学生的信息 Student[] students = new Student[5]; students[0] = new Student("001", "张三", new int[]{80, 85, 90}); students[1] = new Student("002", "李四", new int[]{75, 88, 92}); students[2] = new Student("003", "王五", new int[]{90, 92, 95}); students[3] = new Student("004", "赵六", new int[]{85, 80, 87}); students[4] = new Student("005", "刘七", new int[]{78, 87, 92}); try { // 将学生信息和统计结果存入二进制文件 FileOutputStream fos = new FileOutputStream("STUDENT.DAT"); ObjectOutputStream oos = new ObjectOutputStream(fos); for (Student student : students) { oos.writeObject(student); } oos.close(); // 从二进制文件中读取数据,寻找平均分最高的学生 FileInputStream fis = new FileInputStream("STUDENT.DAT"); ObjectInputStream ois = new ObjectInputStream(fis); Student highestAvgScoreStudent = null; double highestAvgScore = 0; for (int i = 0; i < students.length; i++) { Student student = (Student) ois.readObject(); double avgScore = (double) student.getTotalScore() / 3; if (avgScore > highestAvgScore) { highestAvgScore = avgScore; highestAvgScoreStudent = student; } } ois.close(); System.out.println("平均分最高的学生信息:"); System.out.println(highestAvgScoreStudent.toString()); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } } ``` 这段代码首先创建了一个`Student`类,用于存储学生的信息,包括学号、姓名和三科成绩。`getTotalScore`方法用于计算学生的总分。然后在`Main`类中,创建了一个包含5个学生信息的`students`数组。 接下来,代码使用`FileOutputStream`和`ObjectOutputStream`将学生信息和统计结果存入一个名为`STUDENT.DAT`的二进制数据文件。然后使用`FileInputStream`和`ObjectInputStream`从`STUDENT.DAT`文件中读取数据,寻找平均分最高的学生,并输出该学生的所有信息。 最后运行程序,控制台将输出平均分最高的学生的学生信息。 ### 回答3: 下面是使用Java实现题目描述的完整代码: ```java import java.io.*; class Student implements Serializable { private int studentId; private String studentName; private int score1; private int score2; private int score3; private int totalScore; public Student(int studentId, String studentName, int score1, int score2, int score3) { this.studentId = studentId; this.studentName = studentName; this.score1 = score1; this.score2 = score2; this.score3 = score3; this.totalScore = score1 + score2 + score3; } public int getTotalScore() { return totalScore; } public String toString() { return "学号:" + studentId + " 姓名:" + studentName + " 成绩1:" + score1 + " 成绩2:" + score2 + " 成绩3:" + score3 + " 总分:" + totalScore; } } public class Main { public static void main(String[] args) { Student[] students = new Student[5]; students[0] = new Student(1, "张三", 80, 85, 90); students[1] = new Student(2, "李四", 75, 90, 85); students[2] = new Student(3, "王五", 95, 80, 88); students[3] = new Student(4, "赵六", 88, 92, 75); students[4] = new Student(5, "钱七", 90, 70, 85); try { ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream("STUDENT.DAT")); for (Student student : students) { outputStream.writeObject(student); } outputStream.close(); } catch (IOException e) { e.printStackTrace(); } try { ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream("STUDENT.DAT")); Student maxAvgScoreStudent = null; int maxAvgScore = 0; for (int i = 0; i < students.length; i++) { Student student = (Student) inputStream.readObject(); System.out.println(student); if (student.getTotalScore() > maxAvgScore) { maxAvgScore = student.getTotalScore(); maxAvgScoreStudent = student; } } inputStream.close(); System.out.println("平均分最高的学生信息:"); System.out.println(maxAvgScoreStudent); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } } ``` 代码中首先定义了一个`Student`类,该类实现了`Serializable`接口,以便对象可以被序列化到二进制文件中。`Student`类有学生的学号、姓名以及3科成绩等属性,还有一个计算总分的方法`getTotalScore()`。 在`Main`类的`main`方法中,我们创建了一个包含5个学生信息的数组`students`。然后,我们通过`ObjectOutputStream`将学生信息写入到二进制数据文件`STUDENT.DAT`中。接着,使用`ObjectInputStream`从`STUDENT.DAT`文件中读取学生信息。 在读取过程中,我们同时计算平均分最高的学生,并将其存储在`maxAvgScoreStudent`变量中。最后,我们输出所有学生的信息以及平均分最高的学生的信息。 请注意,在实际使用中,应该添加异常处理以处理可能的文件操作异常。

定义一组字符串 names,键盘录入 10 个学生姓名保存到 names 数 组,判断 names 中有几个姓"张"的学生,及几个名字中含有“华”的学

下面是一个 Java 代码示例,实现了对输入的学生姓名进行判断,统计姓“张”的学生数量和名字中含有“华”的学生数量: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String[] names = new String[10]; int countZhang = 0; int countHua = 0; // 输入学生姓名并保存到 names 数组 for (int i = 0; i < 10; i++) { System.out.print("请输入第" + (i + 1) + "个学生的姓名:"); names[i] = scanner.nextLine(); } // 统计姓“张”的学生数量和名字中含有“华”的学生数量 for (String name : names) { if (name.startsWith("张")) { countZhang++; } if (name.contains("华")) { countHua++; } } System.out.println("姓\"张\"的学生数量为:" + countZhang); System.out.println("名字中含有\"华\"的学生数量为:" + countHua); } } ``` 运行程序后,可以依次输入 10 个学生姓名,然后程序会统计出姓“张”的学生数量和名字中含有“华”的学生数量,并输出结果。

相关推荐

最新推荐

recommend-type

Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法

主要介绍了Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法,涉及java文件I/O操作及字符串遍历、运算实现统计功能相关技巧,需要的朋友可以参考下
recommend-type

java实现学生成绩录入系统

主要为大家详细介绍了java实现学生成绩录入系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

【java课设】学生选课系统.pdf

根据课程信息和学生信息完成对课程的选修,需要专门的一个管理类来完成选修工作。 2、功能要求 (1)添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所要添加的类别,要求编号要唯一,如果添加...
recommend-type

Java的DataInputStream和DataOutputStream数据输入输出流

里我们来看一下Java的DataInputStream和DataOutputStream数据输入输出流的使用示例,两个类分别继承于FilterInputStream和FilterOutputStream:
recommend-type

Java实现计算一个月有多少天和多少周

主要介绍了Java实现计算一个月有多少天和多少周,本文直接给出实例代码,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

HSV转为RGB的计算公式

HSV (Hue, Saturation, Value) 和 RGB (Red, Green, Blue) 是两种表示颜色的方式。下面是将 HSV 转换为 RGB 的计算公式: 1. 将 HSV 中的 S 和 V 值除以 100,得到范围在 0~1 之间的值。 2. 计算色相 H 在 RGB 中的值。如果 H 的范围在 0~60 或者 300~360 之间,则 R = V,G = (H/60)×V,B = 0。如果 H 的范围在 60~120 之间,则 R = ((120-H)/60)×V,G = V,B = 0。如果 H 的范围在 120~180 之间,则 R = 0,G = V,B =
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。