JAVA课程设计学籍管理系统
java学生信息管理系统课程设计

java学生信息管理系统课程设计一、课程目标知识目标:1. 理解Java面向对象编程的基本概念,掌握类与对象的关系、封装、继承和多态性;2. 学会使用Java集合框架管理学生信息,掌握ArrayList、HashMap等常用集合类的使用方法;3. 掌握Java异常处理机制,提高程序的健壮性;4. 理解数据库基本概念,学会使用SQLite数据库存储和管理学生信息。
技能目标:1. 能够运用面向对象思想设计学生信息管理系统,实现学生信息的增删改查功能;2. 能够使用Java集合框架对学生信息进行有效管理;3. 能够编写简单的数据库操作语句,实现对学生信息的数据存储和查询;4. 能够运用所学知识解决实际问题,具备一定的编程实践能力。
情感态度价值观目标:1. 培养学生团队协作精神,提高沟通与协作能力;2. 增强学生编程兴趣,激发创新意识,培养探索精神;3. 培养学生良好的编程习惯,注重代码规范和程序优化;4. 培养学生严谨的学习态度,面对问题敢于挑战,勇于克服困难。
课程性质:本课程为信息技术课程,以实践操作为主,注重培养学生的编程能力和实际应用能力。
学生特点:学生具备一定的Java基础,了解面向对象编程概念,但对实际项目开发经验不足。
教学要求:结合学生特点和课程性质,采用项目驱动教学法,引导学生自主探究,注重实践操作,提高学生的编程能力和解决问题的能力。
同时,关注学生的情感态度价值观培养,提高学生的综合素质。
通过本课程的学习,使学生能够独立完成一个简单的学生信息管理系统,为后续学习打下坚实基础。
二、教学内容1. 面向对象编程基础- 类与对象的关系- 封装、继承和多态性- 抽象类和接口2. Java集合框架- ArrayList、LinkedList、HashSet、HashMap等常用集合类- 集合类的使用场景和性能分析3. Java异常处理- 异常分类和异常处理机制- try-catch-finally结构- 自定义异常4. 数据库基础- 数据库概念和SQLite数据库- 数据表的设计与创建- SQL语句:增删改查操作5. 学生信息管理系统功能模块- 系统需求分析- 功能模块划分:学生信息管理、成绩管理、课程管理等- 编程实现各模块功能6. 项目实践与拓展- 系统测试与调试- 代码优化与重构- 项目拓展:增加用户权限管理、数据可视化等教学内容安排与进度:第一周:面向对象编程基础第二周:Java集合框架第三周:Java异常处理第四周:数据库基础第五周:学生信息管理系统功能模块设计第六周:项目实践与拓展教材关联:本教学内容与《Java程序设计》教材相关章节紧密关联,涵盖了面向对象编程、Java集合框架、异常处理和数据库基础等知识点。
Java课程设计——学生学籍管理系统

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊目录一、设计目的 (2)二、功能介绍 (2)三、程序流程 (3)四、设计步骤 (4)五、设计总结 (11)六、程序清单 (11)七、参考文献 (17)┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊一、设计目的《java课程设计》是计算机相关专业的必修专业基础课程,其实践性,应用性很强。
实践教学环节是必不可少的一个重要环节。
本课程的程序设计专题实际是计算机相关专业学生学习《java程序设计》课程后,进行的一次全面的综合训练,java程序设计的目的是加深对理论教学内容的理解和掌握,是学生较系统的掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
二、功能介绍1、管理员登陆功能。
2、注册管理员功能。
3、按照学生学号搜索学籍信息功能。
4、显示所有学生学籍信息功能。
5、添加新的学生学籍信息功能。
6、删除指定学生学籍功能。
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊三、程序流程四、设计步骤1、运行程序,通过LoginFrame类的构造方法LoginFrame()调用init()来初始化,生成界面,如果4-1所示,输入用户名、密码,如果用户名密┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊码正确,显示提示登录成功,如图4-2所示图4-1 登录界面图4-2 登录成功核心代码://验证用户public boolean check(String u,String p){boolean b=false;try{ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("select userpwd from users where username='"+u+"'");res=ps.executeQuery();if(res.next()){┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊String dbpwd=res.getString(1);if(dbpwd.equals(p)){b=true;}}}catch(Exception e){e.printStackTrace();}finally{this.close();}return b;}2、登录成功后,进入管理界面,如图4-3所示,然后按照提示,输入要查找的学籍的学生学号,点击搜索按钮,响应搜索按钮的事件处理,调用actionPerformed(ActionEvent e)实现事件监听,然后在这个方法中调用DBOperate类,创建一个DBOperate类对象,调用DBOperate类的getAXueJiInfo(String tnum)方法,参数为学号,然后显示出所查找学生的学籍信息,如图4-4所示:图4-3 学生学籍管理系统主界面┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊图4-4 学生学籍管理系统主界面下的搜索界面核心代码://按学号查找学籍信息public xuejiBean getAXueJiInfo(String tnum){xuejiBean xjb=new xuejiBean();if(tnum.equals("")){return null;}int num=Integer.parseInt(tnum);try {ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("SELECT * FROM xueji WHERE num="+num+"");res=ps.executeQuery();while(res.next()){x jb.setNum(res.getInt(1));x jb.setSname(res.getString(2));x jb.setSex(res.getString(3));x jb.setMinzu(res.getString(4));x jb.setAge(res.getInt(5));x jb.setSdepart(res.getString(6));x jb.setStudytime(res.getString(7));x jb.setPface(res.getString(8));x jb.setAddress(res.getString(9));}} catch (Exception e) {e.printStackTrace();} finally{this.close();┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊}return xjb;}3、在管理界面的主界面中,点击搜索所有学籍信息,响应StuInfoFrame类中的actionPerformed(ActionEvent e)事件处理,然后在此方法中调用DBOperate类的ShowXueJiInfo()方法,然后在这个方法中查找数据库,将数据库返回的数据显示在JFrame中JTable内,显示结果如图4-5所示:图4-5 显示所有学生学籍信息的界面核心代码://显示所有学籍信息public ArrayList<xuejiBean> ShowXueJiInfo(){ArrayList<xuejiBean> al=new ArrayList<xuejiBean>();try {ConnDB cd=new ConnDB();conn=cd.getConn();ps=(PreparedStatement) conn.prepareStatement("SELECT * FROM xueji"); res=ps.executeQuery();while(res.next()){x uejiBean xjb=new xuejiBean();x jb.setNum(res.getInt(1));x jb.setSname(res.getString(2));x jb.setSex(res.getString(3));x jb.setMinzu(res.getString(4));x jb.setAge(res.getInt(5));x jb.setSdepart(res.getString(6));x jb.setStudytime(res.getString(7));x jb.setPface(res.getString(8));x jb.setAddress(res.getString(9));a l.add(xjb);}┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊} catch (Exception e) {e.printStackTrace();// TODO: handle exception} finally{this.close();}return al;}4、添加新的学生学籍信息,点击添加新学籍按钮响应StuInfoFrame类中的actionPerformed(ActionEvent e)事件处理,然后在此方法中,创建DBOperate类的实例,通过DBOperate类的实例调用putInforIntoDb(String name,String sex,String minzu,int age,Stringdepart,String time,String face,String address)方法将新学籍信息录入数据库中,效果如图4-6所示:图4-6 添加学生学籍界面核心代码://录入学籍信息public boolean putInforIntoDb(String name,String sex,String minzu,int age,String depart,String time,String face,String address){boolean b=false;try {ConnDB cd=new ConnDB();conn=cd.getConn();┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ps=(PreparedStatement) conn.prepareStatement("INSERT INTO xueji (sname,sex,minzu,age,sdepart,studytime,pface,address) VALUES (?,?,?,?,?,?,?,?)");ps.setString(1, name);ps.setString(2, sex );ps.setString(3, minzu);ps.setInt(4, age);ps.setString(5, depart);ps.setString(6, time);ps.setString(7, face);ps.setString(8, address);int cont=ps.executeUpdate();if(cont==1){b=true;}} catch (Exception e) {e.printStackTrace();// TODO: handle exception} finally{this.close();}return b;}5、在2中,搜索出某个学生的学籍信息后,可以点击“删除该学籍信息”按钮,然后该按钮响应tuInfoFrame类中的actionPerformed(ActionEvente)事件处理通过在此方法中创建DBOperate类的实例来调用DBOperate类中的Deleteuser(String id)方法来删除该学籍信息。
Java课程设计---学生学籍管理系统

