用JOptionPane类是实现一个简单的学生成绩管理

package com.lovo.main;

import javax.swing.JOptionPane;

public class MainModth {

	static int[] nums = new int[20]; //存放学号
	static String[] unames = new String[20];//存放姓名
	static int[] grades = new int[ 20];//存放成绩
	static int nar = 0;//存放数组最大下标
	/**
	 * main方法
	 */
	public static void main(String[] args) {
		int n = 0;//记录登录次数
		int num = 0;//接收输入的操作编号
		JOptionPane.showMessageDialog(null, "欢迎光临");
		while(n<3){
			if(loginIf()){
				break;
			}
			else{
				JOptionPane.showMessageDialog(null, "用户名或密码错误");
			}
			if(n == 2){
				JOptionPane.showMessageDialog(null, "非法用户");
				System.exit(0);
			}
			n++;
		}
		//登录成功,显示主界面
		while(true){
			String sNum = JOptionPane.showInputDialog("1、添加\n" +
					"2、显示\n" +
					"3、删除\n" +
					"4、查找\n" +
					"5、修改\n" +
					"6、排序\n" +
					"7、退出\n","1");
			if(sNum!=null){
				num = Integer.parseInt(sNum);
			}
			else{
				JOptionPane.showMessageDialog(null, "非法输入");
			}
			switch (num) {
			//添加学生成绩
			case 1:		
				addNum();
				showNum();
				break;
			//显示所有信息
			case 2:
				showNum();
				break;
			//删除学生成绩
			case 3:		
				deleteNum();
				showNum();
				break;
			//查找学生成绩
			case 4:
				fNum();
				break;
			//修改学生成绩
			case 5:				
				xNum();
				showNum();//修改成功显示信息
				break;
			//降序排列
			case 6:
				pxNum();
				showNum();//排序成功显示信息
				break;
			//退出
			case 7:
				exit();
				break;

			default:
				JOptionPane.showMessageDialog(null, "非法输入");
				break;
			}
		}
		
	}
	/**
	 * 判断登录是否成功
	 */
	public static boolean loginIf(){
		String user = JOptionPane.showInputDialog("请输入用户名:","123");
		String pwd = JOptionPane.showInputDialog("请输入密码:","123");
		if(login(user,pwd)){
			return true;
		}
		else{
			return false;
		}
		
	}
	/**
	 * 登录验证
	 * @param user 用户名
	 * @param pwd  密码
	 * @return
	 */
	public static boolean login(String user,String pwd){
		if(user.equals("123")&&pwd.equals("123")){
			return true;
		}
		else{
			return false;
		}
	}
	/**
	 * 添加数据
	 * @param name 姓名
	 * @param num  学号
	 * @param grade成绩
	 * @return
	 */
	public static boolean addNum(){
		String snum = JOptionPane.showInputDialog("请输入学号");
		String name = JOptionPane.showInputDialog("请输入姓名");
		String sgrade = JOptionPane.showInputDialog("请输入成绩");
		int num = Integer.parseInt(snum);
		int grade = Integer.parseInt(sgrade);
		if(nar>nums.length){
			JOptionPane.showMessageDialog(null, "学生已满");
			return false;
		}
		else{
			nums[nar] = num;
			unames[nar] = name;
			grades[nar] = grade;
			nar++;
			return true;
		}		
	}
	/**
	 * 显示所有信息
	 */
	public static void showNum(){
        String s = "学好   姓名   成绩\n";
		for (int i = 0; i < nar; i++) {
			s += nums[i] + "        " + unames[i] + "        " + grades[i]+"\n";
		}
		JOptionPane.showMessageDialog(null, s);
	}
	
