JAVA课程设计-基于mysql的学生信息管理系统.pdf

上传人:w*** 文档编号:80802388 上传时间:2023-03-23 格式:PDF 页数:40 大小:1.57MB
返回 下载 相关 举报
JAVA课程设计-基于mysql的学生信息管理系统.pdf_第1页
第1页 / 共40页
JAVA课程设计-基于mysql的学生信息管理系统.pdf_第2页
第2页 / 共40页
点击查看更多>>
资源描述

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

1、 word 文档 可自由复制编辑 目 录 概述.3 一、课题介绍.3 二、目的和要求.3 三、任务计划.3 需求分析.5 一、学生管理系统的发展现状.5 二、系统功能分析.5 三、系统结构框图.5 数据库设计.7 一、创建数据表的结构.7 二、各表功能及其关系.7 系统模块功能的实现与界面设计.8 一、系统主要模块.8 二、欢迎界面.9 三、主菜单界面.错误!未定义书签。四、子菜单.10 五、学生信息录入.11 六、学生信息查找.12 七、学生信息删除.13 八、学生信息修改.14 课程设计心得.15 一、程序结构设计培养.15 二、书写习惯养成.15 三、注意程序简洁.15 总结.16 wo

2、rd 文档 可自由复制编辑 参考文献.17 附录:项目源代码.18 一、数据库连接(DBCONNECTION.JAVA).18 二、学生信息数据库管理(STUDENT_DAO.JAVA).24 三、欢迎界面(WELCOME.JAVA).23 四、主菜单界面(MENU.JAVA).24 五、子菜单界面(SON_MENU.JAVA).27 六、添加功能(ADD_MENU.JAVA).31 七、查找功能(FIND_MENU.JAVA).34 八、删除功能(DELET_MENU.JAVA).36 九、修改功能(CHANGE_MENU.JAVA).错误!未定义书签。word 文档 可自由复制编辑 概述

3、一、课题介绍 本次课程设计要求实现一个面向学生信息的管理系统。学生信息系统是一个非常通用的管理系统。很多大、中、小学校都需要拥有自己的学生档案管理系统,以便对本校学生的基本信息和学习情况进行管理,另一方面,较完整的学校信息管理系统同样也需要有学生信息管理系统的支持。由通用的学生相关数据分析可知,系统包括院系管理、学生基本信息管理、课程管理、学生从成绩管理等主要功能。该系统要求使用 JAVA 和 MySQL 作为开发工具和数据库管理系统,因此,系统设计涉及系统功能设计、数据库设计和系统界面等几个方面内容。二、目的和要求 1.了解 JAVA 语言的特点及使用的范围,掌握开发软件平台的搭建。2.要求

4、使用 JAVA 和 MySQL开发一个学生信息管理系统,系统主要功能如下:1)院系信息管理 院系系统信息的录入,包括院系编号、院系名称等信息;院系信息的修改、删除、查询。2)学生基本信息管理 学生基本信息的录入,包括学号、姓名、性别、出生日期、所在院系、班级等信息;学生基本信息的修改、删除、查询。3)课程设置管理 课程信息的录入,包括课程编号、课程名称、学分、课程内容等信息;课程信息的修改、删除、查询。4)学生成绩管理 学生成绩的录入,包括课程编号、课程名称、学分、课程内容等信息;学生信息的修改、删除、查询。三、任务计划 考虑到本次课程设计是独立完成,所以,不需要进行细致的分工,只要对框架和时

5、 word 文档 可自由复制编辑 间进行一定的规划就行。时间 计划 执行结果 1 12 月 13 日 查阅相关资料 准备好基础知识 查阅了 JAVA Swing,MySQL 等方面的相关资料。2 12 月 14 日 进行需求分析 得到需求分析总结。3 12 月 14 日21 日 正式设计 完成代码设计及调试 5 12 月 22 日 完成课程设计报告 整理文件,并完成书面报告 word 文档 可自由复制编辑 需求分析 一、学生管理系统的发展现状 经过了一段时间的发展,当今,各大高校普遍都有了相对完善的学生管理系统,但在部分中小学中,这种高效的管理手段,仍未能全面普及。目前已有的学生管理系统存在界

6、面和操作相对繁琐,实现成本较高等缺点,仍需改进。二、系统功能分析 由通用的学生相关数据分析可知,系统包括院系管理、学生基本信息管理、课程管理、学生从成绩管理等主要功能1。实现以上各模块的功能,需要以下子功能:1 数据库连接的建立与断开 2 数据库的数据操作,包括插入、查询、删除、修改 3.系统操作界面与数据库操作相关联 三、系统结构框图 从系统功能表述可以看出,该系统可以实现几个功能,根据这些功能设计出系统的功能模块如 图表 1 所示:1 因各模块基本功能相近,故本文仅以学生基本信息管理功能为例 word 文档 可自由复制编辑 学生信息管理系统 数据库连接 学生基本信息管理 课程设置管理 学生

