当前位置:文档之家› java课程设计_学生信息管理系统方案

java课程设计_学生信息管理系统方案

一.引言1.1项目的名称学生信息管理系统1.2项目背景和目标学生信息管理系主要对在校学生的个人基本信息以及成绩信息进行管理,对教师用户提供查询信息、增添信息、删除信息等操作功能;对学生用户提供成绩查询功能。

我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设1.3项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。

根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的学生信息管理系统二、需求分析2.1系统概述此系统提供给教师用户和学生用户。

教师登陆后可以对学生基本信息表和学生成绩表进行查看、增添新记录和删除记录等操作。

学生登陆后能查询自己的成绩2.2系统运行环境Java运行在eclipse软件上,数据库用mysql数据库2.3功能需求描述学生信息管理系统要面对教师和学生用户。

对于教师,需要查询全部学生的基本信息和成绩信息,并且可以对其进行修改。

对于学生,不需要查询自己的基本信息,只需要查询成绩。

为了保护学生成绩隐私,每位学生登录系统后只能查询自己的成绩,而无法看到别人的成绩三、系统设计3.1开发与设计的总体思想教师方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以选择要操作的类别,即查询功能还是修改功能。

在查询功能里面,可以选择是查询学生基本信息,还是查询学生成绩信息。

在查询学生基本信息时,可以从依据不同字段,即学生信息表的不同属性进行查找。

在查找学生成绩信息时,只能依据学生和学号进行查找。

在修改功能里面,包括对学生基本信息表和学生成绩表进行增加和删除记录学生方面:学生通过自己的用户名和密码登录此系统后,可以查询自己本学期的各科成绩信息3.2系统模块结构图3.3数据库结构设计为了支持此学生信息管理系统,创建数据库studentmanage。

在这个数据库中包含四个表:student表,teacher表,studentlogin表和score表。

截图如下:在student(学生基本信息)表中,有五个属性列,分别为:num(学号),sname(学生),sex(性别),age(年龄),dept(系别)。

其基本数据类型分别为:int,char,char,int,char。

当查询学生基本信息时,从此表中获取数据。

截图如下:在teacher(教师登陆)表中,有两个属性列,分别为:tname(教师),password(登录密码)。

其基本数据类型分别为:char,char。

当教师用户登陆此系统时,从该表获取数据。

截图如下:在studentlogin(学生登录)表中,有两个属性列,分别为:sname(学生),password(登录密码)。

其基本数据类型分别为:char,char。

当学生用户登陆此系统时,从该表获取数据。

截图如下:在score(学生成绩)表中,有五个属性列,分别为:num (学号),sname(学生),course(课程名称),score(考试成绩),credit(学分)。

其基本数据类型分别为:int,char,char,int,int。

当查询学生成绩信息时,从此表获取数据。

截图如下:3.4模块设计总主界面登陆后,可以选择用户,是学生用户或者教师用户。

如果选择学生用户,则进入学生登录界面,在这个界面上输入学生和用户密码。

输入后单击“成绩查询”按钮,若密码正确,这显示该学生本人本学期成绩,若密码不正确,这提示密码错误。

如果选择教师用户,则进入教师登陆界面,在这个界面上输入教师和用户密码,输入后单击“登录”按钮,则进入教师主界面。

在教师主界面可以选择进行查询操作还是修改操作。

在查询操作中包含查询学生基本信息和查询学生成绩信息。

若要查询学生基本信息,点击菜单项则进入学生基本信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索容框中输入检索的具体信息,例如,检索“”字段时,要键入某个学生。

输入后,单击“检索”按钮,则开始数据库查询。

如果数据库检索到所需信息,这生成列表显示检索结构,如果没有所需信息,则列表中的容为空。

若要查询学生成绩信息,则点击学生成绩查询菜单项,进入成绩查询界面。

在此界面的文本框中输入要查询成绩的学生,然后单击检索按钮。

若数据库中有此学生的成绩信息,则生成列表显示成绩信息,若没有此记录,则列表容为空。

如果教师要进行修改操作,则在教师主界面上选择修改菜单项,在此项中,选择要修改的具体容,总共有四项修改操作:增加新生信息,删除毕业生信息(这两个是对学生基本信息表的操作),增加成绩信息,删除成绩信息(这两个是对学生成绩信息表的操作)。

