学生信息管理系统.docx
- 文档编号:11769292
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:26
- 大小:494.30KB
学生信息管理系统.docx
《学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
学生信息管理系统
JAVA课程设计报告
题目
学生信息管理系统
院系
信息工程学院
班级
学号
姓名
第一章需求分析
1.任务需求
利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。
要科学地实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分重要的。
我这次的课题就是设计与实现一个学生信息管理系统。
2.功能需求
1.按照数据库设计方案合理设计student表,并生成SQL代码,包含学生的学号、姓名、性别、出生日期、专业等信息。
学号为主键。
2.录入学生基本信息功能的界面。
用户可以通过菜单选项让程序呈现“录入学生基本信息”功能的界面,通过该界面可以录入学生的学号、姓名、性别、出生日期、专业等信息。
3.修改学生基本信息功能的界面。
用户可以通过菜单选项让程序呈现“修改学生基本信息”功能的界面,通过该界面可以对已录入的学生信息进行修改。
4.查询学生基本信息功能的界面。
用户可以通过菜单选项让程序呈现“查询学生基本信息”功能的界面,通过该界面可以对已录入的学生信息进行查询,查询条件按照学号进行查询。
5.删除学生基本信息功能的界面。
用户可以通过菜单选项让程序呈现“删除学生基本信息”功能的界面,通过该界面可以按照学号删除已录入的学生信息记录。
能连接数据库并实现查询、增、删、改等功能
3.设计目的
1.通过JAVA课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类。
2.通过这次课程设计掌握JAVA的编程思想,为后续课程打下基础。
3.培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。
4.设计要求
总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体。
结构设计合理。
也可根据自己对题目的理解增加新的功能模块。
使用图形用户界面。
工作,运行界面友好,演示程序以用户和计算机的对话方式进行
看题目要求,每一条记录包括一个学生的姓名、性别、出生日期等。
同时,应具备以下功能:
1、删除功能:
对指定学生的信息进行删除。
2、修改功能:
对指定学生的信息进行修改。
3、查询功能:
选择某种方式并输入该信息查询符合条件的学生信息。
4、添加功能:
添加新增学生信息。
5、退出主菜单。
第二章系统设计
1.设计思路
程序界面采用javax.swing组件进行设计,合理选择JFrame、JPanel或者JDialog窗体进行设计,程序功能模块分为以下几个部分:
1、MainFrame.java
主应用程序界面,负责其它功能模块的调用。
2、InputStudent.java
负责“录入学生基本信息”功能的界面,要对录入数据进行有效性验证。
3、ModifyStudent.java
负责“修改学生基本信息”功能的界面。
4、QueryStudent.java
负责“查询学生基本信息”功能的界面,能够按指定学号来查询并显示学生信息内容。
5、DeleteStudent.java
负责“删除学生基本信息”功能的界面,能够删除指定学生信息记录。
6、Student.java
Student创建的对象负责处理和学生有关的数据,按照实体类的方式来定义,有一些private的参数作为对象的属性,然后针对每个参数定义了get和set方法作为访问的接口。
对象的所有属性采用String类型来处理。
7、DBUtil.java
//负责获取数据库连接
publicConnectiongetConnection();
//负责关闭数据库连接资源
publicvoidcloseAll();
2.系统功能设计
2.1.系统结构
系统结构图如图2-1:
2.2.系统功能设计
主界面的菜单选项功能:
显示该系统的全部功能,包括:
录入学生基本信息的功能,修改学生基本信息的功能,查询学生基本信息的功能,删除学生基本信息的功能。
添加学生基本信息的功能:
实现学生基本信息的添加,所含内容有:
学生的学号,姓名,性别,出生年月,民族,入学年份,院系,专业,。
修改学生基本信息的功能:
根据录入的学号查询对应的信息,显示信息;然后自己在修改界面进行修改。
查询学生基本信息的功能:
根据录入的学号查询所对应的信息。
删除学生基本信息的功能:
根据录入的学号查询对应的信息,单击“确定”即删除。
3.数据库设计
此系统使用的是MySQL数据库,由于此系统需要的数据量不是很大,所以选择比较简便的mysql数据库。
此系统的数据库名称是student。
3.1.数据库概念结构设计
学生个人信息管理系统数据库的实体联系图如图2-2:
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.系统环境
运行环境:
Windows10
编程语言:
Java
使用工具:
Eclipse(编码格式为:
utf-8)
数据库连接为:
MySQL
2.数据库连接
数据库连接为封装连接数据库类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)作用:
Student创建的对象负责处理和学生有关的数据,按照实体类的方式来定义,有一些private的参数作为对象的属性,然后针对每个参数定义了get和set方法作为访问的接口。
对象的所有属性采用String类型来处理。
(4)主要成员变量:
privateStringstuId;//学号
privateStringname;//姓名
privateStringsex;//性别
privateStringnation;//民族
privateStringbirth;//出生日期
privateStringentrance_date;//入学时间
privateStringdepartment;//学院
privateStringspecialty;//专业
(5)主要方法:
publicStringgetStuXX();
publicvoidsetStuXX(StringstuId);
3.2.封装的数据库连接池类
(1)类名:
DBUtil;
(2)父类:
无
(3)作用:
实现DataSource接口,并实现连接池功能的步骤:
在DataSource构造函数中批量创建与数据库的连接,并把创建的连接加入LinkedList对象中。
实现getConnection方法,让getConnection方法每次调用时,
LinkedList中取一个Connection返回给用户。
当用户使用完Connection,调用Connection.close()方法时,Collection对象应保证将自己返回到LinkedList中,而不要把conn还给数据库。
(4)成员变量:
protectedConnectionconn=null;
protectedPreparedStatementps=null;
protectedResultSetrs=null;
(5)成员方法:
publicConnectiongetConn();//连接数据库的方法
publicintexecuteUpdate(Stringsql,Object[]params);//增、删、改的方法
publicList
publicvoidcloseAll();//关闭资源的方法
3.3.学生信息处理类
(1)类名:
StudentDaoImpl
(2)父类:
DBUtil
(3)作用:
学生信息的处理类,通过继承DBUtil类提供添加学生信息、修改学生信息、删除学生信息和查询学生信息的方法,实现以上的功能。
(4)成员变量:
无
(5)成员方法:
publicintstuAdd(Studentstudent);//添加学生信息
publicintstuModify(StringstuId,Studentstudent);//修改学生信息
publicintstuDel(StringstuId,Studentstudent);//删除学生信息
publicStudentqueryStuById(StringstuId);//查询学生信息
4.界面模块的实现
4.1.选择功能类
(1)类名:
MainFrame
(2)父类:
Jframe
(3)作用:
主应用程序界面,负责其它功能模块的调用。
(4)成员变量:
staticJMenuBarjMenuBar=newJMenuBar();//菜单条
staticJMenujMenuFile=newJMenu("菜单");//菜单项
staticJMenuItemjMenuItem1=newJMenuItem("添加信息");//菜单子项
staticJMenuItemjMenuItem2=newJMenuItem("修改信息");
staticJMenuItemjMenuItem3=newJMenuItem("信息查询");
staticJMenuItemjMenuItem4=newJMenuItem("删除信息");
staticJLabellabel3=newJLabel("请选择操作项");
staticJLabellabel4=newJLabel("欢迎使用学生信息管理系统");
staticJButtonbutton2=newJButton("添加信息");//按钮
staticJButtonbutton3=newJButton("修改信息");
staticJButtonbutton4=newJButton("信息查询");
staticJButtonbutton5=newJButton("删除信息");
staticJButtonbuExit=newJButton("退出系统");
(5)成员方法:
publicMainFrame();//主应用程序界面的设计
publicvoidactionPerformed(ActionEvente);//事件监听方法
publicstaticvoidmain(String[]args);//程序运行的入口
4.2.添加学生信息界面类
(1)类名:
InputStudent
(2)父类:
JFrame
(3)作用:
负责“添加学生基本信息”功能的界面,要对录入数据进行有效性验证。
(4)成员变量:
staticJLabellabel1=newJLabel("学号:
");
staticJTextFieldtextField1=newJTextField("");
staticJLabellabel2=newJLabel("姓名:
");
staticJTextFieldtextField2=newJTextField("");
staticJLabellabel3=newJLabel("性别:
");
staticJTextFieldtextField3=newJTextField("");
staticJLabellabel4=newJLabel("出生日期:
");
staticJTextFieldtextField4=newJTextField("");
staticJLabellabel5=newJLabel("民族:
");
staticJTextFieldtextField5=newJTextField("");
staticJLabellabel6=newJLabel("入学年份:
");
staticJTextFieldtextField6=newJTextField("");
staticJLabellabel7=newJLabel("院系:
");
staticJTextFieldtextField7=newJTextField("");
staticJLabellabel8=newJLabel("专业:
");
staticJTextFieldtextField8=newJTextField("");
staticJButtonbutton1=newJButton("增加");
staticJButtonbutton2=newJButton("取消");
(5)成员方法:
publicInputStudent();//添加学生信息子界面的设计
publicvoidactionPerformed(ActionEvente);//事件监听方法
publicstaticvoidmain(String[]args);//程序运行的入口
4.3.查询学生信息界面类
(1)类名:
QueryStudent
(2)父类:
JFrame
(3)作用:
负责“添加学生基本信息”功能的界面,要对录入数据进行有效性验证。
(4)成员变量:
staticJLabellabel1=newJLabel("学号:
");
staticJTextFieldtextField1=newJTextField("");
staticJLabellabel2=newJLabel("姓名:
");
staticJTextFieldtextField2=newJTextField("");
staticJLabellabel3=newJLabel("性别:
");
staticJTextFieldtextField3=newJTextField("");
staticJLabellabel4=newJLabel("出生日期:
");
staticJTextFieldtextField4=newJTextField("");
staticJLabellabel5=newJLabel("民族:
");
staticJTextFieldtextField5=newJTextField("");
staticJLabellabel6=newJLabel("入学年份:
");
staticJTextFieldtextField6=newJTextField("");
staticJLabellabel7=newJLabel("院系:
");
staticJTextFieldtextField7=newJTextField("");
staticJLabellabel8=newJLabel("专业:
");
staticJTextFieldtextField8=newJTextField("");
staticJButtonbutton1=newJButton("查询");
staticJButtonbutton2=newJButton("取消");
(5)成员方法:
publicQueryStudent();//查询学生信息子界面的设计
publicvoidactionPerformed(ActionEvente);//事件监听方法
publicstaticvoidmain(String[]args);//程序运行的入口
4.4.修改学生信息界面类
(1)类名:
ModifyStudent
(2)父类:
JFrame
(3)作用:
负责“修改学生基本信息”功能的界面。
(4)成员变量:
staticJLabellabel1=newJLabel("学号:
");
staticJTextFieldtextField1=newJTextField("");
staticJLabellabel2=newJLabel("姓名:
");
staticJTextFieldtextField2=newJTextField("");
staticJLabellabel3=newJLabel("性别:
");
staticJTextFieldtextField3=newJTextField("");
staticJLabellabel4=newJLabel("出生日期:
");
staticJTextFieldtextField4=newJTextField("");
staticJLabellabel5=newJLabel("民族:
");
staticJTextFieldtextField5=newJTextField("");
staticJLabellabel6=newJLabel("入学年份:
");
staticJTextFieldtextField6=newJTextField("");
staticJLabellabel7=newJLabel("院系:
");
staticJTextFieldtextField7=newJTextField("");
staticJLabellabel8=newJLabel("专业:
");
staticJTextFieldtextField8=newJTextField("");
staticJButtonbutton1=newJButton("修改");
staticJButtonbutton2=newJButton("取消");
staticJButtonbutton3=newJButton("查询");
(5)成员方法:
publicQueryStudent();//修改学生信息子界面的设计
publicvoidactionPerformed(ActionEvente);//事件监听方法
publicstaticvoidmain(String[]args);//程序运行的入口
4.5.删除学生信息界面类
(1)类名:
DeleteStudent
(2)父类:
JFrame
(3)作用:
负责“删除学生基本信息”功能的界面,能够删除指定学生信息记录。
(4)成员变量:
staticJLabellabel1=newJLabel("学号:
");
staticJTextFieldtextField1=newJTextField("");
staticJLabellabel2=newJLabel("姓名:
");
staticJTextFieldtextField2=newJTextField("");
staticJLabellabel3=newJLabel("性别:
");
staticJTextFieldtextField3=newJTextField("");
staticJLabellabel4=newJLabel("出生日期:
");
staticJTextFieldtextField4=newJTextField("");
staticJLabellabel5=newJLabel("民族:
");
staticJTextFieldtextField5=newJTextField("");
staticJLabellabel6=newJLabel("入学年份:
");
staticJTextFieldtextField6=newJTextField("");
staticJLabellabel7=newJLabel("院系:
");
staticJTextFieldtextField7=newJTextField("");
staticJLabellabel8=newJLabel("专业:
");
staticJTextFieldtextField8=newJTextField("");
staticJButtonbutton1=newJButton("删除");
staticJButtonbutton2=newJButton("取消");
(5)成员方法:
publicQueryStudent();//修改学生信息子界面的设计
publicvoidactionPerformed(ActionEvente);//事件监听方法
publicstaticvoidmain(String[]args);//程序运行的入口
第五章系统测试
1.测试的意义和目的
系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。
测试的目的就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。
应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例,并利用这些实例来运行程序,以便发现错误。
2.功能实现及测试
2.1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统