Java大作业-简单的学籍管理系统
JAVA课程设计---学籍管理系统

帮助文档模块:实现系统使用说明和帮 助文档的查看和下载
功能测试:验证系统功能是否 满足需求
性能测试:评估系统在不同负 载下的性能表现
安全测试:检查系统是否存在 安全漏洞
用户体验测试:评估系统的易 用性和用户满意度
Part Six
部 署 工 具 : To m c a t 、 J e t t y 、 WebLogic等应用服务器
生成绩
学籍管理模块: 添加、修改、 删除、查询学
籍信息
系统管理模块: 用户管理、权 限管理、系统
设置等
Part Five
数据库类型:MySQL 数据库设计:学生表、课程表、成绩表等 数据库操作:增删改查等基本操作 数据库优化:索引、缓存等优化措施
登录界面:用 户输入用户名 和密码进行登
录
主界面:显示 学生信息、课 程信息、成绩
数据完整性和一致性:通过主键和 外键保证数据的完整性和一致性
界面布局:简洁明了,易 于操作
色彩搭配:协调统一,易 于阅读
功能模块:清晰划分,易 于查找
交互方式:直观便捷,易 于使用
学生信息管理 模块:添加、 修改、删除、 查询学生信息
课程信息管理 模块:添加、 修改、删除、 查询课程信息
成绩管理模块: 添加、修改、 删除、查询学
学籍管理:学籍注册、学籍 变更、学籍注销
系统管理:用户管理、权限 管理、日志管理
性能需求:系统 响应时间、处理 速度等
可靠性需求:系 统稳定性、数据 安全性等
可用性需求:用 户界面友好、操 作简便等
可维护性需求: 系统易于维护、 升级等
Part Four
架构设计原则: 高内聚、低耦 合、可扩展、
java学籍管理系统课程设计

java学籍管理系统 课程设计一、课程目标知识目标:1. 掌握Java语言基础,包括数据类型、控制结构、类与对象等;2. 学会使用Java进行数据库连接和SQL语句操作,实现对学籍信息的增、删、改、查功能;3. 了解学籍管理系统的一般需求分析、功能设计及系统架构。
技能目标:1. 能够运用面向对象思想进行Java程序设计,编写出结构清晰、可维护性强的代码;2. 独立完成学籍管理系统的功能模块编写,具备一定的项目实践能力;3. 掌握使用Java开发工具(如Eclipse)进行代码编写、调试和运行。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习积极性,树立正确的学习态度;2. 培养学生的团队协作精神,提高沟通与协作能力;3. 增强学生的信息安全意识,认识到学籍信息管理的重要性。
课程性质:本课程为实践性较强的学科课程,结合实际学籍管理需求,培养学生的编程能力和项目实践能力。
学生特点:学生已具备一定的Java语言基础,具有一定的逻辑思维能力和问题解决能力。
教学要求:注重理论与实践相结合,强调动手实践,引导学生主动探究,培养学生的创新精神和实践能力。
将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. Java语言基础复习:变量、数据类型、运算符、控制结构(章节1-4);2. 面向对象编程:类与对象、继承、多态、接口(章节5-8);3. 数据库连接技术:JDBC简介、数据库连接、SQL语句操作(章节9);- MySQL数据库安装与配置;- JDBC API的使用;- 常用SQL语句编写与执行;4. 学籍管理系统功能模块设计:- 需求分析;- 功能模块划分;- 数据库表设计(学生信息表、班级信息表等);5. 编程实践:- 学生信息管理模块(添加、修改、删除、查询);- 班级信息管理模块(添加、修改、删除、查询);- 用户登录与权限控制模块;6. 项目测试与优化:单元测试、集成测试、性能优化(章节10);7. 课程总结与项目答辩:- 代码规范与编程习惯;- 项目展示与答辩;- 同学互评与反馈。
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学生管理系统大作业代码

java学生管理系统大作业代码Java学生管理系统是一个基于Java语言开发的学生信息管理系统,用于方便学校教务人员进行学生信息的管理和查询。
以下是该系统的代码实现。
1. 登录界面代码实现该界面是用户登录的入口,用户需要输入用户名和密码才能进入系统。
```javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;public class Login extends JFrame implements ActionListener {JLabel lb1, lb2, lb3;JTextField txtName;JPasswordField txtPwd;JButton btnOK, btnCancel;String userName = "admin";// 默认用户名String password = "123456";// 默认密码public Login() {setTitle("学生信息管理系统登录");// 设置窗体标题setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置窗体关闭方式setSize(350, 200);// 设置窗体大小setLocationRelativeTo(null);// 设置居中显示setLayout(new BorderLayout());JPanel pNorth = new JPanel();lb1 = new JLabel("欢迎使用学生信息管理系统", JLabel.CENTER); lb1.setFont(new Font("微软雅黑", Font.BOLD, 20));pNorth.add(lb1);add(pNorth, BorderLayout.NORTH);JPanel pCenter = new JPanel();pCenter.setLayout(new GridLayout(3, 2));lb2 = new JLabel("用户名:", JLabel.RIGHT);pCenter.add(lb2);txtName = new JTextField(20);pCenter.add(txtName);lb3 = new JLabel("密码:", JLabel.RIGHT);pCenter.add(lb3);txtPwd = new JPasswordField(20);txtPwd.setEchoChar('*');// 设置密码框的回显字符pCenter.add(txtPwd);btnOK = new JButton("登录");pCenter.add(btnOK);btnCancel = new JButton("取消");pCenter.add(btnCancel);add(pCenter, BorderLayout.CENTER);btnOK.addActionListener(this);btnCancel.addActionListener(this);setVisible(true);// 显示窗体}public void actionPerformed(ActionEvent e) {if (e.getSource() == btnOK) {String name = txtName.getText();// 获取用户名String password = new String(txtPwd.getPassword());// 获取密码 if (name.equals(userName) && password.equals(password)) {setVisible(false);new MainFrame();} else {JOptionPane.showMessageDialog(Login.this, "用户名或密码错误!", "登录失败", JOptionPane.ERROR_MESSAGE);}} else if (e.getSource() == btnCancel) {txtName.setText("");txtPwd.setText("");}}public static void main(String[] args) {new Login();}}```2. 主界面代码实现该界面是系统的主界面,包含了菜单栏、工具栏和表格显示区域。
基于java的学籍管理系统实训报告

