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

 前言:

        该学生信息管理系统项目是使用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系列项目推荐:

JavaSwing的经典坦克大战游戏设计实现

JavaSwing ATM取款机系统的设计和实现

JavaSwing+Mysql的酒店管理系统设计实现

JavaSwing+mysql的图书管理系统设计实现

JavaSwing+mysql的学生社团管理系统设计实现

 打卡JavaSwing项目更新 6 / 100篇

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

  • 9
    点赞
  • 26
    收藏
  • 打赏
    打赏
  • 4
    评论
源码下载另见:http://download.csdn.net/detail/laudukang/8341541 1.2 系统功能分析 1.2.1 基本功能 (1)基本信息:姓名、手机号码、电子邮箱、生日、所属组、备注、相片。 (2)工作单位:国家、省份、城市、地址、工作单位、所属部门、职位、邮编、电话、传真。 (3)网络信息:个人主页、即时通信工具及号码、备用邮箱。 (4)家庭资料:国家、省份、城市、地址、邮编、电话。 1.2.2 查询模块 (1)默认显示所有条目。 (2)模糊查询:可以按姓名、电话号码、手机、姓名的汉语拼音的声母或全拼查询。支持模糊查询即输入部分数据后,可以查询出符合条件的全部条目。如:输入“张”,列出所有名字中有“张”的条目;输入“2645”列出电话中有该4个数字的所有条目;输入“xl”,列出声母为该2个字母的所有条目。 (3)指定分组后,列出某分组的所有条目。 说明:查询结果如果有多个条目,应按照姓名排序,并使用姓或姓的第一个汉语拼音的字母分类。 1.2.3 删除和修改功能 查询到一个条目后,可以删除该条目或修改条目内容。 1.2.4 通信录内容的导入和导出 要求能够以CSV格式和vCard格式导入和导出通讯录的全部内容,并能够与主流手机或其他通讯录软件交换数据。 1.2.5通讯录的显示 可以设置在显示查询结果时,一个条目可以显示或不显示哪些内容。 1.2.6通讯录数据的录入 输入并存储新的通讯录数据,输入时如果有同名或同电话号码时,应该给出提示。 1.2.7联系人星标 一键收藏自己联系最多的人,更加方便于查找与管理。 1.2.8手机号码归属地识别 根据录入的手机号码,识别出相应的归属地,如号码“1382840****”会被识别为“广东广州移动”。
实现了以下要求说明的功能: 1.要求使用GUI,采用 Swing 技术数据存储采用文件系统(可以是文本 文件、xml 文件、vCard 文件或其他自定义格式文件,但不能是 Excel 文件)。不 使用数据库。 2. 通讯录中每个项目包括: ( 1)基本信息:姓名、手机号码、电子邮箱、生日、所属组、备注、像片。 ( 2)工作单位:国家、省份、城市、地址、工作单位、所属部门、职位、 邮编、电话、传真 ( 3)网络信息:个人主页、即时通信工具及号码、备用邮箱 ( 4)家庭资料:国家、省份、城市、地址、邮编、电话 3 .通讯录数据的录入功能:输入并存储新的通讯录数据,输入时如果有同 名或同电话号码时,应该给出提示。 4 .通讯录数据的查询功能: ( 1)默认列出所有条目。 ( 2)模糊查询,可以按:姓名、电话号码、手机、姓名的汉语拼音的声母 或全拼查询。支持模糊查询即输入部分数据后,可以查询出符合条件的全部条目。 如:输入“张”,列出所有名字中有“张”的条目;输入“ 2645”列出电话中有 该 4个数字的所有条目;输入“xl ”,列出声母为该 2 个字母的所有条目 ( 3)指定分组后,列出某分组的所有条目 说明:查询结果如果有多个条目,应按照姓名排序,并使用姓或姓的第一 个汉语拼音的字母分类。 5 .删除和修改功能:查询到一个条目后,可以删除该条目或修改条目内容。 6 .通信录内容的导入和导出功能。要求能够以CSV 格式和 vCard 格式导入 和导出通讯录的全部内容。并能够与主流手机或其他通讯录软件交换数据。 7 .通讯录显示设置,可以设置在显示查询结果时,一个条目可以显示或不 显示哪些内容。 注意:本系统实现了读取和保存csv文件,同时csv文件中只保存了图片的路径。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:博客之星2021 设计师:Hiro_C 返回首页
评论 4

打赏作者

java李杨勇

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值