Java课程设计 学生基本信息管理

目录

一、团队成员

二、项目GIT

1.项目地址

2.项目Git提交截图​编辑

三、功能概述及功能架构图

四、程序运行结果截图

1.登录

2.输入错误密码

3.输入正确密码

4.添加学生信息

5.用文件存储信息

6.以学号查询学生信息

7.删除学生信息​编辑

8.文件同步信息

9.修改学生信息

10.同步文件信息​编辑

五、详细代码

1.student类

2.LoginGUI类

3.StudentManageView类

4.StudentService类

 六、心得体会及感悟


一、团队成员

成员姓名任务分配
林兴童(组长)

JavaSwing技术(监听器,组件),实现文件存储功能

整合实现代码,进行运行和纠错。

蔡冬灵

登录页面,实现增加、删除、查询、更改功能

实现文件存储功能

二、项目GIT

1.项目地址:林兴童/学生信息管理1 (gitee.com)
2.项目Git提交截图

三、功能概述及功能架构图

用java实现学生信息的管理,其中录入的数据包括:学号、姓名、性别、出生日期、政治面貌、家庭住址、电话、宿舍号,并且能够实现对学生信息的查询、增、删、改功能。

四、程序运行结果截图

1.登录

2.输入错误密码

3.输入正确密码

4.添加学生信息

5.用文件存储信息

6.以学号查询学生信息

7.删除学生信息

8.文件同步信息

9.修改学生信息

10.同步文件信息

五、详细代码

1.student类
package 例;

import java.io.Serializable;

class User{

private String userId;

private String password;

public String getUserId(){

return userId;

}

public void setUserId(String userId){

this.userId=userId;

}

public String getPassword(){

return password;

}

public void setPassword(String password){

this.password=password;

}

}

public class Student extends User implements Serializable{

private String id;

private String name;

private String sex;

private String birthday;

private String address;//age

private String dormitory;//major


private String landscape;  //Pc  

private String phone;

public String getId(){

return id;

}

public void setId(String id){

this.id=id;

}

public String getName(){

return name;

}

public void setName(String name){

this.name=name;

}

public String getSex(){

return sex;

}

public void setSex(String sex){

this.sex=sex;

}


public String getAddress() {
	return address;
}

public void setAddress(String address) {
	this.address = address;
}

public String getDormitory() {
	return dormitory;
}

public void setDormitory(String dormitory) {
	this.dormitory = dormitory;
}

public String getBirthday(){

return birthday;

}

public void setBirthday(String birthday){

this.birthday=birthday;

}



public String getLandscape() {
	return landscape;
}

public void setLandscape(String landscape) {
	this.landscape = landscape;
}

public String getPhone(){

return phone;

}
public Student() {
	// TODO Auto-generated constructor stub
}
public void setPhone(String phone){

this.phone=phone;

}


public String toString() {
    return id + "," + name + "," + sex + "," + birthday + "," + landscape + "," + address + "," + phone + "," + dormitory;
}




public Student(String id, String name, String sex, String birthday,  String landscape,String address,String phone,String dormitory) {
	super();
	this.id = id;
	this.name = name;
	this.sex = sex;
	this.birthday = birthday;
	this.address = address;
	this.dormitory = dormitory;
	this.landscape = landscape;
	this.phone = phone;
}

public void fromString(String s) {
    String[] parts = s.split(",");
  
    id = parts[0];
    name = parts[1];
    sex = parts[2];
    birthday = parts[3];
    landscape = parts[4];
    address = parts[5];
    phone = parts[6];
    dormitory = parts[7];
}
}
2.LoginGUI类
 
package 例;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import 例.Student;
import java.io.*;
import java.util.ArrayList;

