课设名称:学生信息管理系统院(系):信息科学与工程学院*名:***学号:201410411406年级:2014级专业班级:计算机科学与技术4班指导教师:***时间:2016年11月目录第一部分摘要 (2)第二部分目的背景与意义 (4)第三部分需求分析 (4)第四部分系统设计 (4)4.1 结构设计 (4)4.2 功能结构图 (5)4.3 功能流程以及工作流描述 (6)第五部分数据库的设计 (7)5.1数据库设计 (7)5.2数据表的设计 (7)第六部分详细设计 (7)6.1 学生管理系统主界面模块 (8)6.2 学生信息管理模块 (9)6.3 课程信息管理模块 (11)6.4 查询模块 (11)图6.5 数据库操作模块 (11)第七部分课程设计心得 (11)第一部分摘要该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理。
目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少,但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作。
学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。
本文介绍了学生信息管理系统的开发整个过程,阐述了系统分析、系统设计、数据库设计和系统实施的全过程。
在开发方法上本系统利用了软件工程化的思想和方法,总体上采用结构化生命周期开发方法,具体模块实施采用了原型法和面向对象系统开发方法。
并采用JAVA作为开发工具,mysql作为后台数据库。
本系统具有学生管理、课程管理、成绩管理、信息查询等功能,分成四大模块,每个模块都相互联系,但不相互干扰,这符合了软件模块开发的思想。
本系统完成了学生信息的增加、修改、删除、查询和选课,课程信息的增加、修改、删除、查询,成绩的添加、修改、查询等功能。
【关键字】:信息管理系统、模块设计、软件工程。
第二部分目的背景与意义学生信息管理系统是一个教育单位不可缺少的部分。
一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。
第三部分需求分析学生信息管理系统的功能总结起来,共需要以下几个方面:1.学生信息管理管理所有学生的基本信息,包括增加、修改、删除等,也可以根据各种条件查询出需要的信息。
2.课程信息管理管理所有课程的基本信息,包括增加、修改、删除等,也可以根据各种条件查询出需要的信息。
3.选课与成绩管理根据学号进行选课,登记课程的成绩,可以根据学号查询出来选课信息与成绩。
第四部分系统设计4.1 结构设计根据对系统的需求分析,本系统将分为4个模块:●学生管理:管理学生的基本信息,包括个人信息的添加、修改、删除,以及选课信息的添加。
●课程管理:管理课程的基本信息,包括课程信息的添加、修改和删除。
●成绩管理:管理学生的选课的成绩信息,包括成绩的登记与修改。
●信息查询:查询已经登记的信息,包括学生的基本信息、课程的基本信息与成绩信息。
4.2 功能结构图系统的功能结构如图1所示。
图1 学生管理系统功能结构图4.3 功能流程以及工作流描述1.增加学生信息系统操作人员打开学生信息添加界面,输入相关的信息(姓名、性别、民族、籍贯、出生日期、入学年份、专业和学院等),在数据库中添加相关数据。
2.修改学生信息根据学生的学号查询出该学生的相关信息,修改相关条目后保存在数据库中。
3.删除学生信息根据学生的学号查询出该学生的相关信息,确定删除后,在数据库中删除该信息。
4.学生选课选择学生学号与需要选择的课程,确定无误后保存,数据库中将自动添加新的选课记录。
5.增加课程信息系统操作人员根据打开的课程增加界面,输入相关信息(课程名称、授课教师、课程学分、课程系数、上课地点等),在数据库中添加相关的数据。
6.修改课程信息根据课程号查询出该课程的相关信息,修改条目后保存在数据库中。
7.删除课程信息根据课程号查询出该课程的相关信息,确认删除后,在数据库中删除该信息。
8.登记成绩根据学号,以及该学生所选择的课程,进行成绩登记,为选课的同学将无法登记。
9.修改成绩对已经登记的成绩信息进行修改。
10.学生查询可以根据学生学号、学生姓名、学生性别、学生所学专业、学生所属学院来对学生信息进行查询,所有符合查询条件的学生信息将都被显示出来。
11.课程查询按照课程名称和授课教师的名称对课程详细信息进行查询,所有符合查询条件的课程信息都将会被显示出来。
12.成绩查询:根据学生的学号来查询该学生所有课程的成绩。
第五部分数据库的设计5.1数据库设计此系统使用的是mysql数据库,由于此系统需要的数据量不是很大,所以选择比较简便的mysql数据库。
此系统的数据库名称是studentsys,创建语句如下:5.2数据表的设计数据库中包含三个表,即是学生信息表(student)、课程信息表(Course)和学生选课表(SC),设计要求如表1~3所示。
第六部分详细设计该系统由6个模块构成,包括学生管理系统主界面模块、学生信息管理模块、课程信息管理模块、成绩管理模块、信息查询模块和数据库操作模块,以下分别加以叙述:6.1 学生管理系统主界面模块学生管理系统的主界面模块包括StuMS.java和StuMain.java两个文件。
StuMS是学生管理系统的主运行类,其中有整个程序的主方法main,该文件生成了StuMain类的一个实例,从而生成了学生管理系统的主界面,如图2所示。
StuMain类继承了JFrame 类,实现了事件监听接口,它有一个不带参数的构造函数StuMain(),用来生成StuMain 实例,StuMain类将所有的功能集中到面板中,面板上的按键是按网格排布,生成按钮,通过按钮的响应函数调用其他模块的函数来实现学生管理系统的各个功能,以下是主界面的运行程序:图6.1.1 主界面运行程序6.2 学生信息管理模块学生信息管理模块主要由StuInfo.java、AddStuInfo.java、EditStuInfo.java、DelStuInfo.java、SelectCourse.java和StuInfoSearchSnum.java这六个文件组成,每个java文件只有一个类,完全实现模块化设计,StuInfo类是AddStuInfo、EditStuInfo、DelStuInfo的超类,因为这三个类生成的界面是相同的具有共同之处。
SelectCourse模块是选课模块,StuInfoSearchSnum是查询模块,用于AddStuInfo、EditStuInfo、DelStuInfo调用来查询学生信息以便增加、修改和删除学生信息。
学生信息管理模块的几个界面如下:图6.2.1 学生信息添加界面图6.2.2 学生信息修改界面图6.2.3 学生信息删除界面图6.2.3 学生选课界面6.3 课程信息管理模块课程信息管理模块主要由CourseInfo.java、AddCourseInfo.java、EditCourseInfo.java、DelCourseInfo.java和StuInfoSearchSnum.java这六个文件组成,每个java文件只有一个类,完全实现模块化设计,CourseInfo类是AddCourseInfo、EditCourseInfo、DelCourseInfo的超类,因为这三个类生成的界面是相同的具有共同之处。
CourseInfoSearchSnum是查询模块,用于AddCourseInfo、EditCourseInfo、DelCourseInfo调用来查询课程以便增加、修改和删除课程。
课程信息管理模块的几个界面如下:图6.3.1 课程信息增加界面图6.3.1 课程信息修改界面图6.3.1 课程信息删除界面6.4 查询模块查询模块分学生信息查询、课程信息查询和成绩查询:界面如下:图6.4 查询模块图6.5 数据库操作模块数据库操作模块包括连接数据库和数据库操作,连接数据库在类DataBase.java中,操作数据库类分别在几个不同的类里,学生信息操作在StuBean.java,选课操作在Csbean.java中,课程操作在CrsBean.java中,代码在附录里,这里就不重复了。
第七部分课程设计心得在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。
另外,在整个开发的过程中,时间也比较仓促。
因此,该系统必然会存在一些缺陷和不足。
因为对学生信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。
通过开发这个系统,我掌握了的项目基本开发过程,用到的知识巩固了我对JAVA的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
第八部分附录(部分代码)//////////////////////////////////Database.java//////////////// //////import java.sql.*;import javax.naming.spi.DirStateFactory.Result;/*** 连接数据库的类*/public class Database {private Statement stmt=null;ResultSet rs=null;private Connection conn=null;String sql;String strurl="jdbc:mysql://127.0.0.1:3306/studentsys";public Database(){}/*** 打开数据库连接*/public void OpenConn()throws Exception{try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(strurl,"root","root");conn.setAutoCommit(false);}catch(Exception e){System.err.println("OpenConn:"+e.getMessage());e.printStackTrace();}}/*** 执行sql语句,返回结果集rs*/public ResultSet executeQuery(String sql){stmt = null;rs=null;try{stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.C ONCUR_READ_ONLY);rs=stmt.executeQuery(sql);}catch(SQLException e){System.err.println("executeQuery:"+e.getMessage());e.printStackTrace();}return rs;}/*** 执行sql语句*/public int executeUpdate(String sql){stmt=null;rs=null;int k=0;try{stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.C ONCUR_READ_ONLY);k=stmt.executeUpdate(sql);mit();}catch(SQLException e){System.err.println("executeUpdate:"+e.getMessage());e.printStackTrace();}return k;}public void closeStmt(){try{stmt.close();}catch(SQLException e){System.err.println("closeStmt:"+e.getMessage());}}/*** 关闭数据库连接*/public void closeConn(){try{conn.close();}catch(SQLException ex){System.err.println("aq.closeConn:"+ex.getMessage());}}/**转换编码*/public static String toGBK(String str){try {if(str==null)str = "";elsestr=new String(str.getBytes("ISO-8859-1"),"GBK");}catch (Exception e) {System.out.println(e);}return str;}}//////////////////////////////////StuBean.java//////////////// //////////////import java.util.*;import java.sql.*;import javax.swing.*;/*** 有关学生信息数据库操作的类*/public class StuBean {String sql;ResultSet rs = null;String sNum;String sName;String sSex;String sBirth;String sHome;String sEthnic;String sYear;String sMajor;String sCollege;String sCourse;String colName;//列名String colValue;//列值String colValue2;//列值int stuId;//学生的新学号/*** 添加学生信息*/public void stuAdd(String Snum,String name, String sex, String birth, String home, String ethnic, String year, String major,String college){Database DB = new Database();this.sNum = Snum;this.sName = name;this.sSex = sex;this.sBirth = birth;this.sHome = home;this.sEthnic = ethnic;this.sYear = year;this.sMajor = major;this.sCollege = college;if(sName == null||sName.equals("")){JOptionPane.showMessageDialog(null, "请输入学生姓名", "错误", JOptionPane.ERROR_MESSAGE);return;}else{String numS = "1";sql = "insert into student(snum, sname,ssex,sbirth,shome,sethnic,syear,smajor,scollege) values ('"+sNum+"','"+sName+"','"+sSex+"','"+sBirth+"','"+sHome+"','"+sEthn ic+"','"+sYear+"','"+sMajor+"','"+sCollege+"')";try{DB.OpenConn();System.out.println("ksadhfasdf");DB.executeUpdate(sql);System.out.println("ksadhfasdf");JOptionPane.showMessageDialog(null,"成功添加一条新的纪录!");}catch(Exception e){System.out.println(e);JOptionPane.showMessageDialog(null, "保存失败", "错误", JOptionPane.ERROR_MESSAGE);}finally {DB.closeStmt();DB.closeConn();}}}/*** 修改学生信息*/public void stuModify(String num, String name, String sex, String birth, String home, String ethnic, String year, String major, String college){Database DB = new Database();this.sNum = num;this.sName = name;this.sSex = sex;this.sBirth = birth;this.sHome = home;this.sEthnic = ethnic;this.sYear = year;this.sMajor = major;this.sCollege = college;if(sName == null||sName.equals("")){JOptionPane.showMessageDialog(null, "请输入学生姓名", "错误", JOptionPane.ERROR_MESSAGE);return;}else{//sql = "update student set sname = '"+sName+"', ssex = '"+sSex+"', sbirth = '"+sBirth+"', shome = '"+sHome+"', sethnic = '"+sEthnic+"', syear = '"+sYear+"', smajor = '"+sMajor+"', scollege = '"+sCollege+"' where snum = "+Integer.parseInt(sNum)+"";sql = "update student set sname = '"+sName+"', ssex = '"+sSex+"', sbirth = '"+sBirth+"', shome = '"+sHome+"', sethnic = '"+sEthnic+"', syear = '"+sYear+"', smajor = '"+sMajor+"', scollege = '"+sCollege+"' where snum = '"+sNum+"'";try{DB.OpenConn();int k = DB.executeUpdate(sql);if(k == 1)JOptionPane.showMessageDialog(null,"成功修改一条新的纪录!");}catch(Exception e){System.out.println(e);JOptionPane.showMessageDialog(null, "更新失败", "错误", JOptionPane.ERROR_MESSAGE);}finally {DB.closeStmt();DB.closeConn();}}}/*** 删除学生信息*/public void stuDel(String num){Database DB = new Database();this.sNum = num;sql = "delete from student where snum = '"+sNum+"'";try{DB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessageDialog(null,"成功删除一条新的纪录!");}catch(Exception e){System.out.println(e);JOptionPane.showMessageDialog(null, "删除失败", "错误", JOptionPane.ERROR_MESSAGE);}finally {DB.closeStmt();DB.closeConn();}}/*** 根据学号查询学生信息*/public String[] stuSearch(String num){Database DB = new Database();this.sNum = num;String[] s = new String[8];sql = "select * from student where snum = '"+sNum+"'";try{DB.OpenConn();rs = DB.executeQuery(sql);if(rs.next()){s[0] = rs.getString("sname");s[1] = rs.getString("ssex");s[2] = rs.getString("sethnic");s[3] = rs.getString("shome");s[4] = rs.getString("syear");s[5] = rs.getString("smajor");s[6] = rs.getString("scollege");s[7] = rs.getString("sbirth");}elses = null;}catch(Exception e){}finally {DB.closeStmt();DB.closeConn();}return s;}/*** 学生信息综合查询(按照一个条件进行查询)*/public String[][] stuAllSearch(String colname,String colvalue){ this.colName = colname;this.colValue = colvalue;Database DB = new Database();String[][] sn = null;int row = 0;int i = 0;DB.toGBK(colvalue);if(colValue == null||colValue.equal s("")){sql = "select * from student";}else{sql = "select * from student where "+colName+" = '"+colValue+"'";}try{DB.OpenConn();rs = DB.executeQuery(sql);if(st()){row = rs.getRow();}if(row == 0){sn = null;}else{sn = new String[row][9];rs.first();rs.previous();while(rs.next()){sn[i][0] = rs.getString("snum");sn[i][1] = rs.getString("sname");sn[i][2] = rs.getString("ssex");sn[i][3] = rs.getString("sethnic");sn[i][4] = rs.getString("shome");sn[i][5] = rs.getString("syear");sn[i][6] = rs.getString("smajor");sn[i][7] = rs.getString("scollege");sn[i][8] = rs.getString("sbirth");i++;}}}catch(Exception e){}finally {DB.closeStmt();DB.closeConn();}return sn;}/*** 学生信息综合查询(查询某范围内的记录)*/public String[][] stuAllSearch(String colname,String colvalue,String colvalue2){this.colName = colname;this.colValue = colvalue;this.colValue2 = colvalue2;Database DB = new Database();String[][] sn = null;int row = 0;int i = 0;sql = "select * from student where "+colName+" between "+colValue+" and "+colValue2+"";try{DB.OpenConn();rs = DB.executeQuery(sql);if(st()){row = rs.getRow();}if(row == 0){sn = null;}else{sn = new String[row][9];rs.first();rs.previous();while(rs.next()){sn[i][0] = rs.getString("snum");sn[i][1] = rs.getString("sname");sn[i][2] = rs.getString("ssex");sn[i][3] = rs.getString("sethnic");sn[i][4] = rs.getString("shome");sn[i][5] = rs.getString("syear");sn[i][6] = rs.getString("smajor");sn[i][7] = rs.getString("scollege");sn[i][8] = rs.getString("sbirth");i++;}}}catch(Exception e){}finally {DB.closeStmt();DB.closeConn();}return sn;}public String[][] stuSearchBySimple(String course){this.sCourse = course;ResultSet rSet,rrSet;String LinCNUM = null;Database DB = new Database();String[][] sn = null;String[] snnStrings = null;int row = 0;int i = 0;int j = 0;String sql1 = "select course.* from course where ame='"+sCourse+"'";String sql3 = null;try{DB.OpenConn();rSet = DB.executeQuery(sql1);if(st()){row = rSet.getRow();}if(row == 0){LinCNUM = null;}else{rSet.first();rSet.previous();while(rSet.next()){LinCNUM = rSet.getString("cnum");}}System.out.println(LinCNUM);String sql2 = "select sc.snum from sc where um='"+LinCNUM+"' order by sc.grade desc";rrSet = DB.executeQuery(sql2);if(st()){row = rrSet.getRow();}if(row == 0){snnStrings = null;}else{i = 0;snnStrings = new String[row];sn = new String[row][9];System.out.println(""+row);rrSet.first();rrSet.previous();while(rrSet.next()){snnStrings[i] = rrSet.getString("snum");sql3 = "select * from student where snum='"+snnStrings[i]+"'";rs = DB.executeQuery(sql3);while(rs.next()){sn[j][0] = rs.getString("snum");sn[j][1] = rs.getString("sname");sn[j][2] = rs.getString("ssex");sn[j][3] = rs.getString("sethnic");sn[j][4] = rs.getString("shome");sn[j][5] = rs.getString("syear");sn[j][6] = rs.getString("smajor");sn[j][7] = rs.getString("scollege");sn[j][8] = rs.getString("sbirth");j++;}i++;}}}catch(Exception e){e.printStackTrace();}finally {DB.closeStmt();DB.closeConn();}System.out.println(sn[1][1]);return sn}public String[][] stuSearchBypoint(){String sCourse = "编译原理";ResultSet rSet,rrSet;String LinCNUM = null;Database DB = new Database();String[][] sn = null;String[] snnStrings = null;int row = 0;int i = 0;int j = 0;String sql1 = "select course.* from course where ame='"+sCourse+"'";String sql3 = null;try{DB.OpenConn();rSet = DB.executeQuery(sql1);if(st()){row = rSet.getRow();}if(row == 0){LinCNUM = null;}else{rSet.first();rSet.previous();while(rSet.next()){LinCNUM = rSet.getString("cnum");}}System.out.println(LinCNUM);String sql2 = "select sc.snum from sc where um='"+LinCNUM+"' order by sc.grade desc";rrSet = DB.executeQuery(sql2);if(st()){row = rrSet.getRow();}if(row == 0){snnStrings = null;}else{i = 0;snnStrings = new String[row];sn = new String[row][9];System.out.println(""+row);rrSet.first();rrSet.previous();while(rrSet.next()){snnStrings[i] = rrSet.getString("snum");sql3 = "select * from student where snum='"+snnStrings[i]+"'";rs = DB.executeQuery(sql3);while(rs.next()){sn[j][0] = rs.getString("snum");sn[j][1] = rs.getString("sname");sn[j][2] = rs.getString("ssex");sn[j][3] = rs.getString("se thnic");sn[j][4] = rs.getString("shome");sn[j][5] = rs.getString("syear");sn[j][6] = rs.getString("smajor");sn[j][7] = rs.getString("scollege");sn[j][8] = rs.getString("sbirth");j++;}i++;}}}catch(Exception e){e.printStackTrace();}finally {DB.closeStmt();DB.closeConn();}System.out.println(sn[1][1]);return sn;}/*** 获得新的学号*//*public int getStuId(){Database DB = new Database();sql = "select max(snum) from student";try{DB.OpenConn();rs = DB.executeQuery(sql);if(rs.next()){stuId = rs.getInt(1) + 1;}elsestuId = 1;}catch(Exception e){}finally {DB.closeStmt();DB.closeConn();}return stuId;}*//*** 获得student表中的所有学号snum*/public String[] getAllId(){String[] s = null;int row = 0;int i = 0;Database DB = new Database();sql = "select snum from student";try{DB.OpenConn();rs = DB.executeQuery(sql);if(st()){row = rs.getRow();}if(row == 0){s = null;}else{s = new String[row];rs.first();rs.previous();while(rs.next()){s[i] = rs.getString(1);i++;}}}catch(Exception e){e.printStackTrace();}finally {DB.closeStmt();DB.closeConn();}return s;}}//////////////////////////////////StuMain.java///////////////// ///////////import java.awt.*;import java.awt.event.*;import javax.swing.*;import .*;/*** 学生管理系统主界面*/public class StuMain extends JFrame implements ActionListener{ //建立菜单栏//建立“系统管理”菜单组JLabel J1 = new JLabel("学生管理");JLabel J2 = new JLabel("课程管理");JLabel J3 = new JLabel("成绩管理");JLabel J4 = new JLabel("信息查询");JLabel J5 = new JLabel("学生查询");JLabel J6 = new JLabel("课程查询");JLabel J7 = new JLabel("成绩查询");JButton buttonExit = new JButton("退出");JButton buttonAddS = new JButton("增加");JButton buttonEditS=new JButton("修改");JButton buttonDeleteS=new JButton("删除");JButton buttonChooseS = new JButton("选课");//建立“课程管理”菜单组JButton buttonAddC=new JButton("增加");JButton buttonEditC=new JButton("修改");JButton buttonDeleteC=new JButton("删除");JButton buttonAddG=new JButton("增加");JButton buttonEditG=new JButton("修改");//建立“信息查询”菜单组JButton buttonSearchStuBySnum=new JButton("按学号");JButton buttonSearchStuBySname=new JButton("按姓名");JButton buttonSearchStuBySsex=new JButton("按性别");JButton buttonSearchStuByScollege=new JButton("按学院");JButton buttonSearchStuBySmajor=new JButton("按专业");JButton buttonSearchStuByCname=new JButton("按课程名称");JButton buttonSearchStuByCteacher=new JButton("按授课教师");JButton buttonSearchMutGrd=new JButton("查询所有成绩");JButton buttonSearchGrdBySimple = new JButton("按单科");JButton buttonSearchGrdBypoint = new JButton("按绩点");public StuMain() {enableEvents(AWTEvent.WINDOW_EVENT_MASK);//添加框架的关闭事件处理this.pack();//设置框架的大小//设置标题this.setTitle("学生管理系统");this.getLayeredPane().add(bgLabel, new Integer(Integer.MIN_VALUE));bgLabel.setBounds(0,0,600,400);((JPanel)getContentPane()).setOpaque(false);try {this.setSize(600,400);this.setLocation(300,300);this.setResizable(false);this.setLayout(new GridBagLayout());this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container mPanel = this.getContentPane();GridBagConstraints c = new GridBagConstraints();c.insets = new Insets(10,0,0,10);c.gridx = 0;c.gridy = 0;c.gridwidth = 10;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(J1,c);c.gridx = 0;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(J2,c);c.gridx = 0;c.gridy = 2;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(J3,c);c.gridx = 0;c.gridy = 4;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(J4,c);c.gridx = 1;c.gridy = 0;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonAddS,c);c.gridx = 2;c.gridy = 0;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENT ER; mPanel.add(buttonEditS,c);c.gridx = 3;c.gridy = 0;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonDeleteS,c);c.gridx = 4;c.gridy = 0;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonChooseS,c);c.gridx = 1;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonAddC,c);c.gridx = 2;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonEditC,c);c.gridx = 3;c.gridy = 1;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonDeleteC,c);c.gridx = 1;c.gridy = 2;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonAddG,c);c.gridx = 2;c.gridy = 2;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonEditG,c);c.gridx = 1;c.gridy = 3;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(J5,c);c.gridx = 2;c.gridy = 3;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonSearchStuBySnum,c); c.gridx = 3;c.gridy = 3;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonSearchStuBySname,c);c.gridx = 4;c.gridy = 3;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonSearchStuBySsex,c); c.gridx = 5;c.gridy = 3;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonSearchStuBySmajor,c);c.gridx = 6;c.gridy = 3;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonSearchStuByScollege,c);c.gridx = 1;c.gridy = 4;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(J6,c);c.gridx = 2;c.gridy = 4;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonSearchStuByCname,c);c.gridx = 3;c.gridy = 4;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER;mPanel.add(buttonSearchStuByCteacher,c);c.gridx = 1;c.gridy = 5;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(J7,c);c.gridx = 2;c.gridy = 5;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonSearchMutGrd,c);c.gridx = 3;c.gridy = 5;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonSearchGrdBypoint,c);c.gridx = 4;c.gridy = 5;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonSearchGrdBySimple,c);c.gridx = 6;c.gridy = 6;c.gridwidth = 1;c.fill = GridBagConstraints.BOTH;c.anchor = GridBagConstraints.CENTER; mPanel.add(buttonExit,c);//设置文本区域可以换行buttonExit.addActionListener(this);buttonAddS.addActionListener(this); buttonEditS.addActionListener(this); buttonDeleteS.addActionListener(this); buttonChooseS.addActionListener(this); buttonAddC.addActionListener(this); buttonEditC.addActionListener(this); buttonDeleteC.addActionListener(this); buttonAddG.addActionListener(this); buttonEditG.addActionListener(this); buttonSearchStuBySnum.addActionListener(this);buttonSearchStuBySname.addActionListener(this);buttonSearchStuBySsex.addActionListener(this);buttonSearchStuByScollege.addActionListener(this);buttonSearchStuBySmajor.addActionListener(this);buttonSearchStuByCname.addActionListener(this);buttonSearchStuByCteacher.addActionListener(this);buttonSearchMutGrd.addActionListener(this);buttonSearchGrdBypoint.addActionListener(this);buttonSearchGrdBySimple.addActionListener(this);//关闭程序时的操作this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}catch(Exception e) {e.printStackTrace();}}public void actionPerformed(ActionEvent e) {Object obj = e.getSource();if (obj == buttonExit) { //退出System.exit(0);}else if (obj == buttonAddS) { //学生信息增加AddStuInfo asi = new AddStuInfo();asi.downInit();asi.pack();asi.setVisible(true);}else if (obj == buttonEditS) { //学生信息修改EditStuInfo esi = new EditStuInfo();esi.downInit();esi.pack();esi.setVisible(true);}else if (obj == buttonDeleteS) { //学生信息删出DelStuInfo dsi = new DelStuInfo();dsi.downInit();dsi.pack();dsi.setVisible(true);}else if (obj == buttonChooseS) { //学生选课SelectCourse sc = new SelectCourse();sc.downInit();sc.pack();sc.setVisible(true);}else if (obj == buttonAddC) { //课程增加AddCourseInfo aci = new AddCourseInfo();aci.downInit();aci.pack();aci.setVisible(true);}else if (obj == buttonEditC) { //课程修改EditCourseInfo eci = new EditCourseInfo();eci.downInit();eci.pack();eci.setVisible(true);}else if (obj == buttonDeleteC) { //课程删除DelCourseInfo dci = new DelCourseInfo();dci.downInit();dci.pack();dci.setVisible(true);}else if (obj == buttonAddG) { //成绩增加AddGradeInfo agi = new AddGradeInfo();agi.downInit();agi.pack();agi.setVisible(true);}else if (obj == buttonEditG) { //成绩修改EditGradeInfo egi = new EditGradeInfo();egi.downInit();egi.pack();egi.setVisible(true);}//查询功能的事件处理else if (obj == buttonSearchStuBySnum) { //按学号查询StuSearchSnum ssSnum = new StuSearchSnum();ssSnum.pack();ssSnum.setVisible(true);}。