2017 java期末上机练习
仅供参考!
一、最大值、最小值、平均数
package examination; import java.util.Arrays;
import java.util.Scanner; /**
* 1. 从键盘输入10个成绩
* 2. 对这10个数字进行排序并从小到大显示
* 3. 输出最大值和最小值
* 4. 输出平均值
*
*/
public class gradeTest
{
public static void main(String[] args)
{
int[] grades = new int[10]; // 10个成绩
float sum = 0; // 10个成绩的和 Scanner scan = new Scanner(System.in); // 从键盘接收数据 System.out.println("请输入10个整数并以空格分隔:");
// 示例:33 25 13 67 76 85 90 83 99 91
for (int i = 0; i < 10; i++)
{
grades[i] = scan.nextInt(); // 成绩 赋值
sum += grades[i]; // 成绩累加
} scan.close(); // 关闭 Scanner 对象
Arrays.sort(grades); // 升序排序 // 遍历排序结果
for (int i = 0; i < grades.length; i++)
{
int j = grades[i];
System.out.print(j + " ");
}
// 输出最大值、最小值、平均数
System.out.println();
System.out.println("最大值:" + grades[grades.length - 1]);
System.out.println("最小值:" + grades[0]);
System.out.println("平均数:" + sum / grades.length);
} }
二、简单GUI测试
要求:
1.用户登录界面 可以通过按钮进入注册界面;
2.注册界面具有跳转到留言板和查看留言功能;
3.留言板内容可以初始化、保存到ly.txt文件
- 登录界面
package examination; import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.GridLayout;
import java.awt.event.ActionEvent; public class Login extends JFrame
{
JLabel jlUser, jlPwd; //标签
JTextField jtfUsername; //单行文本框
JPasswordField jpfPwd; //密码框 JPanel jp1, jp2, jp3; //面板容器
JButton jbtnRegist; //注册按钮 public Login()
{
jtfUsername = new JTextField(10); // 创建单行文本框
jpfPwd = new JPasswordField(10); // 创建密码文本框 jlUser = new JLabel("用户名"); // 创建标签
jlPwd = new JLabel("密 码"); // 创建标签 jbtnRegist = new JButton("注 册"); // 创建“注册”按钮 // 监听器:按钮事件
jbtnRegist.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
new Regist();
}
});
// jb2 = new JButton("取消");
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel(); // 设置 网格 布局
getContentPane().setLayout(new GridLayout(3, 1)); // 面板1添加用户名和文本框
jp1.add(jlUser);
jp1.add(jtfUsername); // 面板2添加密码和密码输入框
jp2.add(jlPwd);
jp2.add(jpfPwd); jp3.add(jbtnRegist); // 面板3添加注册按钮 // 将三块面板添加到登陆框
getContentPane().add(jp1);
getContentPane().add(jp2);
getContentPane().add(jp3); // 设置显示
this.setVisible(true);
this.setTitle("登录");
this.setSize(300, 200);
this.setLocation(200, 200); // 退出程序
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args)
{
new Login();
}
}
- 注册界面
package examination; import javax.swing.*;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.awt.event.ActionEvent; public class Regist extends JFrame
{
JButton jbtnCheck; // “查看留言”按钮
JButton jbtnMessage; // “留言”按钮 JPanel jPanel; //面板容器 public Regist()
{
jbtnMessage = new JButton("留 言");
jbtnCheck = new JButton("查看留言"); // 按钮事件:编辑留言
jbtnMessage.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
new MessageBoard();
}
});
// 按钮事件:查看留言
jbtnCheck.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
String msg = readFile();
// 查看文件中的留言
if (!msg.equals(""))
{
JOptionPane.showMessageDialog(null, msg, "留言板", JOptionPane.INFORMATION_MESSAGE); // 消息提示框
}
else
{
JOptionPane.showMessageDialog(null, "您还没有留言!", "提示", JOptionPane.ERROR_MESSAGE);
}
}
}); jPanel = new JPanel();
jPanel.add(jbtnMessage);
jPanel.add(jbtnCheck); getContentPane().add(jPanel); // 设置显示
this.setVisible(true);
this.setTitle("注册");
this.setSize(300, 200);
this.setLocation(220, 200); // 关闭当前窗口:释放本窗口资源,但不退出主程序
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } /**
* 读文件,并返回到字符串
* @return
*/
protected static String readFile()
{
String fileName = "./ly.txt"; // 默认读取当前项目下
String msg = ""; //留言内容
try
{
FileReader fr = new FileReader(fileName);
BufferedReader bfr = new BufferedReader(fr); String str = null;
while ((str = bfr.readLine()) != null)
{
msg += str + "\n";
}
bfr.close();
fr.close(); } catch (IOException ioException)
{ } return msg;
} public static void main(String[] args)
{
new Regist();
}
}
- 留言板界面
package examination; import javax.swing.*;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent; public class MessageBoard extends JFrame
{
JTextArea jTextArea; // 多行文本框
JButton jbtnSave; // “保存”按钮
JPanel jPanel; // 面板容器 public MessageBoard()
{
jTextArea = new JTextArea(); // 创建文本编辑区
jTextArea.setLineWrap(true); // 自动换行 // 初始化留言文本
String msg = Regist.readFile();
// 查看文件中的留言
if (!msg.equals(""))
{
jTextArea.setText(msg);
} jbtnSave = new JButton("保存留言"); // 按钮事件:编辑留言,并保存到目录下为“ly.txt”
jbtnSave.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
saveFile(); // 保存到文件
dispose(); // 关闭当前窗口
}
}); // 设置边界布局
getContentPane().setLayout(new BorderLayout());
getContentPane().add(jbtnSave, BorderLayout.SOUTH);
getContentPane().add(jTextArea, BorderLayout.CENTER); // 设置显示
this.setVisible(true);
this.setTitle("留言板");
this.setSize(300, 200);
this.setLocation(240, 200); // 关闭当前窗口:释放本窗口资源,但不退出主程序
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } private void saveFile()
{
String fileName = "./ly.txt"; // 默认保存当前项目下 try
{
FileWriter fw = new FileWriter(fileName);
BufferedWriter bfw = new BufferedWriter(fw);
bfw.write(jTextArea.getText(), 0, jTextArea.getText().length());
bfw.flush();
fw.close(); JOptionPane.showMessageDialog(null, "留言成功!"); // 消息提示框 } catch (IOException ioException)
{
JOptionPane.showMessageDialog(null, "留言失败!", "错误", JOptionPane.ERROR_MESSAGE);
}
} public static void main(String[] args)
{
new MessageBoard();
}
}
三、制作一个提醒器
提示:
1.能够设计一个时间和一个内容,当到了设定时间弹出对话框显示设定内容;
2.可以设置好友生日,到了生日的前一天能够提示“明天是那个好友的生日”
package examination; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date; import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer; /**
* 测试swing中Timer的使用
* 一个显示时间的GUI程序
* @author wasw100
*
*/
public class TimerTest extends JFrame implements ActionListener {
// 一个显示时间的JLabel
private JLabel jlTime = new JLabel();
private Timer timer; public TimerTest() {
setTitle("Timer测试");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(180, 80);
add(jlTime); //设置Timer定时器,并启动
timer = new Timer(500, this);
timer.start();
setVisible(true);
} /**
* 执行Timer要执行的部分,
*/
@Override
public void actionPerformed(ActionEvent e) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
jlTime.setText(format.format(date)); } public static void main(String[] args) {
new TimerTest();
}
}
2017 java期末上机练习的更多相关文章
- java期末总结
java期末总结: java语言特点:1.简洁有效 2.可移植性 3.面向对象 4.解释型 5.适合分布式计算 6.拥有较好的性能 7.健壮.防患于未然 8.具有多线程处理能力 9.具有较高的安全性 ...
- Java第一次上机实验源代码
小学生计算题: package 第一次上机实验_; import java.util.*; public class 小学计算题 { public static void main(String[] ...
- Mac IntelliJ IDEA 2017(java开发集成环境)附注册码和破解教程 v2017.3.5破解版
原文:http://www.orsoon.com/Mac/155938.html 原文中含有软件下载地址 软件介绍 IntelliJ IDEA 2017 Mac激活版是Mac平台上的一款java开发集 ...
- 2016级算法期末上机-H.难题·AlvinZH's Fight with DDLs III
1119 AlvinZH's Fight with DDLs III 思路 难题,最小点覆盖. 分析题意,某一个任务,既可以在笔记本A的 \(a\) 模式下完成,也可以在笔记本B的 \(b\) 模式下 ...
- 2016级算法期末上机-D.简单·AlvinZH's Fight with DDLs I
1117 AlvinZH's Fight with DDLs I 思路 简单题,动态规划. 本题与期末练习赛B题很相似,而且更为简单些.简化问题:在数字序列上取数,不能取相邻的数. DP数组定义,dp ...
- java期末课程总结
期末课程总结 转眼间,这个学期就要过去了,我们Java的学习也接近了尾声,回想到这个学期刚开始接触到Java的时候,感觉什么都不懂,但现在似乎有了门路,不会载懵懵懂懂, 虽然本学期面向对象与Java程 ...
- Java期末考试冲刺总结
经过长达将近三个小时的冲刺,我感觉身心俱疲,但它无法掩盖我敲代码的欲望! 三个小时我只实现了公文流转系统的的部分功能. 我深刻的意识到建民老师说的这套关系之复杂,它真的是太复杂了!!!没有系统的梳理, ...
- Java期末设计(十三周)
一.项目完成计划 十三周和十四周完成用户交互界面的设计(1.登陆界面2.订票以及查询界面3.用户管理界面4.退票界面): 十三周完成登陆界面,十四周完成订票以及查询界面,用户管理界面和 ...
- JAVA期末设计第十三周
一.项目完成计划 十三周和十四周完成用户交互界面的设计(1.登陆界面2.订票以及查询界面3.用户管理界面4.退票界面): 十三周完成登陆界面,十四周完成订票以及查询界面,用户管理界面和退票界面 十五周 ...
随机推荐
- Android 基于帧布局实现一个进度条 FrameLayout+ProgressBar
在FrameLayout中添加一个ProgressBar居中 <ProgressBar android:layout_gravity="center" android:id= ...
- 百度地图地址查询API使用
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgsAAALxCAIAAABdNHLmAAAgAElEQVR4nOy9/VMbZ5rvnf/hbM7zy3 ...
- MQTT协议笔记之mqtt.io项目Websocket协议支持
前言 MQTT协议专注于网络.资源受限环境,建立之初不曾考虑WEB环境,倒也正常.虽然如此,但不代表它不适合HTML5环境. HTML5 Websocket是建立在TCP基础上的双通道通信,和TCP通 ...
- Ubuntu 14.04.02 安装openvswitch-2.3.1
Open vSwitch安装 安装好操作系统 # lsb_release -a LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:c ...
- 几种减小javascript对性能影响的方法
1.将所有的script标签放在页面的底部,body的结束标签</body>之前. 2.将脚本打包,script标签越少,请求数就越少,加载速度加快,相应的响应时间变短. 3.使用非阻塞的 ...
- 安装Hadoop系列 — 安装SSH免密码登录
配置ssh免密码登录 1) 验证是否安装ssh:ssh -version显示如下的话则成功安装了OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 ...
- ios8 gps定位不好用
这样让iOS8正常使用定位功能呢? <1>你需要在info.plist表里面添加两条变量 在Info.plist中加入两个缺省没有的字段 NSLocationAlwaysUsageDesc ...
- 【Android】安卓中常用的图片加载方法
一.通过相机选图片: 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- eclipse 改变颜色,背景
Eclipse背景颜色修改: 操作界面默认颜色为白色.对于我们长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以我经常会改变workspace的背景色,使眼睛舒服一些.设置方法如下: 1.打开win ...
- Android动态添加布局
//1.利用LayoutInflater的inflate动态加载XML mLinearLayout = (LinearLayout)findViewById(R.id.LinearLayout_ID) ...