《生学信息管理系统课程设计报告--大学毕设论文.doc》由会员分享,可在线阅读,更多相关《生学信息管理系统课程设计报告--大学毕设论文.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JAVA课程设计报告题 目学生信息管理系统院 系信息工程学院班 级学 号姓 名1目 录目 录1第一章 需求分析11任务需求12功能需求13设计目的14设计要求2第二章 系统设计31设计思路32系统功能设计32.1系统结构32.2系统功能设计43数据库设计43.1数据库概念结构设计43.2数据库逻辑结构设计53.3数据库物理结构设计5第三章 系统实现61系统环境62数据库连接63功能模块的实现63.1实体类63.2封装的数据库连接池类73.3学生信息处理类74界面模块的实现84.1选择功能类84.2添加学生信息界面类94.3查询学生信息界面类94.4修改学生信息界面类104.5删除学生信息界面类
2、11第五章 系统测试131测试的意义和目的132功能实现及测试132.1主界面的实现132.2添加学生信息界面的实现132.3查询学生信息界面的实现152.4修改学生信息界面的实现172.5删除学生信息界面的实现20总结23第一章 需求分析1任务需求利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分重要的。我这次的课题就是设计与实现一个学生信息管理系统。2功能需求1按照数据库设计方案合理设计stu
3、dent表,并生成SQL代码,包含学生的学号、姓名、性别、出生日期、专业等信息。学号为主键。2录入学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“录入学生基本信息”功能的界面,通过该界面可以录入学生的学号、姓名、性别、出生日期、专业等信息。3修改学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“修改学生基本信息”功能的界面,通过该界面可以对已录入的学生信息进行修改。4查询学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“查询学生基本信息”功能的界面,通过该界面可以对已录入的学生信息进行查询,查询条件按照学号进行查询。5删除学生基本信息功能的界面。用户可以通过菜单选项让程序呈
4、现“删除学生基本信息”功能的界面,通过该界面可以按照学号删除已录入的学生信息记录。能连接数据库并实现查询、增、删、改等功能3设计目的1通过JAVA课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类。2通过这次课程设计掌握JAVA的编程思想,为后续课程打下基础。3培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。4设计要求总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体。结构设计合理。也可根据自己对题目的理解增加新的功能模块。使用图形用户界面。工作,运行界面友好,演示程序以用户
5、和计算机的对话方式进行看题目要求,每一条记录包括一个学生的姓名、性别、出生日期等。同时,应具备以下功能:1、删除功能:对指定学生的信息进行删除。2、修改功能:对指定学生的信息进行修改。3、查询功能:选择某种方式并输入该信息查询符合条件的学生信息。4、添加功能:添加新增学生信息。5、退出主菜单。2第二章 系统设计1设计思路程序界面采用javax.swing组件进行设计,合理选择JFrame、JPanel或者JDialog窗体进行设计,程序功能模块分为以下几个部分:1、MainFrame.java 主应用程序界面,负责其它功能模块的调用。2、InputStudent.java 负责“录入学生基本信
6、息”功能的界面,要对录入数据进行有效性验证。3、ModifyStudent.java 负责“修改学生基本信息”功能的界面。4、QueryStudent.java 负责“查询学生基本信息”功能的界面,能够按指定学号来查询并显示学生信息内容。5、DeleteStudent.java 负责“删除学生基本信息”功能的界面,能够删除指定学生信息记录。6、Student.java Student创建的对象负责处理和学生有关的数据,按照实体类的方式来定义,有一些private的参数作为对象的属性,然后针对每个参数定义了get和set方法作为访问的接口。对象的所有属性采用String类型来处理。7、DBUti
7、l.java /负责获取数据库连接 public Connection getConnection(); /负责关闭数据库连接资源 public void closeAll ();2系统功能设计2.1系统结构系统结构图如图2-1:学生个人信息管理系统查询学生信息系统录入学生信息系统录入学生信息更改学生信息系统按学号查询学生信息更改学生信息图2-1 学生个人信息管理系统结构图2.2系统功能设计主界面的菜单选项功能:显示该系统的全部功能,包括:录入学生基本信息的功能,修改学生基本信息的功能,查询学生基本信息的功能,删除学生基本信息的功能。添加学生基本信息的功能:实现学生基本信息的添加,所含内容有:
8、学生的学号,姓名,性别,出生年月,民族,入学年份,院系,专业,。修改学生基本信息的功能:根据录入的学号查询对应的信息,显示信息;然后自己在修改界面进行修改。查询学生基本信息的功能:根据录入的学号查询所对应的信息。删除学生基本信息的功能:根据录入的学号查询对应的信息,单击“确定”即删除。3数据库设计 此系统使用的是MySQL数据库,由于此系统需要的数据量不是很大,所以选择比较简便的mysql数据库。此系统的数据库名称是student。 3.1数据库概念结构设计学生个人信息管理系统数据库的实体联系图如图2-2:N管理员学生管理姓名专业院系学号入学年份性别出生日期期图2-2数据库实体联系图(E-R)
9、图)3.2数据库逻辑结构设计将E-R图转换为关系模型,其中关系的主键用下划线表示如下:学生(stuId,name,sex,nation,birth,entrance_date,department,specialty)3.3数据库物理结构设计结构设计如表2-3:字段名数据类型字段大小描述stuId文本11学号name文本10姓名sex文本2性别nation文本10民族birth文本20出生日期entrance_date文本10入学年份department文本30院系specialty文本30专业第三章 系统实现1系统环境运行环境:Windows 10编程语言:Java使用工具:Eclipse(
10、编码格式为:utf-8)数据库连接为:MySQL2数据库连接数据库连接为封装连接数据库类DBUtil.java,本类具有增、删、改和查询的方法。数据库连接核心代码:Class.forName(com.mysql.jdbc.Driver);conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/student?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true,root, root);3功能模块的实现3.1实体类(1)类名:Student(2)父类:无(3)作用:
11、Student创建的对象负责处理和学生有关的数据,按照实体类的方式来定义,有一些private的参数作为对象的属性,然后针对每个参数定义了get和set方法作为访问的接口。对象的所有属性采用String类型来处理。 (4)主要成员变量:private String stuId; /学号private String name; /姓名private String sex; /性别private String nation; /民族private String birth; /出生日期private String entrance_date; /入学时间 private String depart
12、ment; /学院 private String specialty; /专业(5)主要方法:public String getStuXX();public void setStuXX(String stuId);3.2封装的数据库连接池类(1)类名:DBUtil;(2)父类:无(3)作用:实现DataSource接口,并实现连接池功能的步骤:在DataSource构造函数中批量创建与数据库的连接,并把创建的连接加入LinkedList对象中。实现getConnection方法,让getConnection方法每次调用时,LinkedList中取一个Connection返回给用户。当用户使用完
13、Connection,调用Connection.close()方法时,Collection对象应保证将自己返回到LinkedList中,而不要把conn还给数据库。(4)成员变量:protected Connection conn = null;protected PreparedStatement ps = null;protected ResultSet rs = null;(5)成员方法:public Connection getConn(); /连接数据库的方法public int executeUpdate(String sql, Object params); /增、删、改的方法p
14、ublic List executeQuery(String sql, Object params,Class cla); /查询的方法public void closeAll(); /关闭资源的方法3.3学生信息处理类(1)类名:StudentDaoImpl(2)父类:DBUtil(3)作用:学生信息的处理类,通过继承DBUtil类提供添加学生信息、修改学生信息、删除学生信息和查询学生信息的方法,实现以上的功能。(4)成员变量:无(5)成员方法:public int stuAdd(Student student); /添加学生信息public int stuModify(String stu
15、Id, Student student); /修改学生信息public int stuDel(String stuId, Student student); /删除学生信息public Student queryStuById(String stuId); /查询学生信息4界面模块的实现4.1选择功能类(1)类名:MainFrame(2)父类:Jframe(3)作用:主应用程序界面,负责其它功能模块的调用。(4)成员变量:static JMenuBar jMenuBar = new JMenuBar();/ 菜单条static JMenu jMenuFile = new JMenu(菜单);/
16、 菜单项static JMenuItem jMenuItem1 = new JMenuItem(添加信息);/ 菜单子项static JMenuItem jMenuItem2 = new JMenuItem(修改信息);static JMenuItem jMenuItem3 = new JMenuItem(信息查询);static JMenuItem jMenuItem4 = new JMenuItem(删除信息);static JLabel label3 = new JLabel(请选择操作项);static JLabel label4 = new JLabel(欢迎使用学生信息管理系统);
17、static JButton button2 = new JButton(添加信息); /按钮static JButton button3 = new JButton(修改信息);static JButton button4 = new JButton(信息查询);static JButton button5 = new JButton(删除信息);static JButton buExit = new JButton(退出系统);(5)成员方法:public MainFrame(); /主应用程序界面的设计public void actionPerformed(ActionEvent e);
18、 /事件监听方法public static void main(String args); /程序运行的入口4.2添加学生信息界面类(1)类名:InputStudent(2)父类:JFrame(3)作用:负责“添加学生基本信息”功能的界面,要对录入数据进行有效性验证。(4)成员变量:static JLabel label1 = new JLabel(学号:);static JTextField textField1 = new JTextField();static JLabel label2 = new JLabel(姓名:);static JTextField textField2 = n
19、ew JTextField();static JLabel label3 = new JLabel(性别:);static JTextField textField3 = new JTextField();static JLabel label4 = new JLabel(出生日期:);static JTextField textField4 = new JTextField();static JLabel label5 = new JLabel(民族:);static JTextField textField5 = new JTextField();static JLabel label6
20、= new JLabel(入学年份:);static JTextField textField6 = new JTextField();static JLabel label7 = new JLabel(院系:);static JTextField textField7 = new JTextField();static JLabel label8 = new JLabel(专业:);static JTextField textField8 = new JTextField();static JButton button1 = new JButton(增加);static JButton bu
21、tton2 = new JButton(取消);(5)成员方法:public InputStudent(); /添加学生信息子界面的设计public void actionPerformed(ActionEvent e); /事件监听方法public static void main(String args); /程序运行的入口4.3查询学生信息界面类(1)类名:QueryStudent(2)父类:JFrame(3)作用:负责“添加学生基本信息”功能的界面,要对录入数据进行有效性验证。(4)成员变量:static JLabel label1 = new JLabel(学号:);static J
22、TextField textField1 = new JTextField();static JLabel label2 = new JLabel(姓名:);static JTextField textField2 = new JTextField();static JLabel label3 = new JLabel(性别:);static JTextField textField3 = new JTextField();static JLabel label4 = new JLabel(出生日期:);static JTextField textField4 = new JTextField
23、();static JLabel label5 = new JLabel(民族:);static JTextField textField5 = new JTextField();static JLabel label6 = new JLabel(入学年份:);static JTextField textField6 = new JTextField();static JLabel label7 = new JLabel(院系:);static JTextField textField7 = new JTextField();static JLabel label8 = new JLabel(
24、专业:);static JTextField textField8 = new JTextField();static JButton button1 = new JButton(查询);static JButton button2 = new JButton(取消);(5)成员方法:public QueryStudent(); /查询学生信息子界面的设计public void actionPerformed(ActionEvent e); /事件监听方法public static void main(String args); /程序运行的入口4.4修改学生信息界面类(1)类名:Modify
25、Student(2)父类:JFrame(3)作用:负责“修改学生基本信息”功能的界面。(4)成员变量:static JLabel label1 = new JLabel(学号:);static JTextField textField1 = new JTextField();static JLabel label2 = new JLabel(姓名:);static JTextField textField2 = new JTextField();static JLabel label3 = new JLabel(性别:);static JTextField textField3 = new J
26、TextField();static JLabel label4 = new JLabel(出生日期:);static JTextField textField4 = new JTextField();static JLabel label5 = new JLabel(民族:);static JTextField textField5 = new JTextField ();static JLabel label6 = new JLabel(入学年份:);static JTextField textField6 = new JTextField ();static JLabel label7
27、= new JLabel(院系:);static JTextField textField7 = new JTextField();static JLabel label8 = new JLabel(专业:);static JTextField textField8 = new JTextField();static JButton button1 = new JButton(修改);static JButton button2 = new JButton(取消);static JButton button3 = new JButton(查询);(5)成员方法:public QueryStud
28、ent(); /修改学生信息子界面的设计public void actionPerformed(ActionEvent e); /事件监听方法public static void main(String args); /程序运行的入口4.5删除学生信息界面类(1)类名:DeleteStudent(2)父类:JFrame(3)作用:负责“删除学生基本信息”功能的界面,能够删除指定学生信息记录。(4)成员变量:static JLabel label1 = new JLabel(学号:);static JTextField textField1 = new JTextField();static J
29、Label label2 = new JLabel(姓名:);static JTextField textField2 = new JTextField();static JLabel label3 = new JLabel(性别:);static JTextField textField3 = new JTextField();static JLabel label4 = new JLabel(出生日期:);static JTextField textField4 = new JTextField();static JLabel label5 = new JLabel(民族:);static
30、 JTextField textField5 = new JTextField();static JLabel label6 = new JLabel(入学年份:);static JTextField textField6 = new JTextField();static JLabel label7 = new JLabel(院系:);static JTextField textField7 = new JTextField();static JLabel label8 = new JLabel(专业:);static JTextField textField8 = new JTextFie
31、ld();static JButton button1 = new JButton(删除);static JButton button2 = new JButton(取消); (5)成员方法:public QueryStudent(); /修改学生信息子界面的设计public void actionPerformed(ActionEvent e); /事件监听方法public static void main(String args); /程序运行的入口第五章 系统测试1测试的意义和目的系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。 测试的目的就是希望能以
32、最少的人力和时间发现潜在的各种错误和缺陷。应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例,并利用这些实例来运行程序,以便发现错误。2功能实现及测试2.1主界面的实现图5-1 主界面运行图2.2添加学生信息界面的实现(1)添加信息正确时,弹出框提示:图5-2 添加信息成功图(2)添加信息时,学号已存在,弹出框提示:图5-3 添加信息学号已存在图2.3查询学生信息界面的实现(1) 输入的学号存在,弹出信息提示:图5-4 查询学生信息图1图5-5 查询学生信息图2(2) 输入的学号不存在,弹出信息提示:图5-6 查询学生信息不存在图(3)数据库中的显示:图5-6 数据库中的显示图
33、2.4修改学生信息界面的实现(1)输入的学号存在时,显示要修改的学生基本信息:图5-7 显示修改的信息图图5-8 修改学生信息成功图(2)数据库中的显示图5-9 数据库中的显示图(3)输入学号不正确时,弹出信息提示:图5-10 学号不存在查询图图5-11 学号为空图图5-12 学号不存在图2.5删除学生信息界面的实现(1)输入的学号存在,弹出信息提示:图5-13 删除信息图图5-14 删除信息成功图图5-15 数据库显示图(2)输入的学号不存在,弹出信息提示:图5-16 输入学号不存在图 21总结经过一个多星期的课程设计,学生信息管理系统终于完成了。从刚开始听到这个题目,到在网上查询资料,再到
34、开始写规划,最后开始写程序。时间很快,但是,过程中也遇到了一些问题,不如数据库的设计问题,java界面的设计问题,还有系统的人性化问题。虽然,现在还有一个小的问题,但是,总体上,系统运行可以。由于之前对MySQL数据库有一定的了解,并且,此次课程设计的数据库比较简单,所以,这一方面还是比较可以。特别是以前写过的MySQL的项目的数据库连接类,再次用到了这次的课程设计中,可以说,让我对于JAVA以及数据库的理解有了更深层次的进步。通过本次的课程设计,让我对于软件的设计过程,有了更深层次的了解,知道了设计一个项目,应该怎么去做,大致需要多什么。为以后从事这方面工作打下了坚实的基础。在学习的道路上,这次的课程设计只是一个开始,我相信,在未来,我将面临更多的项目,而我要做的就是学习更多的知识去提升自己的能力。面对困难,不退缩,磨练自己。