7、成绩管理 添加 查看 查询 修改 删除 院系管理 图表 1 学生信息管理系统功能模块图 word 文档 可自由复制编辑 数据库设计 一、创建数据表的结构(以学生基本信息管理系统为例)1.主要数据项 学号、姓名、性别、出生年月、所在院系、所在班级 2.数据类型及要求 为操作方便,均定义为字符串。其中学号不得重复。3.MySQL 建表语句 二、各表功能及其关系 1.本系统各表分别存储相应数据。2.涉及的数据表之间相对独立,但仍有少量关联。1)学生成绩表 包含对 学生基本信息表 和 课程设置表 的映射 2)学生基本信息表 包含对 院系信息表 的映射 create table student(id I

8、NT(11)PRIMARY KEY NOT NULL UNIQUE,name VARCHAR(20),sex CHAR(1),birthday VARCHAR(20),depart VARCHAR(20),class VARCHAR(20);word 文档 可自由复制编辑 系统模块功能的实现与界面设计 一、系统主要模块 本次课程设计的主要目的,是通过实践,让我对所学到的知识进行考验和巩固。经过一点时间的了解。设计出了系统的总体框架,参看图表 1。由于各模块的功能及原理基本相同,只是涉及的数据类型有所不同,所以本次只对学生基本信息管理的功能进行了较为全面的设计。由于时间关系,其余功能没有进行具体

9、设计。(具体的在以下说明中会提及)系统界面设计如下:模块名称 相关的类 登录界面 welcome.class 菜单界面 Menu.class 数据库管理模块:模块名称 相关的类 数据库链接 DbConnection.class 学生信息数据库管理 StudentDao.class 院系信息数据库管理 DepartDao.class 课程信息数据库管理 CourseDao.class 成绩信息数据库管理 ScoreDao.class 模块功能界面设计如下:模块名称 相关的类 子菜单 Son_Menu.class 添加功能 Add_Menu.class 查询功能 Find_Menu.class 删

10、除功能 Delet_Menu.class 修改功能 Change_Menu.class word 文档 可自由复制编辑 二、欢迎界面 1.实际运行效果(图表 2)2.实现方法 1)继承了 JPanel,并在构造函数中建立 JFrame 做外框;2)用 JLabel 显示欢迎信息内容;3)确定按钮在监听到事件后,new 出一个 Menu 类;三、主菜单界面 1.实际运行效果(图表 3)2.实现方法 1)继承 JFrame 类,在内部建立的 JPanel插入 JButton;2)定义相应按钮的响 应事件,调用子菜单的不同建 立 函 数(如new Son_menu().studentmenu();)

11、;图表 2 欢迎界面 图表 3 主菜单界面 word 文档 可自由复制编辑 四、子菜单 1.实际运行效果(错误!未找到引用源。)2.实现方法 1)建立 JFrame,JTable,JButton 等工具;2)建立数据库链接;3)将数据库里的数据逐个读入到 JTable 类;4)对 JButton 加入 ActionListener,并关联相应的功能菜单,如:图表 4 子菜单 word 文档 可自由复制编辑 五、学生信息录入 1.实际运行效果(图表 5)实现方法 1)由输入的学生信息构造一个 Student 类;2)利用 SQL 语句,将 Student 类插入到数据库;图表 4 录入学生信息

12、word 文档 可自由复制编辑 六、学生信息查找 1.实际运行效果(图标 6)实现方法 1)由输入的学号,利用 SQL 语句找到相关数据,返回一个 Student 类;2)有则将 student 的相关信息显示到 JTextArea 上,没有则显示“学生信息未找到”;图表 6 查找学生信息 word 文档 可自由复制编辑 七、学生信息删除 1.实际运行效果(图表 7)图表 7 学生信息删除 word 文档 可自由复制编辑 2.实现方法 1)应用查找功能相似的原理先搜索到要删除的信息;2)利用 SQL 语句将找到的信息删除,并显示“学生信息以删除”。八、学生信息修改 1.实际运行效果 图表 8