public class LoginGUI{
	private JFrame jf;
	//水平box
	private Box center=Box.createVerticalBox();
	//学号的JPanel
	private JPanel idPanel=new JPanel();
	//密码的JPanel
	private JPanel passwordPanel=new JPanel();
	private JLabel lUserId=new JLabel("用户名");
	private JTextField tUserId=new JTextField(15);
	private JLabel lPassword=new JLabel("密   码");
	private JPasswordField tPassword=new JPasswordField(15);
	//按钮的JPanel
	private JPanel buttonPanel=new JPanel();
	private JButton bLogin=new JButton("登录");
	private JButton bCancel=new JButton("取消");
	//设置运行时窗口的大小
	Dimension faceSize=new Dimension(350,150);
	//获得屏幕的大小
	Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
	public void init(){
		jf=new JFrame("学生信息管理系统");
		//设置JFrame的名称
		jf.setTitle("登录");
		//将lUserId,tUserId放在idPanel中,idPanel默认水平放置
		idPanel.add(lUserId);
		idPanel.add(tUserId);
		passwordPanel.add(lPassword);
		passwordPanel.add(tPassword);
		center.add(idPanel);
		center.add(passwordPanel);
		buttonPanel.add(bLogin);
		buttonPanel.add(bCancel);
		//登录按钮的监听器
		bLogin.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				String userId=tUserId.getText();
				String password=String.valueOf(tPassword.getPassword());
				//开启接受数据的线程
				if(userId.trim().equals("")||userId==null||password.trim().equals("")||password==null){
					JOptionPane.showMessageDialog(jf,"用户名或密码不能为空!","提示",JOptionPane.WARNING_MESSAGE);
				}else{
					if(userId.equals("课设")&&password.equals("123456")){//真正的账号密码
						
						new StudentManageView().inits();
					}else{
						loginFailure();
					}
				}
			}
			
		});
		//取消按钮的监听器
		bCancel.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				System.exit(0);
			}
		});
		center.add(buttonPanel);
		jf.add(center);
		jf.pack();
		//设置JFame运行时的大小
		jf.setSize(faceSize);
		//设置JFame运行时的位置
		jf.setLocation((int)(screenSize.width-faceSize.getWidth())/2,(int)(screenSize.height-faceSize.getHeight())/2);
		//设置JFrame不可最大化
		jf.setResizable(false);
		//设置JFrame单机X时结束程序
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//设置JFrame可见
		jf.setVisible(true);
	}
	public void loginFailure(){
		JOptionPane.showMessageDialog(jf, "用户名或密码输入不正确!","提示",JOptionPane.WARNING_MESSAGE);
	}
	public static void main(String args[])throws Exception{
		new LoginGUI().init();
	}
}

3.StudentManageView类
 
package 例;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

class MyJTable extends JTable{
	/**
	 * 
	 */
	private static final long serialVersionUID = -3083638370004874364L;
	public MyJTable(TableModel dm){
		super(dm);
	}
	//设置表格不可编辑
	public boolean isCellEditable(int rowIndex,int columnIndex){
		return false;
	}
}
public class StudentManageView {

	private JFrame jf=new JFrame("学生信息管理系统");
	Dimension faceSize=new Dimension(800,600);
	private Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
	//按学号查询
	private JPanel pSelect=new JPanel();
	private JLabel lSelect=new JLabel("学号");
	private JTextField tSelect=new JTextField(15);
	private JButton bSelect=new JButton("查询");
	//查询结果放在一个JTable
	private MyJTable table;
	private DefaultTableModel tableModel;
	private JScrollPane tableScrollPane;
	private Object[] tableTitle={"学号","姓名","性别","出生日期:","政治面貌:","家庭住址:","联系方式:","宿舍号:"};
	private Object[][]tableData={new Object[]{""}};
	//对学生信息进行管理的添加、删除、修改按钮
	private JPanel buttonPanel=new JPanel();
	private JButton insert=new JButton("添加");
	private JButton delete=new JButton("删除");
	private JButton update=new JButton("修改");
	//单机添加、修改时弹出的对话框
	private JDialog dialog=new JDialog(jf,"学生管理");
	private Box box=Box.createVerticalBox();

	private JPanel pId=new JPanel(new FlowLayout(FlowLayout.LEFT));
	private JPanel pName=new JPanel(new FlowLayout(FlowLayout.LEFT));
	private JPanel pSex=new JPanel(new FlowLayout(FlowLayout.LEFT));
	private JPanel pAddress=new JPanel(new FlowLayout(FlowLayout.LEFT));
	private JPanel pDormitory=new JPanel(new FlowLayout(FlowLayout.LEFT));
	private JPanel pBirthday=new JPanel(new FlowLayout(FlowLayout.LEFT));
	private JPanel pLandscape=new JPanel(new FlowLayout(FlowLayout.LEFT));
	private JPanel pPhone=new JPanel(new FlowLayout(FlowLayout.LEFT));
	
