基于javaSwing+文本存储的学生信息管理系统设计实现

1,476 阅读4分钟

这是我参与 8 月更文挑战的第 21天,活动详情查看: [8月更文挑战](juejin.cn/post/698796…

 前言:

        该学生信息管理系统项目是使用Java swing开发,可实现基础数据维护、用户登录、学生信息列表查看、修改、删除和模糊查找以及退出注销等功能、界面设计比较简单易学、适合作为Java课设设计以及学习技术使用。

引言

       学生信息管理系统是一个教育单位不可缺少的部分。 一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担, 它的内容对于学校的决策者和管理者来说都至关重要。 所以学生信息管理系统应该能够为用 户提供充足的信息和快捷的查询手段。 但一直以来人们使用传统人工的方式管理 文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密 性差、人工的大量浪费; 随着科学技术的不断提高, 计算机科学日渐成熟,其强大的功能已为人们深刻认识, 它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分, 使用计算机对学校的各类信息进行管理, 具有手工管理无法比拟的优点。也是一个单位科学化、正规化管理,与世界接轨的重要条件。

主要技术和工具:

eclipse+JDK1.8+swing+文本存储

功能截图:

 用户登录注册:

用户输入账号密码进行登录、成功登录查看首页和学生信息。

主页学生数据列表:

学生信息添加:

录入学生相关信息完成学生添加操作

学生信息修改:

选中需要修改的数据、在输入框或选择框完修改操作。

学生信息删除:

注销退出:

注销退出执行页面关闭操作。

关键代码:

用户登录:


  public class Main {
	//设置表的题头
	public static String[] t_head = {"学号","姓名","性别","年龄","学院","地址"};
	
	//定义学生列表
	public static String[][] s_list = new String[20][6];
	
	//给学生列表初始化值
	static
	{
		s_list[0]= new String[]{"16103301", "小明", "男","19","计算机学院","河南"};
		s_list[1]= new String[]{"16103302", "小华", "女","20","艺术学院","河北"};
		s_list[2]= new String[]{"16103303", "小松", "男","21","海洋学院","天津"};
		s_list[3]= new String[]{"16103304", "小美", "女","22","艺术学院","海南"};
		s_list[4]= new String[]{"16103305", "小南", "男","20","经管学院","甘肃"};
		s_list[5]= new String[]{"16103306", "小杰", "男","20","电信学院","浙江"};
		s_list[6]= new String[]{"16103307", "小花", "女","20","计算机学院","山东"};
	}

//定义大框的名字
	public static TopJFrame top;
	//public static void main(String[] args) {
		
		//top = new TopJFrame("学生信息管理系统");		 
		public static void main(String[] args) throws IOException {
			top = new TopJFrame("学生信息管理系统                                                               奥斯卡有根粉红香肠");
			
			File file=new File("students.txt");
			if(!(file.exists())){
				file.createNewFile();
			}
			new Main();
			 FileWriter out = new FileWriter(file); 
			 
			 
			 for(int i=0;i<20;i++){
				 if(s_list[i][0] != null)
				   for(int j=0;j<6;j++){
				    out.write(s_list[i][j]+"\t" + "\t");
				   }
				   out.write("\r\n");
				  }
				  out.close();
				  
		}

		public void Filewriter(ArrayList<StudentBean> students,String file) throws IOException{//写入文件方法
			FileWriter fw=new FileWriter(file);
			BufferedWriter bw=new BufferedWriter(fw);
			Iterator<StudentBean> it=students.iterator();
	        while(it.hasNext()){
	        	StudentBean std=(StudentBean)it.next();
	        	bw.write(std.getS_id());
	        	bw.newLine();
	        	bw.write(std.getS_name());
	        	bw.newLine();
	        	bw.write(std.getS_age());
	          	bw.newLine();
	        	bw.write(std.getS_sex());
	        	bw.newLine();
	        	bw.write(std.getS_address());
	        	bw.newLine();
	        }
	        bw.flush();
	        bw.close();
		}

		public void Filereader(ArrayList<StudentBean> students,String file) throws IOException{//读取文件方法
			FileReader fr=new FileReader(file);
			BufferedReader br=new BufferedReader(fr);
			String str=null;
			while((str=br.readLine())!=null){
				StudentBean std=new StudentBean();
				std.setS_id(str);
				str=br.readLine();
				
				std.setS_name(str);
				str=br.readLine();
				
				std.setS_age(str);
				str=br.readLine();
				
				std.setS_sex(str);
				str=br.readLine();
				
				std.setS_address(str);
				students.add(std);
			}
			br.close();
		}
	}
	 
 

添加学生信息:

public class InsertListener implements ActionListener{
	private JDialog err,masg;
	public void actionPerformed(ActionEvent e) {
		
		String id = InsertDialog.t_id.getText();
		String name = InsertDialog.t_name.getText();
		String sex = InsertDialog.cb_sex.getSelectedItem().toString();
		String age = InsertDialog.t_age.getText();
		String ac = InsertDialog.cb_ac.getSelectedItem().toString();
		String sp = InsertDialog.t_address.getText();
//		System.out.println(id+","+name+","+sex+","+age+","+ac);
		if(id.equals("")||name.equals("")||sex.equals("")||age.equals("")||ac.equals("")||sp.equals("")){
			InsertDialog.err.setText("各项信息都不能为空!");
		}else{
			InsertDialog.err.setText("");
			ManagerJpanel.t_m.setValueAt(id, ManagerJpanel.row,0);
			ManagerJpanel.t_m.setValueAt(name, ManagerJpanel.row,1);
			ManagerJpanel.t_m.setValueAt(sex, ManagerJpanel.row,2);
			ManagerJpanel.t_m.setValueAt(age, ManagerJpanel.row,3);
			ManagerJpanel.t_m.setValueAt(ac, ManagerJpanel.row,4);
			ManagerJpanel.t_m.setValueAt(sp, ManagerJpanel.row,5);
			masg = new JDialog();
			masg.setAlwaysOnTop(true);
			masg.setLayout(null);
			JLabel jl = new JLabel("新增成功!");
			jl.setBounds(110, 20, 150, 30);
			masg.add(jl);
			masg.setSize(300, 130);
			masg.setLocationRelativeTo(null);
			masg.setVisible(true);
			masg.repaint();
			Thread tr = new Thread(){
				public void run() {
					try {
						this.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					masg.dispose();
					TableListener.jd_i.dispose();
					ManagerJpanel.row++;
				};
			};
			tr.start();
		}
	}

}

备注:项目来于网络、作者整理优化测试、若有侵权联系作者删除

总结:

      经过近期对 java 相关知识面向对象程序设计、Java swing等的掌握和学习,让我更加了解到 java 学习的重要性。在开发这个学生信息管理系统,我完成多个实验以及测功能试,在这个阶段的学习开发中,我从认识到熟悉,而后到能够自主运用。通过对 java swing知识以及数据库的设计相关的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好 java 语言是很重要的,所以在开发这个项目的过程中我都尽力理解 java 编程思想、掌握基本技巧,尽量学到最多的知识。 我学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,总体来说 java 面向对象程序设计是一门实践性比较强的语言。

 打卡JavaSwing项目更新 6 / 100篇

大家可以点赞、收藏、关注、评论我啦