13、学生信息修改 word 文档 可自由复制编辑 2.实现方法 1)应用查找功能相似的原理先搜索到要修改的信息;2)应用删除功能相似的原理删除要修改的信息;3)调用录入类,录入要修改的新信息;word 文档 可自由复制编辑 课程设计心得 一、程序结构设计思路培养 为了简化程序,我并没有为每个窗口都建一个类,而是把类似的窗口例如student_add,depart_add 等建一个类 Add_Menu,调用不同的函数建立不同窗口,如:student_add(),depart_add();二、书写习惯的养成 好的书写习惯是一个优秀程序员的必备品质。在写代码的时候要随时注意书写的格式。如:1.赋值语句的

14、“=”的左右应该用空格隔开;a=1;改为 a =1;这样更为清晰;2.大括号一定要对齐;class public void.三、注意程序简洁 在逐渐适应面向对象编程以后。依然应道保持过去在编程中的一些好习惯。使用Vector 等,也需要留意效率。不能只顾用法方便。word 文档 可自由复制编辑 总结 系统设计过程中,主要涉及了包括 JAVA 基本语法、AWT,Java Swing,MySQL等方面的相关知识。设计中遇到不少问题,到图书馆查阅了不少资料,向王宋君老师请教过不少问题,老师都一一细心解答,非常感谢。由于时间仓促,原本设想的功能还没有一一实现,待进一步完善。参考文献 1.Thinkin

15、g in Java(Java 编程思想)第四版,机械工业出版社,【美】Bruce Eckel著,陈昊鹏译;2.精通 Java Swing 程序设计中国铁道出版社,林智扬、范明翔、陈锦辉 编著;3.深入浅出 Java Swing 程序设计中国铁道出版社,林智扬、范明翔、陈锦辉 编著;4.Java GUI 程序设计清华大学出版社,肖刚 等编著;5.Java 信息系统设计与开发实例机械工业出版社,黄明、梁旭、曹利超 编著;6.Java 范例大全机械工业出版社,尹继平、张帆 编著;word 文档 可自由复制编辑 附录:项目源代码 一、数据库连接(DbConnection.java)package da

16、o;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DbConnection public static Connection getConnection()Connection con=null;String url=jdbc:mysql:/localhost:3306/java;String userName=root;String password=l057788y;try Class.forName(com.mysql.jdbc.Driv

17、er);con=DriverManager.getConnection(url,userName,password);System.out.println(数据库连接成功);catch(ClassNotFoundException e)/TODO Auto-generated catch block e.printStackTrace();return null;catch(SQLException e)/TODO Auto-generated catch block e.printStackTrace();return con;public static void closeConnecti

18、on(Connection con)if(con!=null)try con.close();con=null;catch(SQLException e)/TODO Auto-generated catch block e.printStackTrace();word 文档 可自由复制编辑 public static void main(String args)getConnection();二、学生信息数据库管理(Student_Dao.java)package dao;import java.sql.Connection;import java.sql.PreparedStatement;

19、import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import model.Depart;import model.Student;public class StudentDao public boolean addInfo(Student student)boolean flag;Connection con=DbConnection.getConnection();PreparedStatement ps;String sql