	private JLabel lId=new JLabel("学 号");
	private JLabel lName=new JLabel("姓 名");
	private JLabel lSex=new JLabel("性 别");

	private JLabel lBirthday = new JLabel("出生日期:");
	private JLabel lLandscape = new JLabel("政治面貌:");
	private JLabel lAddress = new JLabel("家庭住址:");
	private JLabel lPhone = new JLabel("联系方式:");	
	private JLabel lDormitory = new JLabel("宿舍号:");
	private JTextField tId=new JTextField(15);
	private JTextField tName=new JTextField(15);
	private ButtonGroup bSex=new ButtonGroup();
	private JRadioButton boy=new JRadioButton("男");
	private JRadioButton girl=new JRadioButton("女");
	private JTextField tBirthday=new JTextField(15);
	private JTextField tLandscape=new JTextField(15);
	private JTextField tAddress=new JTextField(15);
	private JTextField tPhone=new JTextField(15);
	private JTextField tDormitory=new JTextField(15);
	
	
	private JPanel pButton=new JPanel();
	private JButton confirm=new JButton("确认");
	private JButton cancel=new JButton("取消");
	private StudentService service=new StudentService();
	
	//用于标记是添加还是修改
	private String id;
	void inits(){
		 readFromFile();
		pSelect.add(lSelect);
		pSelect.add(tSelect);
		pSelect.add(bSelect);
		//查询按钮的监听器
		
		bSelect.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
                 
				String userId=tSelect.getText().trim();
				if(userId.equals("")){
					
					Student[] student=service.selectAll();
					clearTable();
					for(Student s:student){
						insertTable(s);
					}
				}else{
					Student s=service.selectById(userId);
					if(s!=null){
						clearTable();
						insertTable(s);
					}else{
						selectFailure();
					}
				}
			}
		
	});
		//table
		tableModel=new DefaultTableModel(tableData,tableTitle);
		table=new MyJTable(tableModel);
		tableScrollPane=new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED  );
		//button
		buttonPanel.add(insert);
		buttonPanel.add(delete);
		buttonPanel.add(update);
		//添加按钮的监听器
		insert.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
		//	
				id=null;
				tId.setText("");
				tId.setEditable(true);
				tName.setText("");
				bSex.clearSelection();
				tAddress.setText("");

				tDormitory.setText("");
				tBirthday.setText("");
			    tLandscape.setText("");
				tPhone.setText("");
				dialog.setVisible(true);
				
			}
		});
		//删除按钮的监听器
		delete.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				//获得选择删除的行号数组
				int[] selected=table.getSelectedRows();
				//如果selected的长度为0,说明没有选择要删除的
				if(selected.length==0){
					JOptionPane.showMessageDialog(jf, "请选择要删除的信息!","提示",JOptionPane.WARNING_MESSAGE );
				}else{
					//提示是否要进行删除
					int flag=JOptionPane.showConfirmDialog(jf, "确认删除吗?","提示",JOptionPane.WARNING_MESSAGE );
					//如果选择是,则进行删除
					if(flag==JOptionPane.OK_OPTION ){
						for(int i=selected.length-1;i>=0;i--){
							service.delete((String)tableModel.getValueAt(selected[i], 0));
							tableModel.removeRow(selected[i]);
						}
					}
				}
			}
		});
		//修改按钮的监听器
		 update.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
		    int row=table.getSelectedRow();
		    //如果要进行修改,就将id=要修改的学号
		    id=String.valueOf(table.getValueAt(row, 0));
		    //设置tId的内容
		    tId.setText(id);
		    //设置tId不可修改
		    tId.setEditable(false);
		    tName.setText(String.valueOf(table.getValueAt(row, 1)));
		    String sex=(String) table.getValueAt(row, 2);
		    //如果性别是"男",则将单选框中的男选中,否则选中女
		    if(sex.equals("男")){
		    	bSex.setSelected(boy.getModel(),true);
		    }else{
		    	bSex.setSelected(girl.getModel(),true);
		    }
		    tBirthday.setText(String.valueOf(table.getValueAt(row, 3)));
		    tLandscape.setText(String.valueOf(table.getValueAt(row, 4)));
		    tAddress.setText(String.valueOf(table.getValueAt(row, 5)));
		    tPhone.setText(String.valueOf(table.getValueAt(row, 6)));
		    tDormitory.setText(String.valueOf(table.getValueAt(row, 7)));
		    //设置dialog可见
		    dialog.setVisible(true);
		    }
});
		jf.setLayout(new BorderLayout());
		//设置pSelect在jf的北面
		jf.add(pSelect,BorderLayout.NORTH);
		//设置pSelect在jf的中心
		jf.add(tableScrollPane,BorderLayout.CENTER );
		//设置pSelelct在jf的南面
		jf.add(buttonPanel,BorderLayout.SOUTH);
		jf.pack();
		jf.setSize(faceSize);
		jf.setLocation((int)(screenSize.width-faceSize.getWidth())/2,(int)(screenSize.height-faceSize.getHeight())/2);
		jf.setResizable(false);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setVisible(true);

		pId.add(lId);
		pId.add(tId);
		pName.add(lName);
		pName.add(tName);
		pSex.add(lSex);
		bSex.add(boy);
		bSex.add(girl);
		pSex.add(boy);
		pSex.add(girl);
		pBirthday.add(lBirthday);
		pBirthday.add(tBirthday);
		pLandscape.add(lLandscape);
		pLandscape.add(tLandscape);
		pAddress.add(lAddress);
		pAddress.add(tAddress);
		pPhone.add(lPhone);
		pPhone.add(tPhone);
		pDormitory.add(lDormitory);
		pDormitory.add(tDormitory);
		pButton.add(confirm);
		pButton.add(cancel);
		//确定按钮的监听器
		confirm.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
			Student student=new Student();
			student.setUserId(tId.getText());
			student.setPassword(tId.getText());
			student.setId(tId.getText());
			student.setName(tName.getText());
			String sex=null;
			if(boy.isSelected()){
				sex="男";
			}
			if(girl.isSelected()){
				sex="女";
			}
			student.setSex(sex);
			student.setBirthday(tBirthday.getText());
			student.setLandscape(tLandscape.getText());
			student.setAddress(tAddress.getText());
			student.setPhone(tPhone.getText());
			student.setDormitory(tDormitory.getText());
			if(id!=null){
				service.update(student);
			}else{
				service.insert(student);
			}
			dialog.dispose();
			}
		});
		//取消按钮的监听器
		cancel.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				dialog.dispose();
			}
		});
		box.add(pId);
		box.add(pName);
		box.add(pSex);
		
		box.add(pBirthday);
		box.add(pLandscape);
		box.add(pAddress);

		box.add(pPhone);
		box.add(pDormitory);
		box.add(pButton);
		box.add(pButton);
		dialog.add(box);
		dialog.setBounds((int)(screenSize.width-280)/2,(int)(screenSize.height-300)/2,280,350);
	}
		public void insertTable(Student student){
			if(student!=null){
				String[]newCell=new String[9];
				newCell[0]=student.getId();
				newCell[1]=student.getName();
				newCell[2]=student.getSex();
				newCell[3]=student.getBirthday();
				newCell[4]=student.getLandscape();
				newCell[5]=student.getAddress();
				newCell[6]=student.getPhone();
				newCell[7]=student.getDormitory();
				
				tableModel.addRow(newCell);
				
			}
		}
		public void clearTable(){
			int rows=tableModel.getRowCount();
			for(int i=rows-1;i>=0;i++){
				tableModel.removeRow(i);
			}
		}
		public void selectFailure(){
			JOptionPane.showMessageDialog(jf,"不存在该学号的学生!","提示",JOptionPane.WARNING_MESSAGE );
		}
		private void readFromFile() {
		    FileReader fileReader = null;
		    BufferedReader bufferedReader = null;
		    int count = 0;
		    try {
		        File file = new File("D:\\eclipse-workspace\\jmu\\src\\例\\students.txt");
		        fileReader = new FileReader(file);
		        bufferedReader = new BufferedReader(fileReader);

		        String line;
		        while ((line = bufferedReader.readLine()) != null) {
		            String[] data = line.split(" ");
		            if (data.length == 8) {
		                String id = data[0];
		                String name = data[1];
		                String sex = data[2];
		                String birthday = data[3];
		                String landscape = data[4];
		                String address = data[5];
		                String phone = data[6];
		                String dormitory = data[7];
		                Student student = new Student(id, name, sex, birthday, landscape, address, phone, dormitory);
		                
		               
		                
		            }
		        }
		    } catch (Exception e) {
		        e.printStackTrace();
		        JOptionPane.showMessageDialog(null, "读取文件失败!原因:" + e.getMessage(), "提示", JOptionPane.INFORMATION_MESSAGE);
		    } finally {
		        try {
		            if (bufferedReader != null) {
		                bufferedReader.close();
		            }
		            if (fileReader != null) {
		                fileReader.close();
		            }
		        } catch (IOException ioe) {
		            ioe.printStackTrace();
		        }
		    }
		}
}
4.StudentService类
 