设计报告课题名称:学生学籍管理系统学院:专业班级:计算机应用技术091 学号:学生:指导教师:2011年7月7日学生指导教师课题名称学生学籍管理系统设计时间2011.6.27-2011.7.8设计地点图书馆506设计目的(1)加深对运用JA V A编程的方法、原理及过程(2)熟练对流程图的绘制(3)增强上机调试程序,善于发现问题并解决问题(4)学习用文档书写程序设计说明(5)让同学们初步了解对小程序的开发过程一.需求分析学生信息的管理是学校日常工作中的重要组成部分。
高校招生规模的逐步扩大和认识制度的改革,在校学生人数将不断增加,而学生管理人员则相对减少。
加上我国高等学校基层学生管理工作的头绪多,内容杂,管理细,要求高,传统管理办法已基本不适应新形势的要求。
在校生的基本信息的管理,选课及成绩的信息的管理,学生学籍的管理,稍有不慎就会出现错误。
当前学校对学生信息的管理不规范,不详细,而且管理信息费时费力浪费大量的人力物力。
不利于节省资源。
本程序就是为了快速便捷的存储,查找,修改,删除学生信息的。
二.设计目的(1)加深对运用JA V A编程的方法、原理及过程(2)熟练对流程图的绘制(3)增强上机调试程序,善于发现问题并解决问题(4)学习用文档书写程序设计说明(5)让同学们初步了解对小程序的开发过程三.函数作用及各类的关系1.StudentManager.java该类负责创建学生信息管理系统的主窗口,该类还有main方法,程序从该类开始执行。
2.Inquest.java该类创建的对象是StudentManager类的重要成员之一,负责提供录入学生基本信息的界面。
3.ModifySituation.java该类创建的对象是StudentManager类的重要成员之一,负责提供修改学生基本信息的界面。
4.Delete.java该类创建的对象是StudentManager类的重要成员之一,负责提供删除学生基本信息的界面。
学生学籍管理系统java课程设计