基于Java的学籍管理系统实训报告一、引言本实训报告旨在详细介绍基于Java的学籍管理系统的设计与实现。
学籍管理系统是一套用于管理学校学生学籍信息的软件系统,能够方便地记录和查询学生的个人信息、学习成绩、奖惩情况等。
二、需求分析为了更好地满足学校对学籍管理的需求,我们分析了用户需求,并根据需求设计了系统的功能模块,包括学生信息管理、课程管理、成绩管理、奖惩管理等。
根据系统需求,我们选择使用Java语言进行开发。
三、系统设计3.1 学生信息管理在学生信息管理模块中,我们设计了以下功能:•添加学生信息:包括学生姓名、性别、年龄等基本信息。
•修改学生信息:可以对学生的基本信息进行修改。
•查询学生信息:可以根据学生的学号或姓名进行查询。
3.2 课程管理课程管理模块包括以下功能:•添加课程:包括课程名称、授课教师、学分等信息。
•修改课程信息:对课程的基本信息进行修改。
•查询课程信息:可以根据课程名称或教师姓名进行查询。
3.3 成绩管理成绩管理模块包括以下功能:•录入学生成绩:包括学生学号、课程名称、成绩等信息。
•修改学生成绩:可以对学生成绩进行修改。
•查询学生成绩:可以根据学生学号或课程名称进行查询。
3.4 奖惩管理奖惩管理模块包括以下功能:•添加奖惩信息:包括学生学号、奖惩类型、奖惩原因等信息。
•修改奖惩信息:可以对奖惩信息进行修改。
•查询奖惩信息:可以根据学生学号进行查询。
四、实现过程为了实现学籍管理系统,我们采用了Java语言和MySQL数据库。
以下是系统实现的步骤:1.设计数据库表结构:根据需求分析,设计了学生表、课程表、成绩表和奖惩表的结构,并创建了相应的表。
2.编写Java类:根据功能模块,编写了学生类、课程类、成绩类和奖惩类的Java类,定义了相应的属性和方法。
3.连接数据库:使用Java的JDBC技术连接MySQL数据库,并编写了数据库操作类,实现对数据库的增删改查操作。
4.编写用户界面:使用Swing组件库,设计了用户界面,包括添加学生信息、查询成绩、修改奖惩信息等操作的界面。
JAVA J2EE大作业——学生信息管理系统