	/**
	 * 删除学生成绩
	 */
	public static boolean deleteNum(){
	   int n = -1;
	   String name = JOptionPane.showInputDialog("请输入删除学生姓名");
       for (int i = 0; i < nar; i++) {
    	   if(unames[i].equals(name)){
    		   n = i;
    		   break;
    	   }
	   }
       if(n == -1){
    	   JOptionPane.showMessageDialog(null, "找不到该学生");
    	   return false;
       }
       else{
    	   for (int i = n; i < nar-1; i++) {
    		   nums[i] = nums[i+1];
    		   unames[i] = unames[i+1];
    		   grades[i] = grades[i+1];
		   }
    	   nar--;//最大下标-1
    	   return true;
       }
	
	}
	/**
	 * 查找信息
	 */
	public static void fNum(){
		String fname = JOptionPane.showInputDialog("请输入查找学生姓名");
		String s = "";
		int n = -1;
		for (int i = 0; i < nar; i++) {
			if(unames[i].equals(fname)){
				n = i;
			}
		}
		if(n == -1){
			JOptionPane.showMessageDialog(null, "没有找到该学生");
		}
		else{
			JOptionPane.showMessageDialog(null, "学号:"+nums[n]+"  姓名:"+unames[n]+"  成绩:"+grades[n]);
		}
		return;
	}
	/**
	 * 修改信息
	 */
	public static boolean xNum(){
		String name = JOptionPane.showInputDialog("请输入要修改的学生姓名");
		String s = "";
		int n = -1;
		for (int i = 0; i < nar; i++) {
			if(unames[i].equals(name)){
				n = i;
			}
		}
		if(n == -1){
			JOptionPane.showMessageDialog(null, "没有找到该学生");
			return false;
		}
		else{
			String xnum = JOptionPane.showInputDialog("请输入学号");
			String xname = JOptionPane.showInputDialog("请输入姓名");
			String xgrade = JOptionPane.showInputDialog("请输入成绩");
			int inum = Integer.parseInt(xnum);
			int grade = Integer.parseInt(xgrade);
			nums[n] = inum;
			unames[n] = xname;
			grades[n] = grade;	
			return true;
		}
	}
	