学生学籍管理系统Java课程设计一、介绍学生学籍管理系统是一套用于学校管理学生信息的软件系统。
本系统旨在通过Java编程,实现学生信息的录入、管理、修改和查询等功能。
在课程设计中,我们将使用Java语言和相关技术,如面向对象的编程思想、GUI设计等,来完成这一学生学籍管理系统的设计与实现。
二、功能需求1.学生信息录入:包括学生的学号、姓名、性别、年龄等基本信息的录入;2.学生信息查询:根据学生学号或姓名等信息进行查询,并将查询结果显示在界面上;3.学生信息修改:可以修改学生的基本信息,如姓名、性别、年龄等;4.界面友好:设计简洁、美观的用户界面,提高用户体验。
三、设计思路1.数据结构设计:使用类和对象来表示学生信息,构建学生类(Student类),包含学号、姓名、性别、年龄等属性;2.界面设计:使用Java Swing库来构建用户界面,包括菜单栏、文本框、按钮等组件;3.功能模块设计:将学生信息录入、查询、修改等功能封装成不同的方法,并在主程序中调用;4.异常处理:在程序中添加异常处理机制,以应对用户错误输入等异常情况。
四、具体实现步骤1.创建学生类:定义一个Student类,包含学号、姓名、性别、年龄等属性,并编写构造方法和getter、setter方法;2.设计主界面:使用Swing库创建主界面,包括菜单栏和各个功能按钮;3.实现学生信息录入功能:在录入界面添加文本框和确认按钮,将输入的信息保存到学生类实例中;4.实现学生信息查询功能:在查询界面设计查询条件输入框和查询按钮,根据条件查询学生信息并在界面展示;5.实现学生信息修改功能:在修改界面允许用户选择要修改的学生信息,并提供文本框供用户修改;6.异常处理:在程序中添加必要的异常处理代码,如输入非法字符、查询结果为空等情况。
五、总结通过本次课程设计,我们深入学习了Java编程语言,掌握了面向对象的程序设计思想,提高了对GUI界面设计的理解。
java课程设计 学生学籍管理系统