package 例;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JOptionPane;

public class StudentService {
    private Student[] students = new Student[50];
    private int count = 0; // 记录已插入学生数量

    private void writeToFile() {
        FileWriter fileWriter = null;
        BufferedWriter bufferedWriter = null;
        try {
            File file = new File("D:\\eclipse-workspace\\jmu\\src\\例\\students.txt");
            fileWriter = new FileWriter(file, false);
            bufferedWriter = new BufferedWriter(fileWriter);
            for (int i = 0; i < count; i++) {
                Student s = students[i];
                if (s != null) {
                    bufferedWriter.write(s.getId());
                    bufferedWriter.write(" ");
                    bufferedWriter.write(s.getName());
                    bufferedWriter.write(" ");
                    bufferedWriter.write(s.getSex());
                    bufferedWriter.write(" ");
                    bufferedWriter.write(s.getBirthday());
                    bufferedWriter.write(" ");
                    bufferedWriter.write(s.getLandscape());
                    bufferedWriter.write(" ");
                    bufferedWriter.write(s.getAddress());
                    bufferedWriter.write(" ");
                    bufferedWriter.write(s.getPhone());
                    bufferedWriter.write(" ");
                    bufferedWriter.write(s.getDormitory());
                    bufferedWriter.newLine();
                }
            }
            JOptionPane.showMessageDialog(null, "文件更新成功!", "提示", JOptionPane.INFORMATION_MESSAGE);
        } catch (Exception e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, "文件更新失败!原因:" + e.getMessage(), "提示", JOptionPane.INFORMATION_MESSAGE);
        } finally {
            try {
                if (bufferedWriter != null) {
                    bufferedWriter.close();
                }
                if (fileWriter != null) {
                    fileWriter.close();
                }
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
        }
    }
   