在增加信息操作中,按照标签提示一次输入要增添的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。

在删除信息操作中,输入要删除信息的学生,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。

以上就是该学生信息管理系统的操作步骤。

3.5系统流程描述四、系统实现本系统保存在studentmanage包里其中包含四个包:connection包,dao包,model包,ui包1.Connection包中的类:(1)DBconnection类:此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。

若连接成功,提示:connection success,若连接失败,提示:connection failureDBconnection类源代码:package connection;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBConnection {public static Connection con=null;public static Connection getConnection(){try {String dbDriver=".mysql.jdbc.Driver";Class.forName(dbDriver);System.out.println("Driver Suceess");} catch (ClassNotFoundException e) {System.out.println("Driver not found");e.printStackTrace();}try {con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/st udentman age","root","root");System.out.println("Connection Suceess");} catch (SQLException e) {System.out.println("Connetion failure");e.printStackTrace();}return con;}public static void closeConnection(){if(con!=null)try {con.close();System.out.println("database close success");} catch (SQLException e) {System.out.println("close failure");e.printStackTrace();}}}2.Dao包中的类:(1)StudentDao类:此类中有四个方法,studentLogin,addStudent,deleteStudent, queryStuden,作用分别是控制学生登陆,增加学生基本信息,查询学生基本信息,删除学生基本信息。

studentLogin()方法中,有两个参数,分别传给select语句中的sname(学生)和password(登录密码),利用select 语句在studentlogin表中检索学生登录信息。

若存在此信息,返回true,否则返回falseaddStudent()方法中,有五个参数,分别传给insert语句中的num(学号),sname(学生),age(年龄),sex(性别)和dept(系别),利用insert语句向student学生基本信息表中插入学生记录。

若插入成功,返回true,否则返回false deleteStudent()方法中,有一个参数,传给delete语句中的sname(学生),利用delete语句,把student表中相关学生信息删除。

若删除成功,返回true,否则返回false queryStuden()方法中,有两个参数,分别传给select语句中的field(查找方式)和key(查找容),利用select语句,从student表中检索学生基本信息。

若存在此信息,则返回一个ArrayList类的对象lis(表格),否则,异常处理StudentDao类源代码:package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import model.Student;import connection.DBConnection;public class StudentDao {public boolean studentLogin(String sname,String password) { DBConnection db=new DBConnection();Connection con=db.getConnection();boolean isfound=false;PreparedStatement pst;try {pst = con.prepareStatement("select * from studentlogin where sname=? and password=?");pst.setString(1, sname);pst.setString(2,password);ResultSet rs=pst.executeQuery();if(rs.next())isfound=true;} catch (SQLException e) {e.printStackTrace();}System.out.println(isfound);return isfound;}public boolean addStudent(int num, String sname, String sex, int age,String dept) {Connection con = DBConnection.getConnection();PreparedStatement pst;try {pst = con.prepareStatement("insert into student values(?,?,?,?,?)");pst.setInt(1, num);pst.setString(2, sname);pst.setString(3, sex);pst.setInt(4, age);pst.setString(5, dept);int count = pst.executeUpdate();// 返回修改的记录数if (count == 1)return true;elsereturn false;} catch (SQLException e) {e.printStackTrace();}return false;}public ArrayList queryStudent(String field, String key) {ArrayList lis = new ArrayList();Connection con = DBConnection.getConnection();Statement stm;try {stm = con.createStatement();String sql = "select * from student where " + field + " like '%"+ key + "%' ";System.out.println(sql);ResultSet rs = stm.executeQuery(sql);while (rs.next()) {Student student = new Student(rs.getInt(1),rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5));lis.add(student);}} catch (SQLException e) {e.printStackTrace();}return lis;}public boolean deleteStudent(String key) {Connection con = DBConnection.getConnection();Statement stm;try {stm = con.createStatement();String sql = "delete from student where sname like '%"+ key + "%' ";System.out.println(sql);int count = stm.executeUpdate(sql);if (count == 1)return true;elsereturn false;} catch (SQLException e) {e.printStackTrace();}return false;}}(2)TeacherDao类:此类中有一个方法:queryTeacher,作用是控制教师登陆queryTeacher()方法中,有两个参数,分别传给select语句中的tname(教师)和password(登陆密码),利用select 语句在teacher表中检索教师登陆信息。

相关主题