




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录1、 背景和目的.22、 学生管理系统的发展现状.33、 系统分析.3(1)系统功能分析.3(2)系统结构框图.4五、数据库设计(1)创建数据表的结构.5(2)各表功能及其关系.5六、系统模块功能的实现与界面设计(1)系统主要模块.6(2)欢迎界面.7(3)主菜单界面.7(4)子菜单.8(5)学生信息录入.8(6)学生信息查找.9(7)学生信息删除.(8)学生信息修改.七、课程设计心得体会八、总结九、项目源代码背景和目的(1) 背景:本次课程设计要求实现一个面向学生信息的管理系统。学生信系统是一个非常通用的管理系统。很多大、中、小学校都需要拥自己的学生档案管理系统,以便对本校学生的基本信息和学习情况进行管理,另一方面,较完整的学校信息管理系统同样也需要有学生信息管理系统的支持。由通用的学生相关数据分析可知,系统包括院系管理、学生基本信息管理、课程管理、学生从成绩管理等主要功能。该系统要求使用JAVA和MySQL作为开发工具和数据库管理系统,因此,系统设计涉及系统功能设计、数据库设计和系统界面等几个方面内容。(2) 目的:了解JAVA语言的特点及使用的范围,掌握开发软件平台的搭建;要求使用JAVA和MySQL开发一个学生信息管理系统,系统主要功能如下:a)院系信息管理院系系统信息的录入,包括院系编号、院系名称等信息;院系信息的修改、删除、查询。b)学生基本信息管理学生基本信息的录入,包括学号、姓名、性别、出生日期、所在院系、班级等信息;学生基本信息的修改、删除、查询。c)课程设置管理课程信息的录入,包括课程编号、课程名称、学分、课程内容等信息;课程信息的修改、删除、查询。d)学生成绩管理学生成绩的录入,包括课程编号、课程名称、学分、课程内容等信息;学生信息的修改、删除、查询。学生管理系统的发展现状经过了一段时间的发展,当今,各大高校普遍都有了相对完善的学生管理系统,但在部分中小学中,这种高效的管理手段,仍未能全面普及。目前已有的学生管理系统存在界面和操作相对繁琐,实现成本较高等缺点,仍需改进。系统分析(1) 系统功能分析由通用的学生相关数据分析可知,系统包括院系管理、学生基本信息管理、课程管理、学生从成绩管理等主要功能,实现以上各模块的功能,需要以下子功能: a.数据库连接的建立与断开b.数据库的数据操作,包括插入、查询、删除、修改c.系统操作界面与数据库操作相关联(2)系统结构框图从系统功能表述可以看出,该系统可以实现几个功能,根据这些功能设计出系统的功能模块如图表1所示:学生信息管理系统数据库连接院系管理学生基本信息管理添加删除修改查询学生成绩管理课程设置管理 图表1 学生信息管理系统功能模块图数据库设计一、创建数据表的结构(以学生基本信息管理系统为例)1.主要数据项学号、姓名、性别、出生年月、所在院系、所在班级2.数据类型及要求为操作方便,均定义为字符串。其中学号不得重复。3. MySQL建表语句createtablestudent(idINT(11)PRIMARYKEYNOTNULLUNIQUE,nameVARCHAR(20),sexCHAR(1),birthdayVARCHAR(20),departVARCHAR(20),classVARCHAR(20);2、 各表功能及其关系1.本系统各表分别存储相应数据。2.涉及的数据表之间相对独立,但仍有少量关联。 1)学生成绩表包含对学生基本信息表和课程设置表的映射;2)学生基本信息表包含对院系信息表的映射。系统模块功能的实现与界面设计一、系统主要模块本次课程设计的主要目的,是通过实践,让我对所学到的知识进行考验和巩固。经过一点时间的了解。设计出了系统的总体框架,参看图表1。 由于各模块的功能及原理基本相同,只是涉及的数据类型有所不同,所以本次只对学生基本信息管理的功能进行了较为全面的设计。由于时间关系,其余功能没有进行具体设计。(具体的在以下说明中会提及)。模块名称 相关的类登录界面 welcome.class菜单界面 Menu.class系统界面设计如下:模块名称 相关的类登录界面 welcome.class菜单界面 Menu.class数据库管理模块:模块名称 相关的类数据库链接 DbConnection.class学生信息数据库管理 StudentDao.class院系信息数据库管理 DepartDao.class课程信息数据库管理 CourseDao.class成绩信息数据库管理 ScoreDao.class模块名称 相关的类数据库链接 DbConnection.class学生信息数据库管理 StudentDao.class模块名称 相关的类子菜单 Son_Menu.class添加功能 Add_Menu.class查询功能 Find_Menu.class删除功能 Delet_Menu.class修改功能 Change_Menu.class模块功能界面设计如下:模块名称 相关的类子菜单 Son_Menu.class添加功能 Add_Menu.class查询功能 Find_Menu.class删除功能 Delet_Menu.class修改功能 Change_Menu.class二、欢迎界面1.实际运行效果(图表2)图表2 欢迎界面2.实现方法1)继承了JPanel,并在构造函数中建立JFrame做外框;2)用JLabel显示欢迎信息内容;3)确定按钮在监听到事件后,new出一个Menu类;三、主菜单界面1.实际运行效果(图表3)图表3 主菜单界面2.实现方法1)继承JFrame类,在内部建立的JPanel插入JButton;2)定义相应按钮的响应事件,调用子菜单的不同建立函数(如newSon_menu().studentmenu(););四、子菜单1.实际运行效果(图表4) 图表4 子菜单界面2.实现方法1)建立JFrame,JTable,JButton等工具;2)建立数据库链接;3)将数据库里的数据逐个读入到JTable类;五、学生信息录入1. 实际运行效果(图表5)图表5 学生信息录入界面(2) 实现方1)由输入的学生信息构造一个Student类;2)利用SQL语句,将Student类插入到数据库;六、学生信息查找1.实际运行效果(图表6)图表6 学生信息查找界面2.实现方法1)由输入的学号,利用SQL语句找到相关数据,返回一个Student类;2)有则将student的相关信息显示到JTextArea上,没有则显示“学生信息未找到”。七、学生信息删除1.实际运行效果(图表7与图表8的对比) 图表7 未删除以前 图表8 删除以后查找2.实现方法1)应用查找功能相似的原理先搜索到要删除的信息;2)利用SQL语句将找到的信息删除,并显示“学生信息以删除”。8、 学生信息修改1. 实际运行效果(图表9与图表10的对比)图表9 修改以前 图表10 修改以后2.实现方法1)应用查找功能相似的原理先搜索到要修改的信息;2)应用删除功能相似的原理删除要修改的信息;3)调用录入类,录入要修改的新信息;课程设计心得体会(1) 首先是在知道自己要做什么,做哪种程序之后,对这一领域有一个大概的了解,也就是在自己所知道的领域内建立对象。(2) 其次,要对所建的包有大致规划,需要几个包,每个包中包含哪些类;(3) 最后再确定这些类的具体实现。总结(1) 这次课程设计是采用小组的形式,我们三个人各司其职,共同合作,都非常好地完成了自己的工作,我觉得这一点是非常好的,也是以后再工作中要继续保持的。(2) 其次是我们的程序有的部分不是一个人写的,就有了这个编写程序习惯的这个问题,个人认为有一个好的编写程序的习惯是非常好的(最主要的是要写应有的注释)。 程序源代码1、 数据库连接实现package dao; 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 = 123456; try Class.forName(com.mysql.jdbc.Driver); 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 closeConnection(Connection con) if(con!=null) try con.close(); con = null; catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); public static void main(String args) getConnection(); 2、 学生信息数据库管理(Student_Dao.java)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.Depart; import model.Student; public class StudentDao public boolean addInfo(Student student) boolean flag; Connection con = DbConnection.getConnection(); PreparedStatement ps; String sql = ; / ResultSet rs; try 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, 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 = DbConnection.getConnection(); Statement sta; ResultSet rs; 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.setBorn_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); return students; public Student findOne(int id) Student student = new Student(); Connection con = DbConnection.getConnection();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中查询所有数据 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:+student.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; public boolean deleteInfo(Student student) boolean flag; Connection con = DbConnection.getConnection(); 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 DbConnection.closeConnection(con); return flag; 3、 欢迎界面(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.WindowEvent; 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( 欢迎进入学生信息管理系统!, Font.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 public void mousePressed(MouseEvent e) new Menu(); w.setVisible(false); public static void main(String args) new Welcome(); private class Wind extends WindowAdapter public void windowClosing(WindowEvent e) w.setVisible(false); System.exit(0); 4、 主菜单界面(Menu.java)package menu;import java.awt.*; import 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(学生信息); 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();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.setVisible(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(退出) new Menu();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.getActionCommand().equals(成绩信息) new Son_menu().scoremenu(); f.setVisible(false); 5、 子菜单界面(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.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 = 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(学号); columnNames.add(姓名); columnNames.add(性别); columnNames.add(出生年月); columnNames.add(学院代码); columnNames.add(所在班级);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(); Student 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,BorderLayout.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.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 departmenu() 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(院系删除); 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.add(b_change); p2.add(b_find); p2.add(b_return); f.setVisible(true); /课程信息菜单 public void coursemenu() f = new JFrame(课程信息); t = new JTable(100,2); t.setVisible(true); f.setLayout(new BorderLayout(); f.add(p1,BorderLayout.NORTH); f.add(p2,BorderLayout.S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司晋升体系培训
- 保健品原料供应链金融合作合同
- 拆迁改造项目二手房买卖风险评估与风险管理协议
- 幼儿一日生活教育
- 出租车租赁车辆保险代理合同
- 零售行业财务审计与优化建议合同
- 诚意金合作开发旅游项目保证金合同
- 车辆质押借款合同范本集锦
- 厂房买卖合同标准文本(含产权登记)
- 采石场承包土地资源流转与开发合同
- PPH术后护理查房
- 2022年江苏省常州市强基计划选拔数学试卷(附答案解析)
- 小学生体适能教育现状调查与分析
- HG∕T 5229-2017 热空气老化箱
- 09SMS202-1埋地矩形雨水管道及附属构筑物(混凝土模块砌体)
- 医生签约MCN机构合同模版
- 重庆市沙坪坝区南开中学校2023-2024学年八年级下学期期末英语试题(无答案)
- 广东省深圳市南山区2023-2024学年七年级下学期期末英语试题
- 2022-2023学年江苏省苏州市高二下学期学业质量阳光指标调研卷英语试卷
- 苏教版小学四年级下册科学期末测试卷及参考答案1套
- 体育场馆物业管理操作规范
评论
0/150
提交评论