    // 添加学生信息

    	public void insert(Student s) {
    	    FileWriter fileWriter = null;
    	    BufferedWriter bufferedWriter = null;
    	    try {
    	        // 检查学号是否已存在
    	        for (int i = 0; i < count; i++) {
    	            if (students[i].getId().equals(s.getId())) {
    	                JOptionPane.showMessageDialog(null, "学号已存在!", "提示", JOptionPane.INFORMATION_MESSAGE);
    	                return; // 学号已存在,结束方法
    	            }		
    	        }
    	        
    	        File file = new File("D:\\eclipse-workspace\\jmu\\src\\例\\students.txt");
    	        fileWriter = new FileWriter(file, true);
    	        bufferedWriter = new BufferedWriter(fileWriter);
    	        
    	        if (count < students.length) {
    	            students[count] = s;
    	            // 写入文件
    	            bufferedWriter.write(s.getId());
    	            bufferedWriter.write(" ");
    	            bufferedWriter.write(s.getName());
    	            bufferedWriter.write(" ");
    	            bufferedWriter.write(s.getSex());
    	            bufferedWriter.write(" ");
    	            bufferedWriter.write(s.getBirthday());
    	            bufferedWriter.write(" ");
    	            bufferedWriter.write(s.getLandscape());
    	            bufferedWriter.write(" ");
    	            bufferedWriter.write(s.getAddress());
    	            bufferedWriter.write(" ");
    	            bufferedWriter.write(s.getPhone());
    	            bufferedWriter.write(" ");
    	            bufferedWriter.write(s.getDormitory());
    	            bufferedWriter.newLine();
    	            
    	            count++;
    	            JOptionPane.showMessageDialog(null, "添加学生成功!", "提示", JOptionPane.INFORMATION_MESSAGE);
    	        } else {
    	            JOptionPane.showMessageDialog(null, "学生数量已达到上限!", "提示", JOptionPane.INFORMATION_MESSAGE);
    	        }
    	    } catch (Exception e) {
    	        e.printStackTrace();
    	        JOptionPane.showMessageDialog(null, "添加学生失败!原因:" + e.getMessage(), "提示", JOptionPane.INFORMATION_MESSAGE);
    	    } finally {
    	        try {
    	            if (bufferedWriter != null) {
    	                bufferedWriter.close();
    	            }
    	            if (fileWriter != null) {
    	                fileWriter.close();
    	            }
    	        } catch (IOException ioe) {
    	            ioe.printStackTrace();
    	        }
    	    }
    	}