JA V A & J2EE大作业——学生信息管理系统/src/beanFind.javapackage bean;import java.io.File;import java.io.IOException;import java.util.Iterator;import javax.servlet.jsp.JspWriter;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Find {public String[] find(String id,String name,JspWriter out,String studentInfoPath) throws DocumentException, IOException{SAXReader saxReader = new SAXReader();Document document = saxReader.read(new File(studentInfoPath));Element root = document.getRootElement();String[]str=new String[7];int j=0;//遍历根结点(students)的所有孩子节点(肯定是student节点)boolean flagid,flagname;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){out.print("<tr>");int i=0;Element element = (Element) iter.next();flagid=false;flagname=false;//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(id)){flagid=true;}elementInner = (Element) iterInner.next();if(elementInner.getText().equals(name)){flagname=true;}if(id!=null&&name!=null){if(flagid&&flagname){j++;for ( Iterator<?> iterInner1 = element.elementIterator(); iterInner1.hasNext(); ){Element elementInner1 = (Element) iterInner1.next();str[i]=elementInner1.getText();out.print("<th>"+elementInner1.getText()+"</th>");i++;}break;}}else if(name!=null&&id==null){if(flagname){j++;for ( Iterator<?> iterInner1 = element.elementIterator(); iterInner1.hasNext(); ){Element elementInner1 = (Element) iterInner1.next();str[i]=elementInner1.getText();out.print("<th>"+elementInner1.getText()+"</th>");i++;}}}else if(id!=null&&name==null){if(flagid){j++;for ( Iterator<?> iterInner1 = element.elementIterator(); iterInner1.hasNext(); ){Element elementInner1 = (Element) iterInner1.next();str[i]=elementInner1.getText();out.print("<th>"+elementInner1.getText()+"</th>");i++;}break;}}else{break;}out.print("</tr>");}str[6]=j+"";return str;}}ReadUserInfo.javapackage bean;import java.io.IOException;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.LinkedList;public class ReadUserInfo {//文件中读取出的用户信息LinkedList<String> nameList = new LinkedList<String>();LinkedList<String> passList = new LinkedList<String>();// StringTokenizer相关变量String temp;String[] st;//用来保存用户输入信息String username;String password;public String getUsername(){return username;}public void setUsername(String username){ername = username;}public String getPassword(){return password;}public void setPassword(String password){this.password = password;}public LinkedList<String> getNameList(){return nameList;}public LinkedList<String> getPassList(){return passList;}public void read(String path) throws IOException{File file = new File(path);BufferedReader br = new BufferedReader(new FileReader(file));while ((temp = br.readLine()) != null){st =temp.split(",");nameList.add(st[0]);passList.add(st[1]);}}public boolean checknp(String name,String pass){LinkedList<String> nlist = getNameList();LinkedList<String> plist = getPassList();if(!nlist.contains(name) || !plist.contains(pass)){return false;}if(nlist.indexOf(name) != plist.indexOf(pass)){return false;}return true;}}XmlPage.javapackage bean;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.Iterator;import java.util.List;import javax.servlet.jsp.JspWriter;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class XmlPage {public void Edit(String user,String Id,String Name,String Age,String Gender,String Email,String Java,String studentInfoPath) throws DocumentException, IOException {SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();Element element = null ;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){element = (Element) iter.next();//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(user))break;}if(!Id.isEmpty())element.element("id").setText(Id);if(!Name.isEmpty())element.element("name").setText(Name);if(!Age.isEmpty())element.element("age").setText(Age);if(!Gender.isEmpty())element.element("gender").setText(Gender);if(!Email.isEmpty())element.element("email").setText(Email);if(!Java.isEmpty())element.element("java").setText(Java);OutputFormat out = new OutputFormat(" ", true, "utf-8");XMLWriter writer = new XMLWriter(new FileOutputStream(studentInfoPath),out);writer.write(document);writer.close();}public boolean check(String id,String studentInfoPath) throws DocumentException{SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();boolean flag=true;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){Element element = (Element) iter.next();//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(id)){flag=false;break;}}return flag;}public void add(String Id,String Name,String Age,String Gender,String Email,String Java,String studentInfoPath) throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();Element parent = root.addElement("student");Element id= parent.addElement("id");id.setText(Id);Element name = parent.addElement("name");name.setText(Name);Element age= parent.addElement("age");age.setText(Age);Element gender = parent.addElement("gender");gender.setText(Gender);Element email = parent.addElement("email");email.setText(Email);Element java = parent.addElement("java");java.setText(Java);OutputFormat out = new OutputFormat(" ", true, "utf-8");XMLWriter writer = new XMLWriter(new FileOutputStream(studentInfoPath),out);writer.write(document);writer.close();}public void Del(String id,String studentInfoPath) throws Exception {SAXReader reader = new SAXReader();Document document = reader.read(new File(studentInfoPath));Element root = document.getRootElement();Element element = null ;for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){element = (Element) iter.next();//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理Iterator<?> iterInner = element.elementIterator();Element elementInner = (Element) iterInner.next();if(elementInner.getText().equals(id))break;}root.remove(element);OutputFormat out = new OutputFormat(" ", true, "utf-8");XMLWriter writer = new XMLWriter(new FileOutputStream(studentInfoPath), out);writer.write(document);writer.close();}public void Reader(int diPage,int pageFileSize,JspWriter out,String studentInfoPath) throws DocumentException, IOException{SAXReader saxReader = new SAXReader();Document document = saxReader.read(new File(studentInfoPath));Element root = document.getRootElement();// 用于记录学生编号的变量int num=0;//遍历根结点(students)的所有孩子节点(肯定是student节点)for ( Iterator<?> iter = root.elementIterator(); iter.hasNext(); ){out.print("<tr>");num++;Element element = (Element) iter.next();if(num>=(diPage*pageFileSize-(pageFileSize-1))&&num<=diPage*pageFileSize){//遍历student结点的所有孩子节点(即id,name,age,gender,email,java),并进行处理for ( Iterator<?> iterInner = element.elementIterator(); iterInner.hasNext(); ){Element elementInner = (Element) iterInner.next();out.print("<th>"+elementInner.getText()+"</th>");}}out.print("</tr>");}}public int Count(String studentInfoPath) throws DocumentException{SAXReader saxReader = new SAXReader();Document document = saxReader.read(new File(studentInfoPath));List<?> list = document.selectNodes("/students/student");int num = list.size();return num;}}/src/filterAuthorityFilter.javapackage filter;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class AuthorityFilter implements Filter{//FilterConfig可用于访问Filter的配置信息private FilterConfig config;//实现初始化方法public void init(FilterConfig config){this.config = config;}//实现销毁方法public void destroy(){this.config = null;}//执行过滤的核心方法public void doFilter(ServletRequest request,ServletResponse response, FilterChain chain)throws IOException,ServletException{//---------下面代码用于对用户请求执行预处理---------//获取ServletContext对象,用于记录日志ServletContext context = this.config.getServletContext();long before = System.currentTimeMillis();System.out.println("开始过滤...");//获取该Filter的配置参数String encoding = config.getInitParameter("encoding");String loginPage = config.getInitParameter("loginPage");String loginServlet = config.getInitParameter("loginServlet");String addsuccess = config.getInitParameter("addsuccess");String changePage = config.getInitParameter("changePage");String changesuccess = config.getInitParameter("changesuccess");String delete = config.getInitParameter("delete");//设置request编码用的字符集request.setCharacterEncoding(encoding);HttpServletRequest requ = (HttpServletRequest)request;HttpSession session = requ.getSession(true);//输出提示信息System.out.println("Filter已经截获到用户的请求的地址:" +requ.getServletPath());System.out.println("user:" +session.getAttribute("user"));//获取客户请求的页面String requestPath = requ.getServletPath();//如果session范围的user为null,即表明没有登录//且用户请求的既不是登录页面,也不是处理登录的页面if( session.getAttribute("user") == null&& !requestPath.endsWith(loginPage)&& !requestPath.endsWith(loginServlet)){request.setAttribute("tip", "nologin");request.getRequestDispatcher("/login.jsp").forward(request, response);}/*else if(requestPath.endsWith(addsuccess)||requestPath.endsWith(changePage)||requestPath.endsWith(changesuccess)||requestPath.endsWith(delete)){request.setAttribute("tip", "stop");request.getRequestDispatcher("/studentInfoDisplay.jsp").forward(request, response);}*///"放行"请求else{chain.doFilter(request, response);}//---------下面代码用于对服务器响应执行后处理---------long after = System.currentTimeMillis();//输出提示信息System.out.println("过滤结束");//输出提示信息System.out.println("请求被定位到" + ((HttpServletRequest) request).getRequestURI() +" 所花的时间为: " + (after - before));System.out.println("Session.tip:"+session.getAttribute("tip"));System.out.println("er:"+session.getAttribute("user"));}}/src/sevrvletLoginServlet.javapackage sevrvlet;import java.io.IOException;import java.io.PrintWriter;import javax.mail.Session;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.jboss.weld.context.SessionContext;import bean.ReadUserInfo;public class LoginServlet extends HttpServlet {/*** Constructor of the object.*/public LoginServlet() {super();}/*** Destruction of the servlet. <br>*/public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}/*** The doPost method of the servlet. <br>** This method is called when a form has its tag value method equals to post.** @param request the request send by the client to the server* @param response the response send by the server to the client* @throws ServletException if an error occurred* @throws IOException if an error occurred*/public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {ReadUserInfo r = new ReadUserInfo();r.read(request.getSession().getServletContext().getRealPath("")+"\\WEB-INF\\users.txt");String username = request.getParameter("username");String password = request.getParameter("password");HttpSession session = request.getSession(true);//RequestDispatcher dis = null;PrintWriter out = response.getWriter();if(!r.checknp(username,password)){out.print("<script>alert('Wrong username or password');location.href='../login.jsp';</script>");//dis = request.getRequestDispatcher("../login.jsp");}else{session.setAttribute("user", username);System.out.println("LoginServlet tip:"+session.getAttribute("tip"));//out.print("<script>alert('z!');location.href='../index.jsp';</script>");//dis = request.getRequestDispatcher("../studentInfoDisplay.jsp");out.print("<script>location.href='../studentInfoDisplay.jsp';</script>");}//dis.forward(request, response);}/*** Initialization of the servlet. <br>** @throws ServletException if an error occurs*/public void init() throws ServletException {// Put your code here}}/src/tagIteratorTag.javapackage tag;import java.io.IOException;import java.util.Collection;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.SimpleTagSupport;public class IteratorTag extends SimpleTagSupport {private String collection;private String item;//collection的setter与getter函数public void setCollection(String conllection){this.collection = conllection;}public String getCollection(){return this.collection;}//item的setter与getter函数public void setItem(String item){this.item = item;}public String getItem(){return item;}@Overridepublic void doTag() throws JspException, IOException {// TODO Auto-generated method stubCollection itemlist = (Collection)getJspContext().getAttribute(collection);for(Object itemTemp : itemlist){getJspContext().setAttribute(item, itemTemp);getJspBody().invoke(null);}}/srcmytaglib.tld<?xml version="1.0"encoding="GBK"?><taglib xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"version="2.0"><tlib-version>1.0</tlib-version><short-name>mytaglib</short-name><!-- 定义该标签库的URI --><uri>/mytaglib</uri><tag><!-- 定义标签名 --><name>iterator</name><!-- 定义标签处理类 --><tag-class>tag.IteratorTag</tag-class><!-- 定义标签体支持JSP脚本 --><body-content>scriptless</body-content><!-- 配置标签属性:collection --><attribute><name>collection</name><required>true</required><fragment>true</fragment></attribute><!-- 配置标签属性:item --><attribute><name>item</name><required>true</required><fragment>true</fragment></attribute></tag></taglib>/WebRootadd.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>添加信息</title></head><body><%-- <% if(request.getAttribute("tip") != null && request.getAttribute("tip").equals("stop")){request.removeAttribute("tip");out.print("<script>alert('不能直接访问该网页');</script>");}%> --%><center><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><form action = "addsuccess.jsp"method = "post">请输入学生信息:<br><br>姓 名:<input type= "text"name="name"style = "width = 165px;height = 22px;"value=""/><br><br>学 号:<input type= "text"name="id"style= "width = 165px;height = 22px;"value=""/><br><br>年 龄:<input type= "text"name="age"style = "width = 165px;height = 22px;"value=""/><br><br>性 别:<input type= "text"name="gender"style style = "width = 165px;height = 22px;"value=""/><br><br>email:<input type= "text"name="email"style= "width= 165px;height = 22px;"value=""/><br><br>java :<input type= "text"name="java"style= "width= 165px;height = 22px;"value=""/><br><br><input type="submit"value="添加"/> <a href="studentInfoDisplay.jsp">返回</a></form></center></body></html>addsuccess.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>find</title></head><body><%//System.out.println("11213213");if(application.getAttribute("lock") == "true"){out.print("<script>alert('他人正在操作中');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "true");}%><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><%String Id=request.getParameter("id"),Name=request.getParameter("name"),Age=request.getParameter("age"),Gender=request.getParameter("gender"),Email=request.getParameter("email"),Java=request.getParameter("java");//Name= new String(Name.getBytes("ISO8859_1"), "GBK");//Gender= new String(Gender.getBytes("ISO8859_1"), "GBK");System.out.println(request.getRealPath("/WEB-INF/students.xml")) ;if(Id.isEmpty()||Name.isEmpty()||Age.isEmpty()||Gender.isEmpty() ||Email.isEmpty()||Java.isEmpty()){application.setAttribute("lock", "false");out.print("<script>alert('学生信息未填写完整!');location.href='add.jsp';</script>");}else{if(testBean.check(Id,request.getRealPath("/WEB-INF/students.xml"))) {testBean.add(Id, Name, Age, Gender, Email, Java,request.getRealPath("/WEB-INF/students.xml"));application.setAttribute("lock", "false");out.print("<script>alert('成功添加!');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "false");out.print("<script>alert('该学生已存在!');location.href='add.jsp';</script>");}}%></body></html>change.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>修改信息</title></head><body><%-- <% if(request.getAttribute("tip") != null && request.getAttribute("tip").equals("stop")){request.removeAttribute("tip");out.print("<script>alert('不能直接访问该网页');</script>");}%> --%><center><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><form action = "changesuccess.jsp"method = "post"><!-- 并发操作安全性代码 --><%String id=session.getAttribute("id").toString(),name=session.getAttribute("name").toString(),age=session.getAttribute("age").toString(),gender=session.getAttribute("gender").toString(),email=session.getAttribute("email").toString(),java=session.getAttribute("java").toString();%>在要修改处输入修改后信息:<br><br>姓 名:<input type= "text"name="name"style= "width = 165px;height = 22px;"value=<%=name%>><br><br>学 号:<input type= "text"name="id"style = "width = 165px;height = 22px;"value=<%=id %>><br><br>年 龄:<input type= "text"name="age"style = "width = 165px;height = 22px;"value=<%=age %>><br><br>性 别:<input type= "text"name="gender"style = "width = 165px;height = 22px;"value=<%=gender%>><br><br>email:<input type= "text"name="email"style= "width= 165px;height = 22px;"value=<%=email%>><br><br>java :<input type= "text"name="java"style= "width=165px;height = 22px;"value=<%=java%>><br><br><input type="submit"value="更改"/> <a href="studentInfoDisplay.jsp">返回</a></form></center></body></html>changesuccess.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"> <title>find</title></head><body><%System.out.println("11213213");if(application.getAttribute("lock") == "true"){out.print("<script>alert('他人正在操作中');location.href='change.jsp';</script>");}else{application.setAttribute("lock", "true");}%><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><%String user=session.getAttribute("id").toString();String Id=request.getParameter("id"),Name=request.getParameter("name"),Age=request.getParameter("age"),Gender=request.getParameter("gender"),Email=request.getParameter("email"),Java=request.getParameter("java");//Name= new String(Name.getBytes("ISO8859_1"), "GBK");//Gender= new String(Gender.getBytes("ISO8859_1"), "GBK");%><%if(!Id.equals(user)){if(testBean.check(Id,request.getRealPath("/WEB-INF/students.xml"))) {testBean.Edit(user,Id, Name, Age, Gender, Email, Java,request.getRealPath("/WEB-INF/students.xml"));application.setAttribute("lock", "false");out.print("<script>alert('成功更改!');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "false");out.print("<script>alert('该学生已存在!');location.href='change.jsp';</script>");}}else{testBean.Edit(user,Id, Name, Age, Gender, Email, Java,request.getRealPath("/WEB-INF/students.xml"));application.setAttribute("lock", "false");out.print("<script>alert('成功更改!');location.href='studentInfoDisplay.jsp';</script>");}%></body></html>delete.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>删除</title></head><body><%if(application.getAttribute("lock") == "true"){out.print("<script>alert('他人正在操作中');location.href='studentInfoDisplay.jsp';</script>");}else{application.setAttribute("lock", "true");}%><jsp:useBean id="testBean"class="bean.XmlPage"scope="page"/><%String id=session.getAttribute("id").toString();%><%testBean.Del(id,request.getRealPath("/WEB-INF/students.xml")); %><%application.setAttribute("lock", "false");out.print("<script>alert('成功删除!');location.href='studentInfoDisplay.jsp';</script>");%></body></html>find.jsp<%@page language="java"contentType="text/html; charset=GBK" pageEncoding="GBK"%><%@page import="java.io.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=GBK"><title>查找</title></head><body><%-- <% if(request.getAttribute("tip") != null &&。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海电力学院期末作业:简单的学籍管理系统课程: Web 应用程序设计院系:电气工程学院_____________________专业:电力系统及其自动化_______________学生姓名:张富杰学号:17103060指导教师:______________ 曹渝昆___________________2017年1月6日目录一、设计思路 (3)二具体实现......................................................................... 3.. .三运行调试与分析......................................................................... 3.. .四设计体会与小结......................................................................... 8.. .五程序代码......................................................................... 8.. .、设计思路随着社会经济的发展,入学的同学越来越多,为方便对同学学籍信息的的管理,设计学籍管理软件来管理本班级同学的学籍信息。
该软件应支持添加、删除、修改、查询功能。
查询方式主要是支持学号查询,例如:输入“1”,则显示该学生的信息。
运用流式、卡片、整体布局方式对系统的主界面和各功能界面进行设计;通过连接数据库的方式来实现对数据的存储;各功能实现时访问数据库,并对数据信息进行读取,运用Java 语句对其进行输出,学号查询时显示在文本框中;系统提示功能用来提醒用户的错误操作和输入时的错误信息,提醒用户进行改正。
二具体实现1.向班级里插入一个学生,但必须是插在已经建立的班级里。
2.输入学生信息,建立一个班级。
3.修改一个学生的所有资料。
4.删除某班的一个学生及其所有资料。
5.删除一个班级。
6.根据学生姓名查找某个学生信息。
每种功能通过一个类来实现:类分分为主类、查询类、修改类、添加类、增加类。
主类各功能界面的连接;精确查询类(SearchStude nt实现根据学生姓名查找某个学生信息;修改类(MdifyStude nt)实现修改一个学生的所有资料;添加类(AddStudent)实现向班级里插入一个学生,但必须是插在已经建立的班级里。
;删除类(DeleteStudent)实现删除某班的一个学生及其所有资料。
;删除类(DeleteClass) 实现删除一个班级;建立类(BuiltClasS实现输入学生信息建立一个班级。
三运行调试与分析系统的详细设计代码请查阅附带的代码。
以下仅对各个界面进行截图展示:国芋主营菩统—□X学生信息增加学生信息到指定班毅删除一个学生学轄信息眩改一个字生信息查甸某个学生信息删瞧一个斑级信息辎入一个学生建立一个班皴图1管理界面L±J 幫加学生至!Bf 定班级 □ X添加学生至惱定班级图2:添加学生到指定的班级界面图3:删除一个学生信息界面图4:修改一个学生信息界面图5:查询某个学生信息界面图6删除一个班级界面图7:输入一个学生建立一个班级界面运行JAVA程序中的StudentManager文件,显示系统的主界面,如图1所示,主界面有进入其他子功能的按钮,选择相应的按钮便可进入相应的功能。
添加学生到指定班级功能如图2所示,根据提示输入要添加的信息,点击确定,将弹出提示框,确认是否添加。
输入一个学生建立一个班级功能如图7 所示,根据提示输入要添加的信息,点击确定,将弹出提示框,确认是否建立。
删除一个班级信息功能如图 6 所示,根据提示输入班级号,点击删除。
删除一个学生信息功能如图 3 所示,根据提示输入学号,点击删除。
修改一个学生信息功能如图 4 所示,首先输入要修改的人姓名,点击开始修改,在下面的文本框现实当前数据库内所存该人的信息,同时录入修改键变化为可点击,在文本框内输入要修改的学号,点击录入修改,系统将新信息录如数据库。
点击查询某个学生信息按钮,将弹出查询对话框,输入姓名便可以精确查询到此人的所有学籍信息。
查询如图 5 所示,将显示数据库中所存的所有号码信息。
四设计体会与小结期末大作业的课设,自己通过查找资料、复习课本、编程调试,写实验报告等环节,进一步掌握了以前学到的知识,并且还对GUI组键的应用有了更深入的认识与掌握,另外还学到了一些新东西,比如JAVA的SWING AWT包,以前是没有接触过的,可是通过这次课程设计使得我们对这个包更了解。
通过与数据库的连接掌握了Java与数据库的连接技术。
通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习java 语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
五程序代码package simplebighomework;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class StudentManager extends JFrame implements ActionListener { // 继承JFrame 类JMenuBar jmb; // 菜单栏JMenu Message; // 菜单JMenuItem Item1,Item2,Item3,Item4,Item5,Item6; // 菜单项public StudentManager(String s) { // 构造函数StudentManage // 添加按键jmb = new JMenuBar();Message = new JMenu(学生信息");Iteml = new JMenultemC增加学生信息到指定班级"); //菜单名Item2 = new JMenultem(‘删除一个学生学籍信息");Item3 = new JMenultem(‘修改一个学生信息");Item4 = new JMenultem("查询某个学生信息");Item5 = new JMenultem(‘删除一个班级信息");Item6 = new JMenultem(‘输入一个学生建立一个班级");Message.add(Item1);Message.add(Item2);Message.add(Item3);Message.add(Item4);Message.add(Item5);Message.add(Item6);jmb.add(Message);Item1.addActionListener(this);Item2.addActionListener(this);Item3.addActionListener(this);Item4.addActionListener(this);Item5.addActionListener(this);Item6.addActionListener(this);setTitle(s); // 设置窗口标题setBounds(500,300,500,500); //窗口的位置setVisible(true); // 组件可见setJMenuBar(jmb); // 菜单栏validate(); // 再次布置容器及其组件setDefaultCloseOperati on (JFrame.EXIT_ON_CLOSE设/置隐藏,关闭,放大窗口}public void actionPerformed(ActionEvent e){ //ActionEvent 包含一个事件,该事件为执行动作事件点击按钮等if (e.getSource() == Item1) {//e.getSource() == Item2) 返回的当前动作所指向的对象,包含对象的所有信息AddStudent ad = new AddStudent();} else if (e.getSource() == Item2) { // 通过获取事件源,获取相应的对象DeleteStudent ds = new DeleteStudent();} else if (e.getSource() == Item3) { ModifyStudent ms = newModifyStudent();} else if (e.getSource() == Item4) { SearchStudent ss = newSearchStudent();} else if (e.getSource() == Item5) { DeleteClass dc = new DeleteClass();} else if (e.getSource() == Item6) { BuiltClass bc = new BuiltClass();}}public static void main(String[] args) {StudentManager stu=new StudentManager(‘学生管理系统");}} package simplebighomework; import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*;public class AddStudent extends JFrame implements ActionListener {继承java的窗口体类JLabel JL = new JLabe添加学生到指定班级", JLabel.CENTER);JLabel JLNumber = new JLabe 学号:"); // 显示输入学号JTextField JTNumber = new JTextField(); // 创建文本框JLabel JLName = new JLabe姓名:");JTextField JTName = new JTextField();JLabel JLClass = new JLabe班级:");ButtonGroup BG = new ButtonGroup();JRadioButt on JRB1 = new JRadioButton一班");JRadioButt on JRB2 = new JRadioButton二班");JButton JBAdd = new JButto n 添加");// 创建按钮JButton JBExit = new JButto n 退出");public AddStudent() {this.setTitle(”添加学生到指定班级"); this.setLayout(null);JL.setBounds(100, 30, 200, 40); this.add(JL);this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20); this.add(JTNumber);JLName.setBounds(140, 120, 60, 20); this.add(JLName); JTName.setBounds(180, 120, 80, 20); this.add(JTName);JLClass.setBounds(140, 160, 100, 20); this.add(JLClass); JRB1.setBounds(180, 160, 60, 20);JRB2.setBounds(240, 160, 60, 20); this.add(JRB1);this.add(JRB2);BG.add(JRB1);BG.add(JRB2);JBAdd.setBounds(120, 220, 60, 20); this.add(JBAdd); JBAdd.addActionListener(this);JBExit.setBounds(200, 220, 60, 20);this.add(JBExit);JBExit.addActionListener(this); this.setBounds(500, 300, 500, 400); this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == JBAdd) {String snumber = JTNumber.getText(); String sname = JTName.getText(); String sclass = 一" 班";if (JRB1.isSelected()) sclass = 一"班";elsesclass = 二" 班";Connection con; // 声明 Connection 对象String driver = "com.mysql.jdbc.Driver"; // 驱动程序名 // 遍历查询结果集 try {Class.forName(driver); // 加载驱动程序 conDriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=t rue&characterEncoding=utf-8&useSSL=false","root","zfj151********"); //l.getConnection()方法,连接 MySQL 数据库! !Statement statement = con.createStatement(); //2. 创建statement 类对象,用来执行SQL 语句! !String sql = "select * from student where id='"+snumber+"'";//要执行的SQL 语句ResultSet rs = statement.executeQuery(sql); //3.ResultSet类,用来存放获取的结果集! !if (rs.next())JOptionPane.showMessageDialog(null,"该号已经存在");//提示else {sql = "insert into student values('" + snumber + "','"+ sname+ "','" + sclass +"')";int i = statement.executeUpdate(sql); // 执行 SQL语句,把返回值赋给i// 添加窗口的位置// 监听接口// 点击建立的时候生效 // 获取文本框中的信息// 单选按钮if (i > 0)JOptionPane.showMessageDialog(null, "建立成功");// 提示成功elseJOptionPane.showMessageDialog(null, "添加失败"); // 提示失败}}catch (Exception ee) { // 捕获异常}}if (e.getSource() == JBExit) { // 退出按钮监视setVisible(false);}}public static void main(String[] args) {new BuiltClass();}}package simplebighomework;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class BuiltClass extends JFrame implements ActionListener { JLabel JL = new JLabe输入一个学生建立一个班级", JLabel.CENTER); // 什么意思JLabel JLNumber = new JLabe 学号:”);// 显示输入学号JTextField JTNumber = new JTextField(); //创建文本框JLabel JLName = new JLabe姓名:");JTextField JTName = new JTextField();JLabel JLClass = new JLabe班级:");JTextField JTClass = new JTextField();JButton JBAdd = new JButto n 建立"); // 创建按钮JButton JBExit = new JButto n 退出");// 什么意思public BuiltClass() {this.setTitle("输入一个学生建立一个班级"); this.setLayout(null);JL.setBounds(100, 30, 200, 40); this.add(JL);JLNumber.setBounds(140, 80, 100, 20); 〃x 轴和y 轴,宽高this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20); this.add(JTNumber);JLName.setBounds(140, 120, 60, 20);this.add(JLName);JTName.setBounds(180, 120, 80, 20); this.add(JTName);JLClass.setBounds(140, 160, 100, 20); this.add(JLClass);JTClass.setBounds(180, 160, 80, 20); this.add(JTClass);JBAdd.setBounds(120, 220, 60, 20); this.add(JBAdd);JBAdd.addActionListener(this);JBExit.setBounds(200, 220, 60, 20); this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400); this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == JBAdd) {String snumber = JTNumber.getText(); String sname = JTName.getText(); String sclass = JTClass.getText();Connection con; // 声明 Connection 对象 String driver = "com.mysql.jdbc.Driver"; // 驱动程序名// 遍历查询结果集 try {Class.forName(driver); // 加载驱动程序 con =DriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=t rue&characterEncoding=utf-8&useSSL=false","root","zfj151********"); //l.getConnection()方法,连接 MySQL 数据库! !Statement statement = con.createStatement(); //2.创建statement 类对象,用来执行SQL 语句!!String sql = "select * from student whereid='"+snumber+"'";ResultSet rs = statement.executeQuery(sql);〃3.ResultSet 类,用来存放获取的结果集! !if (rs.next())JOptionPane.showMessageDialog(null,"该号已经存在");//提示else {sql = "insert into student values('" + snumber + "','"+ sname+ "','" + sclass +"')";int i = statement.executeUpdate(sql);SQL 语句,把返回值赋给i if (i > 0)JOptionPane.showMessageDialog(null, "建立 成功 ");// 什么意思? 监听接口 // 点击建立的时候生效 // 获取文本框中的信息// 执行// 提示成功elseJOptionPane.showMessageDialog(null, "添加失败"); // 提示失败}}catch (Exception ee) { // 什么意思?}}if (e.getSource() == JBExit) { // 什么意思?setVisible(false);}}public static void main(String[] args) {new BuiltClass();}}package simplebighomework;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class DeleteClass extends JFrame implements ActionListener { JLabel JL = new JLabe删除一个班级信息",JLabel.CENTER);JLabel JLClass = new JLabe班级:");// 显示班级窗口JTextField JTClass = new JTextField()输入班级的窗口JButton JBDel = new JButto n 删除"); JButton JBExit = new JButto n 退出"); public DeleteClass() {this.setTitle("删除一个班级信息"); this.setLayout(null); JL.setBounds(100, 30, 200, 40); this.add(JL);JLClass.setBounds(140, 80, 60, 20); this.add(JLClass);JTClass.setBounds(180, 80, 80, 20); this.add(JTClass);JBDel.setBounds(120, 120, 60, 20); this.add(JBDel); JBDel.addActionListener(this);JBExit.setBounds(200, 120, 60, 20); this.add(JBExit); JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400); this.setVisible(true);}public void actionPerformed(ActionEvent e){if (e.getSource() == JBDel) {String sclass = JTClass.getText();Connection con; // 声明 Connection 对象 String driver = "com.mysql.jdbc.Driver"; // 驱动程序名// 遍历查询结果集// 执行操作// 获取文本中输入的班级try {Class.forName(driver); // 加载驱动程序con =DriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=t rue&characterEncoding=utf-8&useSSL=false","root","zfj151********");//l.getConnection()方法,连接MySQL数据库!!Statement statement = con.createStatement(); //2. 创建statement类对象,用来执行SQL语句!!String sql = "select * from student whereclass='"+sclass+"'";ResultSet rs = statement.executeQuery(sql); 〃3.ResultSet类,用来存放获取的结果集!!if (rs.next()) {sql = "delete from student where class='" + sclass + "'";int n = statement.executeUpdate(sql);if (n > 0)JOptionPane.showMessageDialog(null,删除成功"); elseJOptionPane.showMessageDialog(null,删除失败");} else {JOptionPane.showMessageDialog(null,不存在该班级");}}catch (Exception er) {}}if (e.getSource() == JBExit) {setVisible(false);}}public static void main(String[] args) {new DeleteClass();package simplebighomework;import javax.swing.*;}import java.awt.*;import java.awt.event.*;import java.sql.*;public class DeleteStudent extends JFrame implements ActionListener { JLabel JL = new JLabe删除一个学生信息",JLabel.CENTER); JLabelJLNumber = new JLabe 学号:");// 显示输入“学号” JTextField JTNumber = new JTextField(); /输/ 入学号的文本框JLabel JLClass = new JLabe班级:");// 显示输入“班级” JTextField JTClass = new JTextField();输入班级的文本框JLabel JLName = new JLabe姓名:"); // 显示输入“姓名”JTextField JTName = new JTextField(); 输// 入姓名的文本框JButton JBDel = new JButton删除");// 删除键JButton JBExit = new JButto n 退出");// 退出键public DeleteStudent() {this.setTitle(-删除一个学生信息");this.setLayout(null);JL.setBounds(100, 30, 200, 40); this.add(JL);JLNumber.setBounds(140, 80, 100, 20); //x 轴和y 轴,宽高this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20);this.add(JTNumber);JLName.setBounds(140, 120, 80, 20); //x 轴和y 轴,宽高this.add(JLName);JTName.setBounds(180, 120, 80, 20);this.add(JTName);JLClass.setBounds(140, 160, 80, 20); //x 轴和y 轴,宽高this.add(JLClass);JTClass.setBounds(180, 160, 80, 20); this.add(JTClass);JBDel.setBounds(120, 200, 60, 20);this.add(JBDel);JBDel.addActionListener(this);JBExit.setBounds(200, 200, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400); this.setVisible(true);}public void actionPerformed(ActionEvent e){if (e.getSource() == JBDel) {String snumber = JTNumber.getText(); // 获取输入的学号Connection con; // 声明Connection 对象String driver = "com.mysql.jdbc.Driver"; // 驱动程序名// 遍历查询结果集try {Class.forName(driver); // 加载驱动程序con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8&useSSL=false","root","zfj151********");Statement statement = con.createStatement(); //2. 创建statement类对象,用来执行SQL语句!!String sql = "select * from student whereid='"+snumber+"'";ResultSet rs = statement.executeQuery(sql);//3.ResultSet 类,用来存放获取的结果集!!if (rs.next()) {sql = "delete from student where id='" + snumber + "'";int n = statement.executeUpdate(sql);if (n > 0)JOptionPane.showMessageDialog(null," 删除成功"); //执行了返回删除成功elseJOptionPane.showMessageDialog(null,删除失败");}else {JOptionPane.showMessageDialog(null,不存在该学号学生");}}catch (Exception er) {}}if (e.getSource() == JBExit) { setVisible(false);}}public static void main (String[] args) {new DeleteStudent();}package simplebighomework;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class ModifyStudent extends JFrame implements ActionListener { JLabel JL = new JLabel修改一个学生信息",JLabel.CENTER);JLabel JLNumber = new JLabe 学号:"); // 显示学号JTextField JTNumber = new JTextField(); // 创建用于输入学号的文本JLabel JLName = new JLabe姓名:");JTextField JTName = new JTextField();JLabel JLClass = new JLabe班级:");JTextField JTClass = new JTextField();JButton JBGet = new JButton修改"); // 修改按钮JButton JBExit = new JButto n 退出");public ModifyStudent() {this.setTitle("修改一个学生信息"); this.setLayout(null); JL.setBounds(100, 30, 200, 40); this.add(JL);JLNumber.setBounds(140, 80, 100, 20); //x 轴和y 轴,宽高this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20);this.add(JTNumber);JLName.setBounds(140, 120, 60, 20); this.add(JLName);JTName.setBounds(180, 120, 80, 20);this.add(JTName);JLClass.setBounds(140, 160, 100, 20);this.add(JLClass);JTClass.setBounds(180, 160, 80, 20);this.add(JTClass);JBGet.setBounds(120, 220, 60, 20);this.add(JBGet);JBGet.addActionListener(this);JBExit.setBounds(200, 220, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400);this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == JBGet) {String snumber = JTNumber.getText(); // 读取文本中输入的学号String sname = JTName.getText();String sclass = JTClass.getText();Connection con; // 声明Connection 对象String driver = "com.mysql.jdbc.Driver"; // 驱动程序名// 遍历查询结果集try {Class.forName(driver); // 加载驱动程序con =DriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=t rue&characterEncoding=utf-8&useSSL=false","root","zfj151********");//l.getConnection()方法,连接MySQL数据库!!Statement statement = con.createStatement(); //2. 创建statement类对象,用来执行SQL语句!!String sql = "select * from student where id='"+snumber+"'"; // 根据id 对数据库查询ResultSet rs = statement.executeQuery(sql); //3.ResultSet 类,用来存放获取的结果集!!if (rs.next()){ sql = "UPDATE student SET name='" +sname+ "',class='"+sclass+ "'where id='" + snumber + "'";int n = statement.executeUpdate(sql);// 什么意思?if (n > 0)JOptionPane.showMessageDialog(null,修改成功");elseJOptionPane.showMessageDialog(null,修改失败");} else {JOptionPane.showMessageDialog(null,不存在该学号学生");}}catch (Exception er) {}}if (e.getSource() == JBExit) { setVisible(false);}} public static void main(String[] args) { new ModifyStudent();}package simplebighomework; import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class SearchStudent extends JFrame implements ActionListener {JLabel JL = new JLabe 查询某个学生信息",JLabel.CENTER);JLabel JLNumber = new JLabe 学号:"); JTextField JTNumber = newJTextField(); JLabel JLName = new JLabe 姓名 :"); JTextField JTName = new JTextField();JLabel JLClass = new JLabe 班级:");JTextField JTClass = new JTextField();JButton JBSet = new JButto n 查询"); JButtonJBExit = new JButto n 退出"); public SearchStudent() {// 设置窗口的大小,位置 this.setTitle(-查询某个学生信息");this.setLayout(null);JL.setBounds(100, 30, 200, 40);this.add(JL);JLNumber.setBounds(140, 80, 80, 20);//x 轴和 y 轴,宽高 this.add(JLNumber);JTNumber.setBounds(180, 80, 80, 20);this.add(JTNumber);JLName.setBounds(140, 120, 80, 20);//x 轴和 y 轴,宽高 this.add(JLName);JTName.setBounds(180, 120, 80, 20);this.add(JTName);JLCIass.setBounds(140, 160, 80, 20);〃x 轴和 y 轴,宽高 this.add(JLClass);JTClass.setBounds(180, 160, 80, 20); this.add(JTClass); // 输入学号的文本 // 查询按钮// 退出按钮JBSet.setBounds(120, 200, 60, 20);this.add(JBSet);JBSet.addActionListener(this);JBExit.setBounds(200, 200, 60, 20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(500, 300, 500, 400);this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == JBSet) {String sname = JTName.getText(); 获// 取文本中输入的学号Connection con; // 声明Connection 对象String driver = "com.mysql.jdbc.Driver"; // 驱动程序名// 遍历查询结果集try {Class.forName(driver); // 加载驱动程序con =DriverManager.getConnection("jdbc:mysql://localhost:3306/database?useUnicode=t rue&characterEncoding=utf-8&useSSL=false","root","zfj151********");//l.getConnection()方法,连接MySQL数据库!!Statement statement = con.createStatement(); //2.创建statement类对象,用来执行SQL语句!!String sql = "select * from student wherename='"+sname+"'";ResultSet rs = statement.executeQuery(sql); //3.ResultSet 类,用来存放获取的结果集!!if (rs.next()){ // 查询数据,然后返回String number = rs.getString(1);JTNumber.setText(number); String clas = rs.getString(3);JTClass.setText(clas); int n = statement.executeUpdate(sql); if(n > 0)JOptionPane.showMessageDialog(null, 查" 询成功"); elseJOptionPane.showMessageDialog(null, 查" 询失败");} else { JOptionPane.showMessageDialog(null," 不存在该姓名的学生");}}catch (Exception ee) {}}if (e.getSource() == JBExit) { // 退出按钮setVisible(false);}}public static void main(String[] args) {new SearchStudent();}。