首页 > 代码库 > 2017 java期末上机练习
2017 java期末上机练习
仅供参考!
一、最大值、最小值、平均数
1 package examination; 2 3 import java.util.Arrays; 4 import java.util.Scanner; 5 6 /** 7 * 1. 从键盘输入10个成绩 8 * 2. 对这10个数字进行排序并从小到大显示 9 * 3. 输出最大值和最小值 10 * 4. 输出平均值11 *12 */13 public class gradeTest14 {15 public static void main(String[] args)16 {17 int[] grades = new int[10]; // 10个成绩18 float sum = 0; // 10个成绩的和19 20 Scanner scan = new Scanner(System.in); // 从键盘接收数据21 22 System.out.println("请输入10个整数并以空格分隔:");23 // 示例:33 25 13 67 76 85 90 83 99 9124 for (int i = 0; i < 10; i++)25 {26 grades[i] = scan.nextInt(); // 成绩 赋值27 sum += grades[i]; // 成绩累加28 }29 30 scan.close(); // 关闭 Scanner 对象31 Arrays.sort(grades); // 升序排序32 33 // 遍历排序结果34 for (int i = 0; i < grades.length; i++)35 {36 int j = grades[i];37 System.out.print(j + " ");38 }39 // 输出最大值、最小值、平均数40 System.out.println();41 System.out.println("最大值:" + grades[grades.length - 1]);42 System.out.println("最小值:" + grades[0]);43 System.out.println("平均数:" + sum / grades.length);44 }45 46 }
二、简单GUI测试
要求:
1.用户登录界面 可以通过按钮进入注册界面;
2.注册界面具有跳转到留言板和查看留言功能;
3.留言板内容可以初始化、保存到ly.txt文件
- 登录界面
1 package examination; 2 3 import javax.swing.*; 4 import java.awt.event.ActionListener; 5 import java.awt.GridLayout; 6 import java.awt.event.ActionEvent; 7 8 public class Login extends JFrame 9 {10 JLabel jlUser, jlPwd; //标签11 JTextField jtfUsername; //单行文本框12 JPasswordField jpfPwd; //密码框13 14 JPanel jp1, jp2, jp3; //面板容器15 JButton jbtnRegist; //注册按钮16 17 public Login()18 {19 jtfUsername = new JTextField(10); // 创建单行文本框20 jpfPwd = new JPasswordField(10); // 创建密码文本框21 22 jlUser = new JLabel("用户名"); // 创建标签23 jlPwd = new JLabel("密 码"); // 创建标签24 25 jbtnRegist = new JButton("注 册"); // 创建“注册”按钮26 27 // 监听器:按钮事件28 jbtnRegist.addActionListener(new ActionListener() 29 {30 public void actionPerformed(ActionEvent arg0) 31 {32 new Regist();33 }34 });35 // jb2 = new JButton("取消");36 jp1 = new JPanel();37 jp2 = new JPanel();38 jp3 = new JPanel();39 40 // 设置 网格 布局41 getContentPane().setLayout(new GridLayout(3, 1));42 43 // 面板1添加用户名和文本框44 jp1.add(jlUser);45 jp1.add(jtfUsername);46 47 // 面板2添加密码和密码输入框48 jp2.add(jlPwd);49 jp2.add(jpfPwd);50 51 jp3.add(jbtnRegist); // 面板3添加注册按钮52 53 // 将三块面板添加到登陆框54 getContentPane().add(jp1);55 getContentPane().add(jp2);56 getContentPane().add(jp3);57 58 // 设置显示59 this.setVisible(true);60 this.setTitle("登录");61 this.setSize(300, 200);62 this.setLocation(200, 200);63 64 // 退出程序65 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);66 67 }68 69 public static void main(String[] args)70 {71 new Login();72 }73 }
- 注册界面
1 package examination; 2 3 import javax.swing.*; 4 import java.awt.event.ActionListener; 5 import java.io.BufferedReader; 6 import java.io.FileReader; 7 import java.io.IOException; 8 import java.awt.event.ActionEvent; 9 10 public class Regist extends JFrame11 {12 JButton jbtnCheck; // “查看留言”按钮13 JButton jbtnMessage; // “留言”按钮14 15 JPanel jPanel; //面板容器16 17 public Regist()18 {19 jbtnMessage = new JButton("留 言");20 jbtnCheck = new JButton("查看留言");21 22 // 按钮事件:编辑留言23 jbtnMessage.addActionListener(new ActionListener()24 {25 public void actionPerformed(ActionEvent arg0)26 {27 new MessageBoard();28 }29 });30 // 按钮事件:查看留言31 jbtnCheck.addActionListener(new ActionListener()32 {33 public void actionPerformed(ActionEvent arg0)34 {35 String msg = readFile();36 // 查看文件中的留言37 if (!msg.equals(""))38 {39 JOptionPane.showMessageDialog(null, msg, "留言板", JOptionPane.INFORMATION_MESSAGE); // 消息提示框40 }41 else 42 {43 JOptionPane.showMessageDialog(null, "您还没有留言!", "提示", JOptionPane.ERROR_MESSAGE);44 }45 }46 });47 48 jPanel = new JPanel();49 jPanel.add(jbtnMessage);50 jPanel.add(jbtnCheck);51 52 getContentPane().add(jPanel);53 54 // 设置显示55 this.setVisible(true);56 this.setTitle("注册");57 this.setSize(300, 200);58 this.setLocation(220, 200);59 60 // 关闭当前窗口:释放本窗口资源,但不退出主程序61 this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);62 63 }64 65 /**66 * 读文件,并返回到字符串67 * @return68 */69 protected static String readFile()70 {71 String fileName = "./ly.txt"; // 默认读取当前项目下72 String msg = ""; //留言内容73 try74 {75 FileReader fr = new FileReader(fileName);76 BufferedReader bfr = new BufferedReader(fr);77 78 String str = null;79 while ((str = bfr.readLine()) != null)80 {81 msg += str + "\n";82 }83 bfr.close();84 fr.close();85 86 } catch (IOException ioException)87 {88 89 }90 91 return msg;92 }93 94 public static void main(String[] args)95 {96 new Regist();97 }98 }
- 留言板界面
1 package examination; 2 3 import javax.swing.*; 4 import java.awt.event.ActionListener; 5 import java.io.BufferedWriter; 6 import java.io.FileWriter; 7 import java.io.IOException; 8 import java.awt.BorderLayout; 9 import java.awt.event.ActionEvent;10 11 public class MessageBoard extends JFrame12 {13 JTextArea jTextArea; // 多行文本框14 JButton jbtnSave; // “保存”按钮15 JPanel jPanel; // 面板容器16 17 public MessageBoard()18 {19 jTextArea = new JTextArea(); // 创建文本编辑区20 jTextArea.setLineWrap(true); // 自动换行21 22 // 初始化留言文本23 String msg = Regist.readFile();24 // 查看文件中的留言25 if (!msg.equals(""))26 {27 jTextArea.setText(msg);28 }29 30 jbtnSave = new JButton("保存留言");31 32 // 按钮事件:编辑留言,并保存到目录下为“ly.txt”33 jbtnSave.addActionListener(new ActionListener()34 {35 public void actionPerformed(ActionEvent arg0)36 {37 saveFile(); // 保存到文件38 dispose(); // 关闭当前窗口39 }40 });41 42 // 设置边界布局43 getContentPane().setLayout(new BorderLayout());44 getContentPane().add(jbtnSave, BorderLayout.SOUTH);45 getContentPane().add(jTextArea, BorderLayout.CENTER);46 47 // 设置显示48 this.setVisible(true);49 this.setTitle("留言板");50 this.setSize(300, 200);51 this.setLocation(240, 200);52 53 // 关闭当前窗口:释放本窗口资源,但不退出主程序54 this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);55 56 }57 58 private void saveFile()59 {60 String fileName = "./ly.txt"; // 默认保存当前项目下61 62 try63 {64 FileWriter fw = new FileWriter(fileName);65 BufferedWriter bfw = new BufferedWriter(fw);66 bfw.write(jTextArea.getText(), 0, jTextArea.getText().length());67 bfw.flush();68 fw.close();69 70 JOptionPane.showMessageDialog(null, "留言成功!"); // 消息提示框71 72 } catch (IOException ioException)73 {74 JOptionPane.showMessageDialog(null, "留言失败!", "错误", JOptionPane.ERROR_MESSAGE);75 }76 }77 78 public static void main(String[] args)79 {80 new MessageBoard();81 }82 }
三、制作一个提醒器
提示:
1.能够设计一个时间和一个内容,当到了设定时间弹出对话框显示设定内容;
2.可以设置好友生日,到了生日的前一天能够提示“明天是那个好友的生日”
1 package examination; 2 3 import java.awt.event.ActionEvent; 4 import java.awt.event.ActionListener; 5 import java.text.DateFormat; 6 import java.text.SimpleDateFormat; 7 import java.util.Date; 8 9 import javax.swing.JFrame; 10 import javax.swing.JLabel; 11 import javax.swing.Timer; 12 13 /** 14 * 测试swing中Timer的使用 15 * 一个显示时间的GUI程序 16 * @author wasw100 17 * 18 */ 19 public class TimerTest extends JFrame implements ActionListener { 20 // 一个显示时间的JLabel 21 private JLabel jlTime = new JLabel(); 22 private Timer timer; 23 24 public TimerTest() { 25 setTitle("Timer测试"); 26 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 27 setSize(180, 80); 28 add(jlTime); 29 30 //设置Timer定时器,并启动 31 timer = new Timer(500, this); 32 timer.start();33 setVisible(true); 34 } 35 36 /** 37 * 执行Timer要执行的部分, 38 */ 39 @Override 40 public void actionPerformed(ActionEvent e) { 41 DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 42 Date date = new Date(); 43 jlTime.setText(format.format(date)); 44 45 } 46 47 public static void main(String[] args) { 48 new TimerTest(); 49 } 50 }
2017 java期末上机练习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。