java课程设计——学生信息管理系统.doc

上传人:豆**** 文档编号:33454875 上传时间:2022-08-11 格式:DOC 页数:47 大小:148.50KB
返回 下载 相关 举报
java课程设计——学生信息管理系统.doc_第1页
第1页 / 共47页
java课程设计——学生信息管理系统.doc_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《java课程设计——学生信息管理系统.doc》由会员分享,可在线阅读,更多相关《java课程设计——学生信息管理系统.doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流java课程设计学生信息管理系统【精品文档】第 47 页一引言1.1 项目的名称学生信息管理系统1.2 项目背景和目标 学生信息管理系主要对在校学生的个人基本信息以及成绩信息进行管理,对教师用户提供查询信息、增添信息、删除信息等操作功能;对学生用户提供成绩查询功能。我们的目标就是为该系统提供后台连接数据库程序设计以及前台用户界面设1.3 项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的学生信息管理系统二、 需求分析21

2、系统概述 此系统提供给教师用户和学生用户。教师登陆后可以对学生基本信息表和学生成绩表进行查看、增添新记录和删除记录等操作。学生登陆后能查询自己的成绩22系统运行环境 Java运行在eclipse软件上,数据库用mysql数据库23功能需求描述学生信息管理系统要面对教师和学生用户。对于教师,需要查询全部学生的基本信息和成绩信息,并且可以对其进行修改。对于学生,不需要查询自己的基本信息,只需要查询成绩。为了保护学生成绩隐私,每位学生登录系统后只能查询自己的成绩,而无法看到别人的成绩三、系统设计31开发与设计的总体思想 教师方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以

3、选择要操作的类别,即查询功能还是修改功能。在查询功能里面,可以选择是查询学生基本信息,还是查询学生成绩信息。在查询学生基本信息时,可以从依据不同字段,即学生信息表的不同属性进行查找。在查找学生成绩信息时,只能依据学生姓名和学号进行查找。在修改功能里面,包括对学生基本信息表和学生成绩表进行增加和删除记录 学生方面:学生通过自己的用户名和密码登录此系统后, 可以查询自己本学期的各科成绩信息32系统模块结构图33数据库结构设计为了支持此学生信息管理系统,创建数据库studentmanage。在这个数据库中包含四个表:student表,teacher表,studentlogin表和score表。截图如

4、下:在student(学生基本信息)表中,有五个属性列,分别为:num(学号),sname(学生姓名姓名),sex(性别),age(年龄),dept(系别)。其基本数据类型分别为:int,char,char,int,char。当查询学生基本信息时,从此表中获取数据。截图如下:在teacher(教师登陆)表中,有两个属性列,分别为:tname(教师姓名),password(登录密码)。其基本数据类型分别为:char,char。当教师用户登陆此系统时,从该表获取数据。截图如下:在studentlogin(学生登录)表中,有两个属性列,分别为:sname(学生姓名),password(登录密码)。其

5、基本数据类型分别为:char,char。当学生用户登陆此系统时,从该表获取数据。截图如下:在score(学生成绩)表中,有五个属性列,分别为:num(学号),sname(学生姓名),course(课程名称),score(考试成绩),credit(学分)。其基本数据类型分别为:int,char,char,int,int。当查询学生成绩信息时,从此表获取数据。截图如下:34模块设计总主界面登陆后,可以选择用户,是学生用户或者教师用户。如果选择学生用户,则进入学生登录界面,在这个界面上输入学生姓名和用户密码。输入后单击“成绩查询”按钮,若密码正确,这显示该学生本人本学期成绩,若密码不正确,这提示密码

6、错误。如果选择教师用户,则进入教师登陆界面,在这个界面上输入教师姓名和用户密码,输入后单击“登录”按钮,则进入教师主界面。在教师主界面可以选择进行查询操作还是修改操作。在查询操作中包含查询学生基本信息和查询学生成绩信息。若要查询学生基本信息,点击菜单项则进入学生基本信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“姓名”字段时,要键入某个学生姓名。输入后,单击“检索”按钮,则开始数据库查询。如果数据库检索到所需信息,这生成列表显示检索结构,如果没有所需信息,则列表中的内容为空。若要查询学生成绩信息,则点击学生成绩查询菜单项,进入成绩查询界面。

7、在此界面的文本框中输入要查询成绩的学生姓名,然后单击检索按钮。若数据库中有此学生的成绩信息,则生成列表显示成绩信息,若没有此记录,则列表内容为空。如果教师要进行修改操作,则在教师主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有四项修改操作:增加新生信息,删除毕业生信息(这两个是对学生基本信息表的操作),增加成绩信息,删除成绩信息(这两个是对学生成绩信息表的操作)。在增加信息操作中,按照标签提示一次输入要增添的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。在删除信息操作中,输入要删除信息的学生姓名,单击“删除”按钮,若删除成功,则提示成功,若

