JAVA语言编程练习--图形界面--设计学生录取程序

4. 提高题目-设计学生录取程序:

主界面有菜单,分别有(录取,统计,退出3个菜单项),“录取”及“统计”菜单功能和同名按钮功能一样。“退出”菜单项,关闭窗口并退出程序。

主界面中允许用户输入学生信息(学号,性别,总成绩,加分选择项,如体育特长生加10分,省级优秀三好学生加10分)。输入后,点击界面“录取”按钮,如符合录取条件(总分大于520),则弹出对话框提示“学号XX,姓名XX已录取”。如未录取,则弹出对话框提示“该生分数不足,未录取”。

点击“统计”菜单项,则弹出对话框显示已录取的所有学生信息(包括学号,姓名,分数,是否有加分项等)可以采用文本区显示。

运行结果:

JAVA语言编程练习--图形界面--设计学生录取程序_第1张图片

JAVA语言编程练习--图形界面--设计学生录取程序_第2张图片

 JAVA语言编程练习--图形界面--设计学生录取程序_第3张图片

程序代码:

package 图形界面作业3学生录取程序;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class EXAMPLE implements ActionListener{

	JFrame win;
	
	JTextField text,text2,text3;
	
	JButton button,button2;
	
	JRadioButton radio1,radio2;
	
	ButtonGroup group;
	
	JComboBox  comBox;
	
	JMenuBar menubar;//菜单条
	
	JMenu menu;//主菜单
	
	JMenuItem item1,item2,item3;//菜单项
	
	Box box1,box2,box3,basebox;
	
	JTextArea area;
	
	//构造方法
	EXAMPLE()
	{
		
		win = new JFrame();
		
		win.setBounds(100, 100, 800, 300);
		
		win.setTitle("学生录取系统");
		
		win.setVisible(true);
		
		win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		
		//init();
		box1 = Box.createHorizontalBox();
		
		box2 = Box.createHorizontalBox();
		
		box3 = Box.createHorizontalBox();
		
		basebox = Box.createVerticalBox();
		
		win.setLayout(new FlowLayout());
		
		JLabel biaoqian = new JLabel("学号:");//标签
		
		box1.add(biaoqian);
		
		//win.add(biaoqian);
		
		text = new JTextField(10);//文本框
		
		box1.add(text);
		//win.add(text);
		
		JLabel biaoqian2 = new JLabel("姓名:");//标签
		
		box1.add(biaoqian2);
		
		text3 = new JTextField(10);//文本框
		
		box1.add(text3);
		
		group = new ButtonGroup();
		
		radio1 = new JRadioButton("男生");//单选按钮
		
		radio2 = new JRadioButton("女生");
		
		group.add(radio1);

		group.add(radio2);
		
		box1.add(radio1);
		
		box1.add(radio2);
		
		//win.add(radio1);
		
		//win.add(radio2);
		
		JLabel lab2 = new JLabel("总成绩");//总成绩标签
		
		text2 = new JTextField(10);//总成绩文本框
		
		box1.add(lab2);
		
		box1.add(text2);
		
		//win.add(lab2);
		
		//win.add(text2);
		
		JLabel lab3 = new JLabel("加分选项");//加分选项
		
		comBox = new JComboBox();//下拉列表
		
		comBox.addItem("无");
		
		comBox.addItem("体育加10分");
		
		comBox.addItem("音乐加10分");
		
		comBox.addItem("美术加10分");
		
		box1.add(lab3);
		
		box1.add(comBox);
		//win.add(lab3);
		
		//win.add(comBox);
		
		button = new JButton("录取");//按钮
		
		box2.add(button);
		
		//win.add(button);
		
		button2 = new JButton("统计");
		
		box2.add(button2);
		//win.add(button2);
		
		menubar = new JMenuBar();//菜单条
		
		menu = new JMenu("菜单");
		
		item1 = new JMenuItem("录取");
		
		item2 = new JMenuItem("统计");
		
		item3 = new JMenuItem("退出");
		
		menu.add(item1);
		
		menu.addSeparator();
		
		menu.add(item2);
		
		menu.addSeparator();
		
		menu.add(item3);
		
		menubar.add(menu);
		
		box2.add(menubar);
		
		//win.add(menubar);
		
		area = new JTextArea(8,20);//文本区
		
		area.setText("已录取学生名单:\n\t学号\t姓名\t分数\t是否含有加分项\n");
		
		box3.add(new JScrollPane(area));//文本框带滑轮
		
		area.setVisible(false);
		
		//win.add(new JScrollPane(area));
	
		basebox.add(box1);
		
		basebox.add(box2);
		
		basebox.add(box3);
		
		win.add(basebox);
		
		//监听器
		
		item3.addActionListener(this);//退出
		
		button.addActionListener(this);//录取
		
		button2.addActionListener(this);//统计
		
		comBox.addActionListener(this);//加分项
		
		item1.addActionListener(this);//菜单录取
		
		item2.addActionListener(this);//菜单统计
		
	}
	
	//事件响应方法
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
		area.setVisible(false);//初始默认关闭文本框
		
		if(e.getActionCommand().equals("退出"))
		{
			win.setVisible(false);
			
			win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		}
		else if(e.getActionCommand().equals("录取"))
		{
			String acceptNums = text.getText();//学号
			
			String acceptName = text3.getText();//姓名
			
			String acceptScore = text2.getText();//分数
			
			double stuScore = Double.parseDouble(acceptScore);
			
			//设置加分项
			String com = comBox.getSelectedItem().toString();
			
			String nihao = new String("是");
			
			if(com.equals("无"))
			{
				nihao = "否";
			}
			
			if(stuScore>=520)
			{
				JOptionPane.showMessageDialog(null, "学号"+acceptNums+"姓名"+acceptName+"已被录取", null, JOptionPane.INFORMATION_MESSAGE);
				
				area.append(i+"\t"+acceptNums+"\t"+acceptName+"\t"+acceptScore+"\t"+nihao+'\n');
				
				i++;//记录录取人数
			}
			else {
				JOptionPane.showMessageDialog(null, "该生分数不足,未录取。", null,JOptionPane.INFORMATION_MESSAGE);
			}
		}
		else if(e.getActionCommand().equals("统计"))
		{
			area.setVisible(true);
		}
	}
	
	int i = 1;//记录录取人数
	
	//主方法
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		new EXAMPLE();
		
	}
	
}

你可能感兴趣的:(程序迷,java,开发语言,后端)