目录一、课程设计任务及要求.................................................1二、需求分析.............................................................2三、系统功能结构........................................................3四、设计思路..............................................................4五、详细设计.............................................................5六、运行调试与分析.....................................................10七、设计体会与总结....................................................21八、参考文献.............................................................21一、课设任务及要求课设任务:设计基于数据库的学籍管理系统设计要求:1管理员录入学生基本信息的功能2管理员修改学生基本信息的功能3按不同类别查询学生基本信息的功能4管理员删除学生基本信息的功能5利用不同的用户名登陆实现权限操作的功能6 实现登陆用户的注册7 学生个人修改自己的基本信息的功能8 学生通过SQL语句查询基本信息的功能9 打印10退出二、需求分析在开发学生学籍管理系统之前,首先要知道所要开发的系统要实现那些功能,是针对学生的系统还是针对管理员的系统,并且要清楚不同级别的用户具有什么样的功能,实现什么样的界面。
当明确了这些,项目开发的思路就清晰了,然后再对网络上别的学生学籍管理系统进行考察、分析,从中吸取经验,并结合本系统的要求以及实际的管理情况,设计出一个合理的学生学籍管理系统。
原创java课程设计学生信息管理系统

原创Java课程设计学生信息管理系统引言学生信息管理系统是一种用于管理学生信息的软件工具,它可以方便、高效地记录、存储和查询学生的基本信息、课程成绩、考勤情况等。
本文将介绍一个原创的Java课程设计学生信息管理系统,该系统可以帮助教师和学校管理人员更好地管理学生信息。
功能需求学生信息管理系统应具备以下基本功能: - 学生信息录入:包括学生的基本信息,如姓名、性别、年龄、联系方式等。
- 学生信息修改:可以修改学生的基本信息,如年龄、联系方式等。
- 学生信息查询:可以根据姓名、学号等关键字进行学生信息的查询。
- 成绩管理:可以录入学生的课程成绩,并进行统计、排名等操作。
- 考勤管理:可以记录学生的考勤情况,如出勤、迟到、旷课等。
- 学生信息导出:可以将学生的基本信息、成绩、考勤情况等导出为Excel或CSV格式的文件。
- 数据备份与恢复:可以进行学生信息的数据备份与恢复,以防止数据丢失。
系统设计学生信息管理系统采用Java语言进行开发,使用MySQL作为数据库进行数据存储。
系统采用面向对象的设计思想,使用MVC(Model-View-Controller)架构模式进行设计。
模块划分系统可以划分为以下几个模块: - 学生信息录入模块:负责学生信息的录入和修改。
- 学生信息查询模块:负责学生信息的查询和展示。
- 成绩管理模块:负责成绩的录入、统计和排名。
- 考勤管理模块:负责考勤情况的记录与查询。
- 数据导入导出模块:负责学生信息的导入导出。
- 数据备份与恢复模块:负责学生信息的数据备份和恢复。
数据库设计系统使用MySQL数据库进行数据存储,设计以下几个表: - 学生表(students):存储学生的基本信息,包括姓名、性别、年龄、联系方式等字段。
- 成绩表(grades):存储学生的课程成绩,包括学生ID、课程ID、成绩等字段。
- 考勤表(attendance):存储学生的考勤情况,包括学生ID、考勤日期、考勤状态等字段。
学籍管理系统java程序设计

