首页 > 代码库 > 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期末上机练习