8、删除失败则提示失败。以上就是该学生信息管理系统的操作步骤。35系统流程描述四、系统实现本系统保存在studentmanage包里其中包含四个包:connection包,dao包,model包,ui包1.Connection包中的类:(1)DBconnection类:此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。若连接成功,提示:connection success,若连接失败,提示:connection failureDBconnection类源代码:package connection;import java.sql.Connection;import java.

9、sql.DriverManager;import java.sql.SQLException;public class DBConnection public static Connection con=null; public static Connection getConnection()try String dbDriver=com.mysql.jdbc.Driver;Class.forName(dbDriver);System.out.println(Driver Suceess); catch (ClassNotFoundException e) System.out.printl

10、n(Driver not found);e.printStackTrace();try con=DriverManager.getConnection(jdbc:mysql:/127.0.0.1:3306/studentman age,root,root);System.out.println(Connection Suceess); catch (SQLException e) System.out.println(Connetion failure);e.printStackTrace();return con; public static void closeConnection() i

11、f(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()方法中,有两个参数,分别传

12、给select语句中的sname(学生姓名)和password(登录密码),利用select语句在studentlogin表中检索学生登录信息。若存在此信息,返回true,否则返回falseaddStudent()方法中,有五个参数,分别传给insert语句中的num(学号),sname(学生姓名),age(年龄),sex(性别)和dept(系别),利用insert语句向student学生基本信息表中插入学生记录。若插入成功,返回true,否则返回falsedeleteStudent()方法中,有一个参数,传给delete语句中的sname(学生姓名),利用delete语句,把student表

13、中相关学生信息删除。若删除成功,返回true,否则返回falsequeryStuden()方法中,有两个参数,分别传给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.SQLExcept

14、ion;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

15、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 bo

16、olean 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.se

17、tString(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();Stateme

18、nt 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

19、(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.

20、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表中检索教师登陆信息。若存在此信息,返回true,否则返回falseTeacherDao类源代码:pa

21、ckage dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import connection.DBConnection;public class TeacherDao public boolean queryTeacher(String tname,String password) DBConnection db=new DBConnection();

22、Connection con=db.getConnection();boolean isfound=false;PreparedStatement pst;try pst = con.prepareStatement(select * from teacher where tname=? and password=?);pst.setString(1, tname); pst.setString(2,password);ResultSet rs=pst.executeQuery(); if(rs.next() isfound=true; catch (SQLException e) e.pri

23、ntStackTrace(); System.out.println(isfound); return isfound;public static void main(String args) (3)ScoreDao类:此类中有四个方法,queryScore,queryScore1,addScore,deleteScor作用分别是为教师用户提供查询学生成绩信息功能,为学生用户提供询本人成绩信息功能,添加成绩信息,删除成绩信息。queryScore()方法中,有一个参数,传给select语句中的sname(学生姓名),利用select语句,查询学生成绩信息表中的内容。若查询成功,则返回一个Arr

24、ayList类的对象lis(表格),否则,异常处理queryScore1()方法中,有一个参数,传给传给select语句中的sname(学生姓名),这个sname的学生用户登录时输入的姓名。即此类的作用是每个学生登陆只能查看本人成绩。若查询成功,则返回一个ArrayList类的对象lis(表格),否则,异常处理addScore()方法中,有五个参数,分别传给insert语句中的num(学号),sname(学生姓名),course(课程名称),score(成绩),credit(学分)。利用insert语句,将这些记录写入score表中。若插入成功返回true,否则返 回falsedeleteSc

25、ore()方法中,有一个参数,传给delete语句中的sname(学生姓名),利用delete语句,把score表中相关学生信息删除。若删除成功,返回 true,否则返回falseScoreDao类源代码: 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 ui.Stude

26、ntLoginUI;import model.Score;import model.Student;import connection.DBConnection;public class ScoreDao public ArrayList queryScore(String key) ArrayList lis = new ArrayList();Connection con = DBConnection.getConnection();Statement stm;try stm = con.createStatement();String sql = select * from score

27、where sname like % + keySystem.out.println(sql);ResultSet rs = stm.executeQuery(sql);while (rs.next() Score score = new Score(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getInt(5);lis.add(score); catch (SQLException e) e.printStackTrace();return lis;public ArrayList queryScore1(

28、String key) ArrayList lis = new ArrayList();Connection con = DBConnection.getConnection();Statement stm;try stm = con.createStatement();String sql = select * from score where sname like % + StudentLoginUI.st1System.out.println(sql);ResultSet rs = stm.executeQuery(sql);while (rs.next() Score score =

29、new Score(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getInt(5);lis.add(score); catch (SQLException e) e.printStackTrace();return lis;public boolean addScore(int num, String sname, String course, int score,int credit) Connection con = DBConnection.getConnection();PreparedStateme

30、nt pst;try pst = con.prepareStatement(insert into score values(?,?,?,?,?);pst.setInt(1, num);pst.setString(2, sname);pst.setString(3, course);pst.setInt(4, score);pst.setInt(5, credit);int count = pst.executeUpdate();/ 返回修改的记录数if (count = 1)return true;elsereturn false; catch (SQLException e) e.prin

31、tStackTrace();return false;public boolean deleteScore(String key) Connection con = DBConnection.getConnection();Statement stm;try stm = con.createStatement();String sql = delete from score where sname like % + key + % ;System.out.println(sql);int count = stm.executeUpdate(sql);if (count = 1)return t

32、rue;elsereturn false; catch (SQLException e) e.printStackTrace();return false;3.model包中的类: (1)Score类:此类中有五个成员变量,int num;String sname;String course;int score;int credit;十个成员方法,分别获取和设置这五个变量,即为score表中五个属性的记录值,均为getXXX()setXXX()方法,还有一个构造方法,用于调用其对象时对成员变量赋值Score类源代码:package model;public class Score int nu

33、m;String sname;String course;int score;int credit;public int getNum() return num;public void setNum(int num) this.num = num;public String getSname() return sname;public void setSname(String sname) this.sname = sname;public String getCourse() return course;public void setCourse(String course) this.co

34、urse = course;public int getScore() return score;public void setScore(int score) this.score = score;public int getCredit() return credit;public void setCredit(int credit) this.credit = credit;public Score(int num, String sname, String course, int score,int credit) super(); this.num = num; this.sname

35、 = sname; this.course = course; this.score = score; this.credit = credit;(2)Student类:此类中有五个成员变量,int num;String sname;String sex;int age;String dept; 十个成员方法,分别获取和设置这五个变量,即为student表中五个属性的记录值,均为getXXX()setXXX()方法,还有一个构造方法,用于调用其对象时对成员变量赋值Student类源代码:package model;public class Student int num;String snam

36、e;String sex;int age;String dept;public int getNum() return num;public void setNum(int num) this.num = num;public String getSname() return sname;public void setSname(String sname) this.sname = sname;public String getSex() return sex;public void setSex(String sex) this.sex = sex;public int getAge() r

37、eturn age;public void setAge(int age) this.age = age;public String getDept() return dept;public void setDept(String dept) this.dept = dept;public Student(int num, String sname, String sex, int age,String dept)super();this.num = num;this.sname = sname;this.sex = sex;this.age = age;this.dept = dept;4.

38、ui包中的类: (1) LoginUI类:此类为登陆界面,在这个界面上,设置有两个按钮,学生按钮,教师按钮。给这两个按钮注册事件addActionListener,分别在内部类TeacherLoginActionListene和StudentLoginActionListener中的默认方法actionPerformed()中创建TeacherLoginUI类和StudentLoginUI类的对象,即打开教师登陆界面和学生登录界面,并将原登陆界面关闭。 LoginUI类源代码: package ui;import java.awt.*;import java.awt.event.*;impor

39、t javax.swing.*;public class LoginUI extends JFrame JLabel l1;JButton bt1, bt2;Container cp;public LoginUI() l1 = new JLabel(请选择用户类型);bt1 = new JButton(教师);bt2 = new JButton(学生);JPanel p1 = new JPanel();p1.setLayout(null);l1.setBounds(150, 150, 120, 40);p1.add(l1);bt1.setBounds(120, 230, 80, 30);p1.

40、add(bt1);bt2.setBounds(220, 230, 80, 30);p1.add(bt2);bt1.addActionListener(new TeacherLoginActionListener();/注册事件bt2.addActionListener(new StudentLoginActionListener();/注册事件cp = getContentPane();this.setBounds(200, 200, p1.getHeight(), p1.getHeight();cp.add(p1);this.setTitle(用户登录界面);this.setSize(400

41、, 400);this.setVisible(true);this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0);class TeacherLoginActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e)new TeacherLoginUI();dispose(); class StudentLoginActionListener impleme

42、nts ActionListener public void actionPerformed(ActionEvent e) new StudentLoginUI(); dispose();public static void main(String args) new LoginUI();执行截图如下:(2)StudentLoginUI类:此类为学生登陆界面,在这个界面上有两个文本框,分别输入学生姓名和登录密码,还有两个按钮,登陆和退出。输入后,从两个文本框中获取用户输入的内容,点击“登陆”按钮时,调用StudentDao类中的studentLogin()方法验证是否存在该用户。若存在,则创建

43、StudentScoreUI类的对象,即打开学生成绩界面,显示此登陆学生的成绩信息,若不存在,则提示密码错误。 StudentLoginUI类源代码: package ui;import java.awt.*;import java.awt.event.*;import javax.swing.*;import dao.StudentDao;public class StudentLoginUI extends JFrameJLabel l1, l2;JTextField t1;JPasswordField t2;JButton bt1, bt2;Container cp;public sta

44、tic String st1;public String st2;public StudentLoginUI()l1 = new JLabel(学生姓名);l2 = new JLabel(密码);t1 = new JTextField(12);t2 = new JPasswordField(12);bt1 = new JButton(成绩查询);bt2 = new JButton(退出);JPanel p1 = new JPanel();p1.setLayout(null);l1.setBounds(150, 150, 80, 40);p1.add(l1);t1.setBounds(250, 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 家庭教育

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