学籍管理系统java程序设计一、前言学籍管理系统是一个非常常见的校园信息管理系统,它可以方便地记录学生的个人信息、课程成绩、考勤情况等。
本文将介绍如何使用Java语言设计学籍管理系统。
二、需求分析在设计学籍管理系统之前,我们需要先进行需求分析,确定需要实现哪些功能。
一般来说,学籍管理系统需要实现以下功能:1. 学生信息管理:包括添加、修改、删除和查询学生信息等操作。
2. 课程信息管理:包括添加、修改、删除和查询课程信息等操作。
3. 成绩管理:包括添加、修改和查询成绩等操作。
4. 考勤管理:包括添加、修改和查询考勤情况等操作。
5. 用户权限管理:包括管理员和普通用户两种角色,并且管理员具有更高的权限。
三、技术选型在确定了需求之后,我们需要选择合适的技术来实现这些功能。
由于Java是一种跨平台的编程语言,所以我们选择使用Java语言来编写学籍管理系统。
同时,在实现这些功能时,我们还需要使用到以下技术:1. MySQL数据库:用于存储学生信息、课程信息、成绩和考勤情况等数据。
2. JDBC技术:用于连接MySQL数据库并进行数据操作。
3. Swing技术:用于实现用户界面。
四、系统设计在确定了技术选型之后,我们需要进行系统设计。
首先,我们需要设计数据库表结构,包括学生信息表、课程信息表、成绩表和考勤情况表等。
然后,我们需要设计Java类来对应这些数据库表,并实现相应的数据操作方法。
例如,我们可以设计一个Student类来对应学生信息表,并实现添加、修改、删除和查询学生信息的方法。
最后,我们需要使用Swing技术来实现用户界面,并将用户输入的数据传递给对应的Java类进行数据操作。
五、代码实现在进行系统设计之后,我们可以开始编写代码了。
以下是一个简单的示例:1. Student类public class Student {private int id;private String name;private String gender;private int age;// 省略getter和setter方法}2. 数据库连接类public class DBUtil {public static Connection getConnection() throws SQLException {String url = "jdbc:mysql://localhost:3306/student";String user = "root";String password = "123456";return DriverManager.getConnection(url, user, password); }}3. 添加学生信息方法public void addStudent(Student student) throws SQLException { Connection conn = null;PreparedStatement ps = null;try {conn = DBUtil.getConnection();String sql = "insert into student(name, gender, age) values(?, ?, ?)";ps = conn.prepareStatement(sql);ps.setString(1, student.getName());ps.setString(2, student.getGender());ps.setInt(3, student.getAge());ps.executeUpdate();} finally {if (ps != null) {ps.close();}if (conn != null) {conn.close();}}}4. 用户界面public class AddStudentFrame extends JFrame { private JTextField nameField;private JRadioButton maleRadioButton;private JRadioButton femaleRadioButton;private JSpinner ageSpinner;// 省略其他组件和事件处理方法}六、总结通过以上的代码示例,我们可以看出,使用Java语言设计学籍管理系统是非常简单的。
java课程设计学生信息管理系统

java课程设计学生信息管理系统一、课程目标知识目标:1. 理解并掌握Java语言面向对象编程的基本概念,包括类、对象、封装、继承和多态;2. 学会运用Java语言构建学生信息管理系统,掌握基本的软件开发流程;3. 熟悉并掌握Java集合框架的使用,如List、Map等,用于存储和管理学生数据;4. 了解并运用Java异常处理机制,提高程序的稳定性和可靠性。
技能目标:1. 能够运用面向对象思想设计合理的类和对象,实现学生信息管理系统的功能模块;2. 掌握使用Java编写数据库连接代码,实现数据的持久化存储;3. 能够运用调试工具进行程序调试,找出并修复程序中的错误;4. 学会使用Java编写用户界面,实现用户与程序的交互。
情感态度价值观目标:1. 培养学生的团队协作精神,学会与他人共同完成项目任务;2. 增强学生的编程自信心,激发对计算机编程的兴趣和热情;3. 培养学生严谨、细心的编程习惯,提高编程素养;4. 培养学生解决问题的能力,使学生能够运用所学知识解决实际问题。
课程性质:本课程为实践性较强的Java编程课程,结合实际项目需求,培养学生的编程能力和实际应用能力。
学生特点:学生已具备一定的Java基础,了解基本的编程概念,但对面向对象编程和实际项目开发尚缺乏深入了解。
教学要求:注重理论与实践相结合,引导学生运用所学知识解决实际问题,提高学生的编程能力和项目开发能力。
在教学过程中,关注学生的个体差异,提供针对性的指导,确保每位学生都能在课程中取得实际的学习成果。
通过本课程的学习,使学生能够独立完成学生信息管理系统的设计与开发。
二、教学内容1. 面向对象编程基础:- 类与对象的概念及其关系- 封装、继承和多态的特性与应用- Java集合框架的使用,包括List、Set、Map等接口及其实现类2. 数据库连接与操作:- JDBC简介及其使用方法- 数据库连接、查询、更新等基本操作- SQL语句的编写与执行3. 学生信息管理系统功能模块设计:- 系统需求分析- 功能模块划分与设计- 类的设计与实现4. 编程实践:- 设计学生类、课程类等实体类- 实现学生信息增删改查功能- 数据的持久化存储与读取5. 用户界面设计:- Java图形用户界面编程基础- 常用组件的使用,如JFrame、JButton、JTable等- 事件处理机制6. 程序调试与优化:- 异常处理机制- 使用调试工具进行程序调试- 优化代码,提高程序性能教学内容安排与进度:1. 第1-2周:面向对象编程基础,学习类与对象、封装、继承和多态等概念;2. 第3-4周:数据库连接与操作,学习JDBC以及SQL语句;3. 第5-6周:学生信息管理系统功能模块设计,进行需求分析和模块设计;4. 第7-8周:编程实践,实现系统的各个功能;5. 第9-10周:用户界面设计,学习图形用户界面编程和事件处理;6. 第11-12周:程序调试与优化,修复程序错误,提高程序性能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书题目:学籍管理系统组员学号组员学号组员学号专业课程 JAVA 指导教师完成时间:2011年9月——2011年12月计算机科学系制课程设计任务书及成绩评定本学籍管理系统共有6个java源文件。
类之间的主要关系如图所示。
该java文件的类负责创建学籍管理系统主窗口。
该类含有main方法,程序从该类开始执行。
该文件的类负责创建学籍管理系统的学生信息录入界面。
该文件的类负责创建学籍管理系统的学生信息修改界面。
该文件的类负责创建学籍管理系统的学生信息查询界面。
该文件的类负责创建学籍管理系统的学生信息删除界面。
负责创建存放学生信息的对象。
1.具体设计1.1主类StudentManager1.成员变量(见下表)主要成员变量(属性)成员变量描述变量类型名称基本信息录入界面StudentSituation 基本信息录入基本信息修改界面ModifySituation 基本信息修改基本信息查询界面Inquest 基本信息查询基本信息删除界面Delete 基本信息删除菜单选项JmenuItem 录入,修改,查询,删除存放基本信息的散列表Hashtable 基本信息存放散列表的文件File file主要方法名称功能备注StudentManager 创建程序主窗口构造方法actionPerformed 处理ActionEvent事件接口方法main 程序开始运行import .*;import .*;import .*;public class StudentManager extends JFrame implements ActionListener {StudentSituation 基本信息录入=null; ddActionListener(this);修改.addActionListener(this);查询.addActionListener(this);删除.addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPanel();(card);file=new File("基本信息.txt");if(!()){try{FileOutputStream out=new FileOutputStream(file);ObjectOutputStream objectOut=new ObjectOutputStream(out);(基本信息);();();}catch(IOException e){}}基本信息录入=new StudentSituation(file);基本信息修改=new ModifySituation(file);基本信息查询=new Inquest(this,file);基本信息删除=new Delete(file);("欢迎语界面",label);("录入界面",基本信息录入);("修改界面",基本信息修改);("删除界面",基本信息删除);(pCenter,;();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){(0);}});setVisible(true);setBounds(100,50,420,380);validate();}public void actionPerformed(ActionEvent e){if()==录入){(pCenter,"录入界面");}else if()==修改){(pCenter,"修改界面");}else if()==查询){ etVisible(true);}else if()==删除){(pCenter,"删除界面");}}public static void main(String args[]){new StudentManager();}}1.2录入界面StudentSituation1.成员变量(见下表)主要成员变量(属性)描述变量类型名称存放“学生”对象的散列表Hashtable 基本信息表输入学生基本信息的文本条JtextField 学号,姓名,专业,年级,出生存放学生信息的对象Student 学生主要方法名称功能备注StudentSituation 创建学生录入界面构造方法actionPerformed 处理ActionEvent事件接口方法3.代码import .*;import .*;import .*;import .*;public class StudentSituation extends JPanel implements ActionListener{Hashtable 基本信息表=null; ddActionListener(this);重置.addActionListener(this);Box box1=(); Box box2Box box3Box box4Box box5Box box6etText();if()>0)ontainsKey(number))WARNING_MESSAGE);}else etText();String discipling=专业.getText();String grade=年级.getText();String borth=出生.getText();String sex=null;if(男.isSelected()){sex=男.getText();}else{sex=女.getText();}学生=new Student();学生.setNumber(number);学生.setName(name);学生.setDiscipling(discipling);学生.setGrade(grade);学生.setBorth(borth);学生.setSex(sex);try{outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,学生);(基本信息表);();();学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}catch(Exception ee){}}}}else{ WARNING_MESSAGE); }}if()==重置){学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}}}1.3查询界面Inquest1.成员变量(见下表)主要成员变量(属性)描述变量类型名称存放“学生”对象的散列表Hashtable year显示学生基本信息的文本条JTextField 学号,姓名,专业,年级,出生主要方法名称功能备注Inquest 创建查询界面构造方法actionPerformed 处理ActionEvent事件接口方法3.代码import .*;import .*;import .*;import .*;public class Inquest extends JDialog implements ActionListener{Hashtable 基本信息表=null; ddActionListener(this);查询.addActionListener(this);姓名=new JTextField(10);姓名.setEditable(false);专业=new JTextField(10);专业.setEditable(false);年级=new JTextField(10);年级.setEditable(false);出生=new JTextField(10);出生.setEditable(false);男=new JRadioButton("男",false);女=new JRadioButton("女",false);group=new ButtonGroup();(男);(女);Box box1Box box2Box box3Box box4Box box5Box box6etText(null);专业.setText(null);年级.setText(null);出生.setText(null);if()==查询||()==学号){String number="";number=学号.getText();if()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)();ontainsKey(number)) et(number);姓名.setText());专业.setText());年级.setText());出生.setText());if().equals("男")){男.setSelected(true);}else{女.setSelected(true);}}else{ WARNING_MESSAGE);}}}}1.4修改界面ModifySituation1.成员变量(见下表)主要成员变量(属性)描述变量类型名称存放“学生”对象的散列表Hashtable 基本信息表输入学生基本信息的文本条JTextField 学号,姓名,专业,年级,出生2.方法(见下表)主要方法名称功能备注ModifySituation 创建学生信息修改界面构造方法actionPerformed 处理ActionEvent事件接口方法3.代码import .*;import .*;import .*;import .*;public class ModifySituation extends JPanel implements ActionListener{Hashtable 基本信息表=null; etEnabled(false);重置=new JButton("重置");学号.addActionListener(this);开始修改.addActionListener(this);录入修改.addActionListener(this);重置.addActionListener(this);Box box1=(); Box box2Box box3Box box4Box box5Box box6etText();if()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)();();();}catch(Exception ee){}if(基本信息表.containsKey(number)) etEnabled(true); Student stu=(Student)基本信息表.get(number);姓名.setText());专业.setText());年级.setText());出生.setText());if().equals("男")){男.setSelected(true);}else{女.setSelected(true);}}else etEnabled(false);String warning="该学号不存在!";(this,warning,"警告",;学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}}else etEnabled(false);String warning="必须要输入学号!";(this,warning,"警告",;学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}}else if()==录入修改){String number="";number=学号.getText();if()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)();ontainsKey(number)) etText(); String discipling=专业.getText();String grade=年级.getText();String borth=出生.getText();String sex=null;if(男.isSelected()){sex=男.getText();}else{sex=女.getText();}Student 学生=new Student();学生.setNumber(number);学生.setName(name);学生.setDiscipling(discipling);学生.setGrade(grade);学生.setBorth(borth);学生.setSex(sex);try ut(number,学生);(基本信息表);();();学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}catch(Exception ee){}录入修改.setEnabled(false);}else if(ok=={录入修改.setEnabled(true);}}else{etEnabled(false);}}else{etEnabled(false);}}if()==重置){学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}}}1.5删除界面Delete1.成员变量(见下表)主要成员变量(属性)描述变量类型名称存放“学生”对象的散列表Hashtable 基本信息表显示学生基本信息的文本条JTextField 学号,姓名,专业,年级,出生2.方法(见下表)主要方法名称功能备注Delete 创建学生信息删除界面构造方法actionPerformed 处理ActionEvent事件接口方法3.代码import .*;import .*;import .*;import .*;public class Delete extends JPanel implements ActionListener{Hashtable 基本信息表=null; ddActionListener(this);删除.addActionListener(this);姓名=new JTextField(10);姓名.setEditable(false);专业=new JTextField(10);专业.setEditable(false);年级=new JTextField(10);年级.setEditable(false);出生=new JTextField(10);出生.setEditable(false);男=new JRadioButton("男",false);女=new JRadioButton("女",false);group=new ButtonGroup();(男);(女);Box box1=(); Box box2Box box3Box box4Box box5Box box6etText();if()>0){try {inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)();ontainsKey(number)) et(number);姓名.setText());专业.setText());年级.setText());出生.setText());if().equals("男")){男.setSelected(true);}else{女.setSelected(true);}String m="确定要删除该学号及全部信息吗";emove(number);try{outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);(基本信息表);();();学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}catch(Exception ee){}}else if(ok=={学号.setText(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);}}else{ //如果不存在该生的基本信息,弹出警告对话框String warning="该学号不存在!";(this,warning,"警告",;}}else{ //如果学号输入框内容为空,弹出警告对话框String warning="必须要输入学号!";(this,warning,"警告",;}}}}1.6学生对象Student1.成员变量(见下表)主要成员变量(属性)描述变量类型名称学号String number姓名String name专业String discipling 年级String grade出生String borth性别String sex主要方法名称功能备注setNumber 设置学号getNumber 获取学号setName 设置姓名getName 获取姓名setDiscipling 设置专业getDiscipling 获取专业setGrade 设置年级getGrade 获取年级setBorth 设置出生getBorth 获取出生setSex 设置性别getSex 获取性别3.代码{String number,name,discipling,grade,borth,sex;public Student(){}public void setNumber(String number){=number;}public String getNumber(){return number;}public void setName(String name){=name;}public String getName(){return name;}public void setDiscipling(String discipling) {=discipling;}public String getDisciping(){return discipling;}public void setGrade(String grade){=grade;}public String getGrade(){return grade;}public void setBorth(String borth){=borth;}public String getBorth(){return borth;}public void setSex(String sex){=sex;}public String getSex(){return sex;}}4.7运行效果系统主窗口学生信息录入界面学生信息查询界面学生信息修改界面学生信息删除界面实验总结:通过本次试验,基本应用了自己所学过的所有知识,经过不断的努力修改终于完成了这个程序,不仅加强了自己的相关知识,更进一步认识到自己的不足。