	/**
	 * 排序
	 */
	public static void pxNum(){
		int ctemp = 0;//存放成绩的中间变量
		String ntemp = "";//存放姓名的中间变量
		int xtemp = 0;//存放学号的中间变量
		for (int i = 0; i < nar; i++) {
			for (int j = i+1; j < nar; j++) {
				if(grades[i]<grades[j]){
					//交换成绩
					ctemp = grades[i];
					grades[i] = grades[j];
					grades[j] = ctemp;
					//交换学号
					xtemp = nums[i];
					nums[i] = nums[j];
					nums[j] = xtemp;
					//交换姓名
					ntemp = unames[i];
					unames[i] = unames[j];
					unames[j] = ntemp;
				}
			}
		}
	}
	/**
	 * 退出
	 */
	public static void exit(){
		System.exit(0);
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作一个简单学生成绩管理系统,需要按照以下步骤进行: 1. 设计数据结构 首先,需要设计数据结构来存储学生的信息和成绩。可以使用一个学生来表示每个学生,其中包含姓名、学号、班级、成绩等属性。 2. 实现界面 其次,需要实现一个界面来展示学生信息和成绩。可以使用Java Swing或JavaFX来实现界面。 3. 实现功能 最后,需要实现以下功能: - 添加学生:将新学生添加到系统中。 - 删除学生:从系统中删除学生。 - 修改学生信息:修改学生的姓名、学号、班级等信息。 - 添加成绩:为学生添加成绩。 - 修改成绩:修改学生的成绩。 - 查询学生信息:根据姓名、学号等条件查询学生信息。 - 统计成绩:计算学生的平均成绩、最高分、最低分等统计信息。 参考代码如下: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.ArrayList; public class StudentManagementSystem extends JFrame implements ActionListener { private JTextField nameField, idField, classField, scoreField; private JButton addButton, deleteButton, modifyButton, queryButton, statButton; private JTextArea resultArea; private ArrayList<Student> studentList; public StudentManagementSystem() { super("学生成绩管理系统"); setSize(600, 400); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); studentList = new ArrayList<Student>(); JPanel inputPanel = new JPanel(new GridLayout(5, 2)); inputPanel.add(new JLabel("姓名:")); nameField = new JTextField(20); inputPanel.add(nameField); inputPanel.add(new JLabel("学号:")); idField = new JTextField(20); inputPanel.add(idField); inputPanel.add(new JLabel("班级:")); classField = new JTextField(20); inputPanel.add(classField); inputPanel.add(new JLabel("成绩:")); scoreField = new JTextField(20); inputPanel.add(scoreField); addButton = new JButton("添加"); addButton.addActionListener(this); inputPanel.add(addButton); deleteButton = new JButton("删除"); deleteButton.addActionListener(this); inputPanel.add(deleteButton); modifyButton = new JButton("修改"); modifyButton.addActionListener(this); inputPanel.add(modifyButton); queryButton = new JButton("查询"); queryButton.addActionListener(this); inputPanel.add(queryButton); statButton = new JButton("统计"); statButton.addActionListener(this); inputPanel.add(statButton); resultArea = new JTextArea(10, 40); resultArea.setEditable(false); Container contentPane = getContentPane(); contentPane.add(inputPanel, BorderLayout.NORTH); contentPane.add(new JScrollPane(resultArea), BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { if (e.getSource() == addButton) { String name = nameField.getText().trim(); String id = idField.getText().trim(); String className = classField.getText().trim(); String scoreStr = scoreField.getText().trim(); if (name.equals("") || id.equals("") || className.equals("") || scoreStr.equals("")) { JOptionPane.showMessageDialog(this, "请输入完整信息", "错误", JOptionPane.ERROR_MESSAGE); return; } try { double score = Double.parseDouble(scoreStr); Student student = new Student(name, id, className, score); studentList.add(student); resultArea.setText("添加成功\n" + student.toString()); } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(this, "成绩格式错误", "错误", JOptionPane.ERROR_MESSAGE); } } else if (e.getSource() == deleteButton) { String id = idField.getText().trim(); boolean deleted = false; for (int i = 0; i < studentList.size(); i++) { Student student = studentList.get(i); if (student.getId().equals(id)) { studentList.remove(i); deleted = true; break; } } if (deleted) { resultArea.setText("删除成功"); } else { resultArea.setText("未找到该学生"); } } else if (e.getSource() == modifyButton) { String id = idField.getText().trim(); boolean modified = false; for (int i = 0; i < studentList.size(); i++) { Student student = studentList.get(i); if (student.getId().equals(id)) { String name = nameField.getText().trim(); String className = classField.getText().trim(); String scoreStr = scoreField.getText().trim(); if (!name.equals("")) { student.setName(name); } if (!className.equals("")) { student.setClassName(className); } if (!scoreStr.equals("")) { try { double score = Double.parseDouble(scoreStr); student.setScore(score); } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(this, "成绩格式错误", "错误", JOptionPane.ERROR_MESSAGE); } } modified = true; break; } } if (modified) { resultArea.setText("修改成功"); } else { resultArea.setText("未找到该学生"); } } else if (e.getSource() == queryButton) { String name = nameField.getText().trim(); String id = idField.getText().trim(); if (!name.equals("")) { boolean found = false; for (Student student : studentList) { if (student.getName().equals(name)) { resultArea.setText(student.toString()); found = true; break; } } if (!found) { resultArea.setText("未找到该学生"); } } else if (!id.equals("")) { boolean found = false; for (Student student : studentList) { if (student.getId().equals(id)) { resultArea.setText(student.toString()); found = true; break; } } if (!found) { resultArea.setText("未找到该学生"); } } else { resultArea.setText("请输入姓名或学号"); } } else if (e.getSource() == statButton) { double sum = 0; double max = Double.MIN_VALUE; double min = Double.MAX_VALUE; int count = studentList.size(); for (Student student : studentList) { double score = student.getScore(); sum += score; max = Math.max(max, score); min = Math.min(min, score); } double average = sum / count; resultArea.setText("平均成绩:" + average + "\n最高分:" + max + "\n最低分:" + min); } } public static void main(String[] args) { StudentManagementSystem system = new StudentManagementSystem(); system.setVisible(true); } } class Student { private String name; private String id; private String className; private double score; public Student(String name, String id, String className, double score) { this.name = name; this.id = id; this.className = className; this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } public String toString() { return "姓名:" + name + "\n学号:" + id + "\n班级:" + className + "\n成绩:" + score; } } ``` 注意:这只是一个简单实现,还可以根据实际需求进行扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值