20、=;/ResultSet rs;try word 文档 可自由复制编辑 sql=insert into student values(?,?,?,?,?,?);/用问号代替 ps=con.prepareStatement(sql);ps.setInt(1,student.getId();ps.setString(2,student.getName();ps.setString(3,student.getSex();ps.setString(4,student.getBorn_date();ps.setString(5,student.getDepart_id();ps.setString(6,

21、student.getClass_name();ps.execute();System.out.println(添加了一条记录);flag=true;catch(SQLException e)/TODO Auto-generated catch block e.printStackTrace();flag=false;finally DbConnection.closeConnection(con);return flag;public ArrayList findAll()ArrayList students=new ArrayList();Connection con=DbConnecti

22、on.getConnection();Statement sta;ResultSet rs;word 文档 可自由复制编辑 try sta=con.createStatement();rs=sta.executeQuery(SELECT*FROM student);/从表 depart 中查询所有数据 while(rs.next()Student student=new Student();student.setId(rs.getInt(1);student.setName(rs.getString(2);student.setSex(rs.getString(3);student.setBo

23、rn_date(rs.getString(4);student.setDepart_id(rs.getString(5);student.setClass_name(rs.getString(6);System.out.println(student.getName();students.add(student);rs.close();sta.close();catch(SQLException e)/TODO Auto-generated catch block e.printStackTrace();finally DbConnection.closeConnection(con);ret

24、urn students;public Student findOne(int id)Student student=new Student();Connection con=DbConnection.getConnection();word 文档 可自由复制编辑 PreparedStatement ps;String sql=;ResultSet rs;try sql=SELECT*FROM student where id=?;ps=con.prepareStatement(sql);ps.setInt(1,id);rs=ps.executeQuery();/从表 depart 中查询所有

25、数据 if(rs.next()student.setId(rs.getInt(id);/注意数据类型要对应 student.setName(rs.getString(Name);student.setSex(rs.getString(Sex);student.setBorn_date(rs.getString(birthday);student.setDepart_id(rs.getString(Depart);student.setClass_name(rs.getString(Class);System.out.println(id:+student.getId()+name:+stude

26、nt.getName();else System.out.println(没有数据);rs.close();ps.close();catch(SQLException e)/TODO Auto-generated catch block e.printStackTrace();finally DbConnection.closeConnection(con);return student;word 文档 可自由复制编辑 public boolean deleteInfo(Student student)boolean flag;Connection con=DbConnection.getCo

27、nnection();PreparedStatement ps;String sql=;try sql=delete from student where id=?;/用问号代替 ps=con.prepareStatement(sql);ps.setInt(1,student.getId();ps.execute();System.out.println(成功删除了一条记录);flag=true;catch(SQLException e)/TODO Auto-generated catch block e.printStackTrace();flag=false;finally DbConne

28、ction.closeConnection(con);return flag;word 文档 可自由复制编辑 三、欢迎界面(Welcome.java)package menu;import java.awt.BorderLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEve

29、nt;import javax.swing.*;public class Welcome JFrame w=new JFrame(managementsystem);JPanel p1=new JPanel();JPanel p2=new JPanel();JLabel l=new JLabel(欢迎进入学生信息管理系统!);JButton b=new JButton(确定);Welcome()w.addWindowListener(new Wind();b.addMouseListener(new Monitor2();Font font =new Font(欢迎进入学生信息管理系统!,Fo

30、nt.PLAIN,40);l.setFont(font);w.add(p1,BorderLayout.CENTER);w.add(p2,BorderLayout.SOUTH);p1.add(l);l.setBounds(p1.WIDTH/2-100,p1.HEIGHT/2-10,200,20);p2.add(b);b.setBounds(p2.WIDTH/2-10,p2.HEIGHT/2-6,20,12);w.setBounds(400,200,600,200);w.setVisible(true);private class Monitor2 extends MouseAdapter pub

31、lic void mousePressed(MouseEvent e)new Menu();w.setVisible(false);public static void main(String args)new Welcome();word 文档 可自由复制编辑 private class Wind extends WindowAdapter public void windowClosing(WindowEvent e)w.setVisible(false);System.exit(0);四、主菜单界面(Menu.java)package menu;import java.awt.*;imp

32、ort java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.*;public class Menu JFrame f=new JFrame(菜单);JPanel p=new JPanel();Menu()JButton b_depart=new JButton(院系信息);JButton b_student=new JButton(学生信息);

33、JButton b_course=new JButton(课程信息);JButton b_score=new JButton(成绩信息);JButton ex=new JButton(退出);b_score.addActionListener(new Monitor2();ex.addActionListener(new Monitor2();b_depart.addActionListener(new Monitor2();b_student.addActionListener(new Monitor2();b_course.addActionListener(new Monitor2();

34、word 文档 可自由复制编辑 f.addWindowListener(new Wind();f.add(p);p.setLayout(new GridLayout(1,2);JLabel l=new JLabel();JPanel p2=new JPanel();p.add(l);p.add(p2);p2.setLayout(new GridLayout(5,1);p2.add(b_depart);p2.add(b_student);p2.add(b_course);p2.add(b_score);p2.add(ex);f.setBounds(400,200,400,400);f.setVi

35、sible(true);public static void main(String args)new Menu();private class Wind extends WindowAdapter public void windowClosing(WindowEvent e)f.setVisible(false);System.exit(0);private class Monitor2 implements ActionListener public void actionPerformed(ActionEvent e)if(e.getActionCommand().equals(退出)

36、new Menu();word 文档 可自由复制编辑 System.exit(0);if(e.getActionCommand().equals(学生信息)new Son_menu().studentmenu();f.setVisible(false);if(e.getActionCommand().equals(院系信息)new Son_menu().departmenu();f.setVisible(false);if(e.getActionCommand().equals(课程信息)new Son_menu().coursemenu();f.setVisible(false);if(e.

37、getActionCommand().equals(成绩信息)new Son_menu().scoremenu();f.setVisible(false);word 文档 可自由复制编辑 五、子菜单界面(Son_Menu.java)package menu;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.

38、Vector;import javax.swing.*;import javax.swing.table.DefaultTableModel;import model.Student;import dao.StudentDao;public class Son_menu JFrame f;JPanel p1=new JPanel();JPanel p2=new JPanel();JButton b_add=new JButton(录入);JButton b_delet=new JButton(删除);JButton b_change=new JButton(修改);JButton b_find

39、=new JButton(查找);JButton b_return=new JButton(返回);JTable t;DefaultTableModel tableModel=null;public static void main(String args)new Son_menu().studentmenu();/学生信息菜单 public void studentmenu()f=new JFrame(学生信息);ArrayList scan=new ArrayList();Vector columnNames=new Vector();columnNames.add(学号);columnN

40、ames.add(姓名);columnNames.add(性别);columnNames.add(出生年月);columnNames.add(学院代码);columnNames.add(所在班级);word 文档 可自由复制编辑 tableModel=new DefaultTableModel(columnNames,0);tableModel.addRow(columnNames);StudentDao ddao=new StudentDao();scan=ddao.findAll();for(int i=0;iscan.size();i+)Vector v=new Vector();Stu

41、dent student=(Student)scan.get(i);v.add(student.getId();v.add(student.getName();v.add(student.getSex();v.add(student.getBorn_date();v.add(student.getDepart_id();v.add(student.getClass_name();tableModel.addRow(v);t=new JTable(tableModel);t.setVisible(true);f.setLayout(new BorderLayout();f.add(p1,Bord

42、erLayout.NORTH);f.add(p2,BorderLayout.SOUTH);f.setBounds(400,200,600,400);p1.add(t);b_add.setActionCommand(学生录入);b_delet.setActionCommand(学生删除);b_change.setActionCommand(学生修改);b_find.setActionCommand(学生查找);b_add.addActionListener(new Monitor2();b_delet.addActionListener(new Monitor2();b_change.addAc

43、tionListener(new Monitor2();b_find.addActionListener(new Monitor2();b_return.addActionListener(new Monitor2();p2.add(b_add);p2.add(b_delet);p2.add(b_change);p2.add(b_find);p2.add(b_return);f.setVisible(true);/院系信息菜单 public void departmenu()f=new JFrame(院系信息);word 文档 可自由复制编辑 t=new JTable(100,2);t.set

44、Visible(true);f.setLayout(new BorderLayout();f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.SOUTH);f.setBounds(400,200,400,400);p1.add(t);b_add.setActionCommand(院系录入);b_delet.setActionCommand(院系删除);b_change.setActionCommand(院系修改);b_find.setActionCommand(院系查找);b_add.addActionListener(new Monitor2

45、();b_delet.addActionListener(new Monitor2();b_change.addActionListener(new Monitor2();b_find.addActionListener(new Monitor2();b_return.addActionListener(new Monitor2();p2.add(b_add);p2.add(b_delet);p2.add(b_change);p2.add(b_find);p2.add(b_return);f.setVisible(true);/课程信息菜单 public void coursemenu()f=

46、new JFrame(课程信息);t=new JTable(100,2);t.setVisible(true);f.setLayout(new BorderLayout();f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.SOUTH);f.setBounds(400,200,400,400);p1.add(t);b_add.setActionCommand(课程录入);b_delet.setActionCommand(课程删除);b_change.setActionCommand(课程修改);b_find.setActionCommand(

47、课程查找);b_add.addActionListener(new Monitor2();b_delet.addActionListener(new Monitor2();b_change.addActionListener(new Monitor2();b_find.addActionListener(new Monitor2();word 文档 可自由复制编辑 b_return.addActionListener(new Monitor2();p2.add(b_add);p2.add(b_delet);p2.add(b_change);p2.add(b_find);p2.add(b_ret

48、urn);f.setVisible(true);/成绩信息菜单 public void scoremenu()f=new JFrame(成绩信息);t=new JTable(100,2);t.setVisible(true);f.setLayout(new BorderLayout();f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.SOUTH);f.setBounds(400,200,400,400);p1.add(t);b_add.setActionCommand(成绩录入);b_delet.setActionCommand(成绩删除)

49、;b_change.setActionCommand(成绩修改);b_find.setActionCommand(成绩查找);b_add.addActionListener(new Monitor2();b_delet.addActionListener(new Monitor2();b_change.addActionListener(new Monitor2();b_find.addActionListener(new Monitor2();b_return.addActionListener(new Monitor2();p2.add(b_add);p2.add(b_delet);p2.

50、add(b_change);p2.add(b_find);p2.add(b_return);f.setVisible(true);private class Monitor2 implements ActionListener public void actionPerformed(ActionEvent e)if(e.getActionCommand().equals(返回)f.setVisible(false);new Menu();word 文档 可自由复制编辑 if(e.getActionCommand().equals(学生录入)f.setVisible(false);new Add

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

当前位置:首页 > 应用文书 > 解决方案

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

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