Java 考生成绩统计工具实战解析:Swing对话框与流程控制
一、原题完整代码呈现
以下是计算机二级Java考试中关于输入输出对话框、数据类型转换及程序退出的典型题型,主要考察字符串转整数、消息对话框使用及程序终止方法,包含3处需要填写的空白(标记为//*********Found**********
):
import javax.swing.JOptionPane;
public class Java_1 {
public static void main( String args[] ){
//变量初始化
int passes = 0, //考生通过的数目
failures = 0, //考生不通过的数目
student = 1, //学生计数器
result; //一门考生结果
String input, //用户输入的值
output; //输出字符串
//处理10名学生,用计数器控制循环
while ( student <= 10 ) {
input = JOptionPane.showInputDialog(
"输入结果(1=通过,2=不通过)" );
//*********Found**********
result = Integer.parseInt( __________________ );
if ( result == 1 )
passes = passes + 1;
else
failures = failures + 1;
student = student + 1;
}
//结果处理
output = "通过: " + passes +
"\n不通过: " + failures;
if( passes > 8 )
output = output + "\n提高学费";
//*********Found**********
JOptionPane._________________________( null, output,
"对考试结果的分析示例",
JOptionPane.INFORMATION_MESSAGE );
//*********Found**********
System._______________( 0 );
}
}
二、空白处逐一解析与解答
1. 第一处空白:将输入字符串转换为整数
答案:input
//*********Found**********
result = Integer.parseInt( input );
解析: JOptionPane.showInputDialog()
返回用户输入的内容(字符串类型),而result
是int类型变量,需要存储1(通过)或2(不通过)。Integer.parseInt(String s)
方法用于将字符串转换为整数,此处需传入存储用户输入的input
变量,因此填写input
。
2. 第二处空白:显示结果的消息对话框
答案:showMessageDialog
//*********Found**********
JOptionPane.showMessageDialog( null, output,
"对考试结果的分析示例",
JOptionPane.INFORMATION_MESSAGE );
解析: JOptionPane
的showMessageDialog
方法用于显示包含信息的对话框,参数依次为:父组件(null
表示无父组件)、显示的消息(output
字符串)、对话框标题、消息类型(信息图标)。此处需要调用该方法展示统计结果,因此填写showMessageDialog
。
3. 第三处空白:程序正常退出
答案:exit
//*********Found**********
System.exit( 0 );
解析: System.exit(int status)
方法用于终止Java虚拟机(JVM),参数0
表示正常退出,非0表示异常退出。程序在显示结果后需要结束运行,因此调用System.exit(0)
,填写exit
。
三、完整正确代码
四、程序功能与运行说明
程序功能
该程序实现10名考生成绩的统计分析,核心功能包括:
- 通过对话框逐次接收10名考生的成绩(1表示通过,2表示不通过)
- 统计通过和不通过的人数
- 若通过人数超过8人,附加"提高学费"的提示信息
- 通过对话框显示统计结果,最后正常退出程序
运行说明
程序启动后,会弹出10次输入对话框,每次提示"输入结果(1=通过,2=不通过)":
- 每次输入1或2,点击"确定"进入下一次输入
- 若输入其他值,会抛出
NumberFormatException
(本题假设用户输入合法)
输入完成后,弹出消息对话框显示统计结果:
- 包含"通过: X"和"不通过: Y"(X+Y=10)
- 若X>8,额外显示"提高学费"
示例输出(假设通过9人,不通过1人):
通过: 9 不通过: 1 提高学费
- 点击消息对话框的"确定"后,程序终止运行。
五、核心知识点总结
Swing对话框的使用
- 输入对话框:
JOptionPane.showInputDialog(String message)
用于获取用户输入,返回值为String
类型 消息对话框:
JOptionPane.showMessageDialog(Component parent, Object message, String title, int messageType)
用于展示信息,参数说明:parent
:父组件(null
表示对话框居中显示在屏幕上)message
:要显示的内容(字符串或其他对象)title
:对话框标题栏文本messageType
:消息类型(如JOptionPane.INFORMATION_MESSAGE
显示信息图标)
- 输入对话框:
数据类型转换
字符串转整数:
Integer.parseInt(String s)
将数字字符串转换为int
类型,需注意:- 若字符串非数字格式(如"abc"),会抛出
NumberFormatException
- 转换后的值可直接用于数值运算(如本题中的条件判断)
- 若字符串非数字格式(如"abc"),会抛出
循环与分支控制
- 循环逻辑:
while (student <= 10)
控制输入10名学生的成绩,student
作为计数器自增 - 分支判断:
if (result == 1)
区分通过和不通过,分别累加passes
和failures
- 附加条件:
if (passes > 8)
根据通过人数决定是否添加额外提示信息
- 循环逻辑:
程序终止
System.exit(0)
:终止当前运行的Java虚拟机,参数0
表示正常退出(约定俗成)- 必要性:Swing程序中,若存在未关闭的窗口,虚拟机可能不会自动退出,显式调用可确保程序结束
六、常见错误与应试技巧
常见错误分析
- 第一处空白转换参数错误:写成
"input"
(字符串字面量,无法转换)或其他变量(如result
,未初始化),导致转换失败 - 第二处空白对话框方法错误:写成
showInputDialog
(再次弹出输入框,逻辑错误)或拼写错误(如showMessageDialg
),无法显示结果 - 第三处空白程序退出错误:写成
exit()
(缺少System.
前缀)或close()
(非System
类方法),程序无法正常终止
- 第一处空白转换参数错误:写成
应试技巧
- 对话框使用口诀:"输入用showInputDialog,返回字符串要转换;输出用showMessageDialog,四参数顺序记牢它"
- 类型转换:"字符串转整数,parseInt方法来帮助,参数就是输入串"
- 程序退出:"程序结束用exit,System类来调用,参数0表正常走"
- 逻辑控制:"循环计数控次数,分支判断分情况,结果拼接再输出"
通过本题,我们掌握了Swing对话框的输入输出用法、字符串到整数的类型转换、循环与分支的结合应用及程序终止的方法。这类交互式程序贴近实际应用场景,理解图形界面与业务逻辑的结合方式,对开发简单桌面应用具有重要意义。