    // 删除学生信息
    public int delete(String userId) {
        for (int i = 0; i < count; i++) {
            if (students[i] != null && students[i].getUserId().equals(userId)) {
                // 将后面的元素向前移动一位
                for (int j = i + 1; j < count; j++) {
                    students[j - 1] = students[j];
                }
                students[count - 1] = null; // 最后一个元素设为 null
                count--;
                JOptionPane.showMessageDialog(null, "删除学生成功!", "提示", JOptionPane.INFORMATION_MESSAGE);
                writeToFile(); // 同步至文件
                return 1;
            }
        }
        return 0;
    }

    // 修改学生信息
    public void update(Student s) {
        String userId = s.getUserId();
        for (int i = 0; i < count; i++) {
            if (students[i] != null && students[i].getUserId().equals(userId)) {
                // 只更新不为空的属性
                if (s.getId() != null) {
                    students[i].setId(s.getId());
                }
                if (s.getName() != null) {
                    students[i].setName(s.getName());
                }
                if (s.getSex() != null) {
                    students[i].setSex(s.getSex());
                }
                if (s.getBirthday() != null) {
                    students[i].setBirthday(s.getBirthday());
                }
                if (s.getLandscape() != null) {
                    students[i].setLandscape(s.getLandscape());
                }
                if (s.getAddress() != null) {
                    students[i].setAddress(s.getAddress());
                }
                if (s.getPhone() != null) {
                    students[i].setPhone(s.getPhone());
                }
                if (s.getDormitory() != null) {
                    students[i].setDormitory(s.getDormitory());
                }
                JOptionPane.showMessageDialog(null, "修改学生成功!", "提示", JOptionPane.INFORMATION_MESSAGE);
                writeToFile(); // 同步至文件
            }
        }
    }

    // 按学号查询
    public Student selectById(String userId) {
        for (int i = 0; i < count; i++) {
            if (students[i] != null && students[i].getUserId().equals(userId)) {
                return students[i];
            }
        }
        return null;
    }

    // 查询所有学生信息
    public Student[] selectAll() {
    
        Student[] result = new Student[count];
        int index = 0;
        for (int i = 0; i < count; i++) {
            if (students[i] != null) {
                result[index++] = students[i];
            }
        }
        return result;
    }


}

 六、心得体会及感悟

JAVA面向对象编程不仅仅是一种语法,更是一种思维方式。通过课程设计,逐渐培养对问题的面向对象分析和设计的能力,将问题抽象成对象和类的形式。

团队协作与版本控制: 在实际开发中,团队协作是不可或缺的。学会使用版本控制工具(如Git)来管理代码,合理分工、有效沟通,保持代码库的整洁和更新。

持续学习: Java是一个不断发展的编程语言,不仅要熟练掌握已有的知识,还需要不断学习新的技术和框架。保持持续学习的心态,关注行业动态,是一个成功的Java程序员应有的素养。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值