完整版JAVA课程设计基于mysql的学生信息管理系统毕业论文.docx
《完整版JAVA课程设计基于mysql的学生信息管理系统毕业论文.docx》由会员分享,可在线阅读,更多相关《完整版JAVA课程设计基于mysql的学生信息管理系统毕业论文.docx(41页珍藏版)》请在冰豆网上搜索。
完整版JAVA课程设计基于mysql的学生信息管理系统毕业论文
1.目录
概述3
一、课题介绍3
二、目的和要求3
三、任务计划3
需求分析5
一、学生管理系统的发展现状5
二、系统功能分析5
三、系统结构框图5
数据库设计7
一、创建数据表的结构7
二、各表功能及其关系7
系统模块功能的实现与界面设计8
一、系统主要模块8
二、欢迎界面9
三、主菜单界面9
四、子菜单10
五、学生信息录入11
六、学生信息查找12
七、学生信息删除13
八、学生信息修改14
课程设计心得15
一、程序结构设计培养15
二、书写习惯养成15
三、注意程序简洁15
总结16
参考文献17
附录:
项目源代码18
一、数据库连接(DbConnection.java)18
二、学生信息数据库管理(Student_Dao.java)18
三、欢迎界面(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)38
概述
一、课题介绍
本次课程设计要求实现一个面向学生信息的管理系统。
学生信息系统是一个非常通用的管理系统。
很多大、中、小学校都需要拥有自己的学生档案管理系统,以便对本校学生的基本信息和学习情况进行管理,另一方面,较完整的学校信息管理系统同样也需要有学生信息管理系统的支持。
由通用的学生相关数据分析可知,系统包括院系管理、学生基本信息管理、课程管理、学生从成绩管理等主要功能。
该系统要求使用JAVA和MySQL作为开发工具和数据库管理系统,因此,系统设计涉及系统功能设计、数据库设计和系统界面等几个方面内容。
二、目的和要求
2.了解JAVA语言的特点及使用的范围,掌握开发软件平台的搭建。
3.要求使用JAVA和MySQL开发一个学生信息管理系统,系统主要功能如下:
1)院系信息管理
院系系统信息的录入,包括院系编号、院系名称等信息;
院系信息的修改、删除、查询。
2)学生基本信息管理
学生基本信息的录入,包括学号、姓名、性别、出生日期、所在院系、班级等信息;
学生基本信息的修改、删除、查询。
3)课程设置管理
课程信息的录入,包括课程编号、课程名称、学分、课程内容等信息;
课程信息的修改、删除、查询。
4)学生成绩管理
学生成绩的录入,包括课程编号、课程名称、学分、课程内容等信息;
学生信息的修改、删除、查询。
三、任务计划
考虑到本次课程设计是独立完成,所以,不需要进行细致的分工,只要对框架和时间进行一定的规划就行。
时间
计划
执行结果
1
12月13日
查阅相关资料
准备好基础知识
查阅了JAVASwing,MySQL等方面的相关资料。
2
12月14日
进行需求分析
得到需求分析总结。
3
12月14日~21日
正式设计
完成代码设计及调试
5
12月22日
完成课程设计报告
整理文件,并完成书面报告
需求分析
四、学生管理系统的发展现状
经过了一段时间的发展,当今,各大高校普遍都有了相对完善的学生管理系统,但在部分中小学中,这种高效的管理手段,仍未能全面普及。
目前已有的学生管理系统存在界面和操作相对繁琐,实现成本较高等缺点,仍需改进。
五、系统功能分析
由通用的学生相关数据分析可知,系统包括院系管理、学生基本信息管理、课程管理、学生从成绩管理等主要功能。
实现以上各模块的功能,需要以下子功能:
1数据库连接的建立与断开
2数据库的数据操作,包括插入、查询、删除、修改
4.系统操作界面与数据库操作相关联
六、系统结构框图
从系统功能表述可以看出,该系统可以实现几个功能,根据这些功能设计出系统的功能模块如图表1所示:
数据库设计
七、创建数据表的结构
(以学生基本信息管理系统为例)
5.主要数据项
学号、姓名、性别、出生年月、所在院系、所在班级
6.数据类型及要求
为操作方便,均定义为字符串。
其中学号不得重复。
7.MySQL建表语句
八、各表功能及其关系
8.本系统各表分别存储相应数据。
9.涉及的数据表之间相对独立,但仍有少量关联。
5)学生成绩表包含对学生基本信息表和课程设置表的映射
6)学生基本信息表包含对院系信息表的映射
系统模块功能的实现与界面设计
九、系统主要模块
本次课程设计的主要目的,是通过实践,让我对所学到的知识进行考验和巩固。
经过一点时间的了解。
设计出了系统的总体框架,参看图表1。
由于各模块的功能及原理基本相同,只是涉及的数据类型有所不同,所以本次只对学生基本信息管理的功能进行了较为全面的设计。
由于时间关系,其余功能没有进行具体设计。
(具体的在以下说明中会提及)
系统界面设计如下:
模块名称
相关的类
登录界面
welcome.class
菜单界面
Menu.class
数据库管理模块:
模块名称
相关的类
数据库链接
DbConnection.class
学生信息数据库管理
StudentDao.class
院系信息数据库管理
DepartDao.class
课程信息数据库管理
CourseDao.class
成绩信息数据库管理
ScoreDao.class
模块功能界面设计如下:
模块名称
相关的类
子菜单
Son_Menu.class
添加功能
Add_Menu.class
查询功能
Find_Menu.class
删除功能
Delet_Menu.class
修改功能
Change_Menu.class
十、欢迎界面
10.实际运行效果(图表2)
11.实现方法
7)继承了JPanel,并在构造函数中建立JFrame做外框;
8)用JLabel显示欢迎信息内容;
9)确定按钮在监听到事件后,new出一个Menu类;
十一、主菜单界面
12.实际运行效果(图表3)
13.实现方法
10)继承JFrame类,在内部建立的JPanel插入JButton;
11)定义相应按钮的响应事件,调用子菜单的不同建立函数(如newSon_menu().studentmenu(););
十二、子菜单
14.实际运行效果(图表4)
15.实现方法
12)建立JFrame,JTable,JButton等工具;
13)建立数据库链接;
14)将数据库里的数据逐个读入到JTable类;
15)对JButton加入ActionListener,并关联相应的功能菜单,如:
十三、学生信息录入
16.实际运行效果(图表5)
实现方法
16)由输入的学生信息构造一个Student类;
17)利用SQL语句,将Student类插入到数据库;
十四、学生信息查找
1.实际运行效果(图标6)
实现方法
1)由输入的学号,利用SQL语句找到相关数据,返回一个Student类;
2)有则将student的相关信息显示到JTextArea上,没有则显示“学生信息未找到”;
十五、学生信息删除
17.实际运行效果(图表7)
18.实现方法
18)应用查找功能相似的原理先搜索到要删除的信息;
19)利用SQL语句将找到的信息删除,并显示“学生信息以删除”。
十六、学生信息修改
19.实际运行效果
20.实现方法
20)应用查找功能相似的原理先搜索到要修改的信息;
21)应用删除功能相似的原理删除要修改的信息;
22)调用录入类,录入要修改的新信息;
课程设计心得
十七、程序结构设计思路培养
为了简化程序,我并没有为每个窗口都建一个类,而是把类似的窗口例如student_add,depart_add等建一个类Add_Menu,调用不同的函数建立不同窗口,如:
student_add(),depart_add();
十八、书写习惯的养成
好的书写习惯是一个优秀程序员的必备品质。
在写代码的时候要随时注意书写的格式。
如:
1.赋值语句的“=”的左右应该用空格隔开;
a=1;
改为
a=1;
这样更为清晰;
2.大括号一定要对齐;
class{
……
publicvoid…..{
…….
}
}
十九、注意程序简洁
在逐渐适应面向对象编程以后。
依然应道保持过去在编程中的一些好习惯。
使用Vector等,也需要留意效率。
不能只顾用法方便。
总结
系统设计过程中,主要涉及了包括JAVA基本语法、AWT,JavaSwing,MySQL等方面的相关知识。
设计中遇到不少问题,到图书馆查阅了不少资料,向王宋君老师请教过不少问题,老师都一一细心解答,非常感谢。
由于时间仓促,原本设想的功能还没有一一实现,待进一步完善。
参考文献
21.《ThinkinginJava(Java编程思想)》第四版,机械工业出版社,【美】BruceEckel著,陈昊鹏译;
22.《精通JavaSwing程序设计》中国铁道出版社,林智扬、范明翔、陈锦辉编著;
23.《深入浅出JavaSwing程序设计》中国铁道出版社,林智扬、范明翔、陈锦辉编著;
24.《JavaGUI程序设计》清华大学出版社,肖刚等编著;
25.《Java信息系统设计与开发实例》机械工业出版社,黄明、梁旭、曹利超编著;
26.《Java范例大全》机械工业出版社,尹继平、张帆编著;
附录:
项目源代码
二十、数据库连接(DbConnection.java)
packagedao;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
publicclassDbConnection{
publicstaticConnectiongetConnection(){
Connectioncon=null;
Stringurl="jdbc:
mysql:
localhost:
3306java";
StringuserName="root";
Stringpassword="l057788y";
try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection(url,userName,password);
System.out.println("数据库连接成功");
}catch(ClassNotFoundExceptione){
TODOAuto-generatedcatchblock
e.printStackTrace();
returnnull;
}catch(SQLExceptione){
TODOAuto-generatedcatchblock
e.printStackTrace();
}
returncon;
}
publicstaticvoidcloseConnection(Connectioncon){
if(con!
=null){
try{
con.close();
con=null;
}catch(SQLExceptione){
TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
publicstaticvoidmain(Stringargs[]){
getConnection();
}
}
}
二十一、学生信息数据库管理(Student_Dao.java)
packagedao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importmodel.Depart;
importmodel.Student;
publicclassStudentDao{
publicbooleanaddInfo(Studentstudent){
booleanflag;
Connectioncon=DbConnection.getConnection();
PreparedStatementps;
Stringsql="";
ResultSetrs;
try{
sql="insertintostudentvalues(?
?
?
?
?
?
)";用问号代替
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(SQLExceptione){
TODOAuto-generatedcatchblock
e.printStackTrace();
flag=false;
}finally{
DbConnection.closeConnection(con);
}
returnflag;
}
publicArrayListfindAll(){
ArrayListstudents=newArrayList();
Connectioncon=DbConnection.getConnection();
Statementsta;
ResultSetrs;
try{
sta=con.createStatement();
rs=sta.executeQuery("SELECT*FROMstudent");从表depart中查询所有数据
while(rs.next()){
Studentstudent=newStudent();
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(SQLExceptione){
TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
DbConnection.closeConnection(con);
}
returnstudents;
}
publicStudentfindOne(intid){
Studentstudent=newStudent();
Connectioncon=DbConnection.getConnection();
PreparedStatementps;
Stringsql="";
ResultSetrs;
try{
sql="SELECT*FROMstudentwhereid=?
";
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(SQLExceptione){
TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
DbConnection.closeConnection(con);
}
returnstudent;
}
publicbooleandeleteInfo(Studentstudent){
booleanflag;
Connectioncon=DbConnection.getConnection();
PreparedStatementps;
Stringsql="";
try{
sql="deletefromstudentwhereid=?
";用问号代替
ps=con.prepareStatement(sql);
ps.setInt(1,student.getId());
ps.execute();
System.out.println("成功删除了一条记录");
flag=true;
}catch(SQLExceptione){
TODOAuto-generatedcatchblock
e.printStackTrace();
flag=false;
}finally{
DbConnection.closeConnection(con);
}
returnflag;
}
}
二十二、欢迎界面(Welcome.java)
packagemenu;
importjava.awt.BorderLayout;
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjavax.swing.*;
publicclassWelcome{
JFramew=newJFrame("managementsystem");
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JLabell=newJLabel("欢迎进入学生信息管理系统!
");
JButtonb=newJButton("确定");
Welcome(){
w.addWindowListener(newWind());
b.addMouseListener(newMonitor2());
Fontfont=newFont("欢迎进入学生信息管理系统!
",Font.PLAIN,40);
l.setFont(font);
w.add(p1,BorderLayout.CENTER);
w.add(p2,BorderLayout.SOUTH);
p1.add(l);
l.setBounds(p1.WIDTH2-100,p1.HEIGHT);
p2.add(b);
b.setBounds(p2.WIDTH2-10,p2.HEIGHT);
w.setBounds(400,200,600,200);
w.setVisible(true);
}
privateclassMonitor2extendsMouseAdapter{
publicvoidmousePressed(MouseEvente){
newMenu();
w.setVisible(false);
}
}
publicstaticvoidmain(Stringargs[]){
newWelcome();
}
privateclassWindextendsWindowAdapter{
publicvoidwindowClosing(WindowEvente){
w.setVisible(false);
System.exit(0);
}
}
}
二十三、