Java程序设计课程设计报告之学生信息管理系统附全部源码.docx
- 文档编号:27307494
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:52
- 大小:322.02KB
Java程序设计课程设计报告之学生信息管理系统附全部源码.docx
《Java程序设计课程设计报告之学生信息管理系统附全部源码.docx》由会员分享,可在线阅读,更多相关《Java程序设计课程设计报告之学生信息管理系统附全部源码.docx(52页珍藏版)》请在冰豆网上搜索。
Java程序设计课程设计报告之学生信息管理系统附全部源码
计算机学院课程设计
专业:
计算机科学与技术
课程名称:
JAVA程序设计
课题名称:
学生信息管理系统
教师:
学号:
姓名:
20010年6月25日
第一章总体设计
1.1本系统的主要功能
本系统是基于数据库的学生信息管理系统,实现了连接数据库,录入、修改、查询、删除学生信息的功能。
1.2系统包含的类及类之间的关系
本系统共包括7个Java源文件和3个辅助文件。
类之间的关系如图1-1所示
图1-1类之间的关系图
1.3Java源文件及其功能
1.MainWindow.java
该类负责创建学生信息管理系统的主窗口,该类还有main方法,程序从该类开始执行。
2.InputStudent.java
该类创建的对象是MainWindow类的重要成员之一,负责提供录入学生基本信息的界面。
3.ModifyStudent.java
该类创建的对象是MainWindow类的重要成员之一,负责提供修改学生基本信息的界面。
4.DeleteStudent.java
该类创建的对象是MainWindow类的重要成员之一,负责提供删除学生基本信息的界面。
5.QueryStudent.java
该类创建的对象是MainWindow类的重要成员之一,负责提供查询学生基本信息以及打印基本信息的界面。
6.Database.java
该类负责提供打开与关闭数据库连接的功能。
7.StuBean.java
该类负责数据库操作,包括对学生信息数据库的添加、查询、修改、删除。
1.4相关文件及其功能
1.welcome.jpg
为主窗口的背景图片,MainWidow需要调用该文件。
2.icon.jpg
该文件是窗口最小化时的窗口图标,MainWidow需要调用该文件。
3.专业.txt
该文件为专业组合的组合键提供下拉菜单的内容,InputStudent与ModifyStudent需要调用该文件。
4scmanage.mdb
该文件为本程序数据源,负责保存学生基本信息,Database连接到该数据库
第二章详细设计
2.1主类MainWindow
(1)成员变量见表2-1
表2-1主要成员变量(属性)
成员变量描述
变量类型
名称
面板
InputStudent
ins
面板
ModifyStudent
mos
面板
DeleteStudent
des
面板
QueryStudent
qus
菜单栏
JButtonBar
bar
菜单组
JMenu
menuSystemmenuStu
菜单项
JMenuItem
itemWelitemExititemSearchitemAdditemEdititemDelete
布局管理器
CardLayout
card
(2)方法见表2-2
表2-2主要方法
方法名称
返回类型
功能
备注
MainWindow
无类型
创建窗口
构造方法
actionPerformed
无类型
处理响应事件
继承自父类抽象方法
main
无类型
执行程序
程序的主函数
(3)源代码见文件MainWindow.java
2.2类Database
(1)成员变量见表2-3
表2-3主要成员变量
成员变量描述
变量类型
名称
执行SQL语句的接口
Statement
stmt
返回结果的接口
ResultSet
rs
数据库连接接口
Connection
conn
字符串(SQL语句、驱动)
String
sqlstrurl
(2)方法见表2-4
表2-4主要方法
方法名称
返回类型
功能
备注
Database
无类型
创建Database对象
构造方法
OpenConn
无类型
打开数据库连接
无
executeQuery
ResultSet
执行SQL查询语句,返回结果集RS
返回ResultSet类型结果集
executeUpdate
无类型
执行SQL更新语句
无
closeStmt
无类型
关闭当前的Statement对象
无
closeConn
无类型
关闭数据库连接
无
(3)源代码见文件Database.java
2.3类StuBean
(1)成员变量见表2-5
表2-5主要成员变量
成员变量描述
变量类型
名称
返回结果的接口
ResultSet
rs
字符串(SQL语句数据库属性)
String
sqlsNumsNamesSexsMajorsGradesBirth
创建Database对象
Database
DB
(2)方法见表2-4
表2-4主要方法
方法名称
返回类型
功能
备注
stuAdd
添加学生信息
无
stuModify
修改学生信息
无
stuDel
删除学生信息
无
stuSearch
String[]
根据学号查询学生信息
返回ResultSet类型结果集
(3)源代码见文件StuBean.java
2.4类InputStudent
(1)成员变量见表2-5
表2-5主要成员变量
成员变量描述
变量类型
名称
StuBean对象类型
StuBean
addStuqueryStu
文本域
JTextField
SnumSnameSgradeSbirth
组合框
JComboBox
Smajor
单选框
ButtonGroup
boy,girl
按钮多斥作用域
ButtonGroup
group
按钮
JButton
Entryreset
(2)方法见表2-4
表2-4主要方法
方法名称
返回类型
功能
备注
InputStudent
无类型
创建录入学生信息界面
构造方法
actionPerformed
无类型
处理响应事件
继承自父类抽象方法
clearMess
无类型
清除文本框内容
无
(3)源代码见文件InputStudent.java
2.5类ModifyStudent
(1)成员变量见表2-5
表2-5主要成员变量
成员变量描述
变量类型
名称
StuBean对象类型
StuBean
modifyStuqueryStu
文本域
JTextField
SnumSnameSgradeSbirth
组合框
JComboBox
Smajor
单选框
ButtonGroup
boy,girl
按钮多斥作用域
ButtonGroup
group
按钮
JButton
entryresetstart
(2)方法见表2-4
表2-4主要方法
方法名称
返回类型
功能
备注
ModifyStudent
无类型
创建修改学生信息界面
构造方法
actionPerformed
无类型
处理响应事件
继承自父类抽象方法
clearMess
无类型
清除文本框内容
无
(3)源代码见文件Modify.java
2.6类QueryStudent
(1)成员变量见表2-5
表2-5主要成员变量
成员变量描述
变量类型
名称
StuBean对象类型
StuBean
queryStu
文本域
JTextField
SnumSnameSgradeSbirthSmajor
启动并执行打印作业
PrintJob
pri
单选框
ButtonGroup
boy,girl
按钮多斥作用域
ButtonGroup
group
按钮
JButton
quertprint
面板(查询结果之后)
JPanel
messPanel
(2)方法见表2-4
表2-4主要方法
方法名称
返回类型
功能
备注
QueryStudent
无类型
创建录入学生信息界面
构造方法
actionPerformed
无类型
处理响应事件
继承自父类抽象方法
clearMess
无类型
清除文本框内容
无
(3)源代码见文件QueryStudent.java
2.7类DeleteStudent
(1)成员变量见表2-5
表2-5主要成员变量
成员变量描述
变量类型
名称
StuBean对象类型
StuBean
delStuqueryStu
文本域
JTextField
SnumSnameSgradeSbirthSmajor
单选框
ButtonGroup
boy,girl
按钮多斥作用域
ButtonGroup
group
按钮
JButton
del
(2)方法见表2-4
表2-4主要方法
方法名称
返回类型
功能
备注
InputStudent
无类型
创建录入学生信息界面
构造方法
actionPerformed
无类型
处理响应事件
继承自父类抽象方法
clearMess
无类型
清除文本框内容
无
(3)源代码见文件DeleteStudent.java
第三章功能测试及运行效果
3.1系统主界面
图3-1系统主窗口
3.2录入学生信息界面
图3-2学生信息录入界面
3.3查询学生信息界面
图3-3学生信息查询界面
3.4修改学生信息界面
图3-4学生信息修改界面
3.5修改学生信息界面
3-5学生信息删除界面
工作总结
通过这次课程设计,我锻炼了自己的动手能力,巩固了对面向对象程序设计概念的理解和JAVA的运用,初步掌握JAVA开发应用程序的基本方法,学习了对数据库的基本操作,能够对MicrosoftAcess的表做基本处理,提高了自己综合运用所学知识的能力。
深刻认识到了基本知识的重要性。
现在我知道了,不知道函数怎么来的,根本什么也做不了。
除非照抄别人的代码,那样也根本不可能知道功能是如何实现的。
现在很有必要加强基本语法知识的学习了。
JAVA应用性很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的不足,许多程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。
从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
其中对JAVA图像用户界面、JAVA数据库JDBC的运用、内部匿名类等JAVA知识有了更深的理解与应用。
树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。
提高了学习计算机的兴趣,增强了信心。
在本次课程设计中,我遇到了很多的困难,这些困难搞得我焦头烂额,几度试图放弃,但最终坚持着一一把困难克服掉了。
每当克服一个困难,都非常的兴奋,这些都是自己努力的结果。
现在,我有信心面对接下来的挑战,在不断的实践中锻炼自己,提高自己!
经过几个星期的设计和开发,系统基本开发完毕。
在本次课程设计中困难遇到不少,比如数据库的连接,SQL语言的书写格式,全局参数的传递等。
由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,功能不够完善等多方面问题。
在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,再到数据库设计、数据库结构实现及各功能模块的创建都需要从整体上考虑设计。
这些都有待以后进一步改进。
回顾起此次JAVA课程设计,我仍感慨颇多,学到了很多的东西。
同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。
在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。
一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。
参考文献
[1]耿祥义,张跃平.Java2实用教程(第三版)[M].北京:
清华大学出版社,2006
[2](美)霍斯特曼(Horstmann C.S.)&nbs.Java2核心技术(卷Ⅱ高级特性原书第7版)/Sun公司核心技术丛书[M].机械工业出版社,2006
全部源码(此源码不在报告中,为了看着方便,附在了后面)。
Database.java
packageStu;
importjava.sql.*;
/**
*连接数据库的类
*/
publicclassDatabase{
privateStatementstmt=null;
ResultSetrs=null;
privateConnectionconn=null;
Stringsql;
Stringstrurl="jdbc:
odbc:
scmanage";
publicDatabase(){
}
/**
*打开数据库连接
*/
publicvoidOpenConn()throwsException{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection(strurl);
}
catch(Exceptione){
System.err.println("OpenConn:
"+e.getMessage());
}
}
/**
*执行SQL查询语句,返回结果集RS
*/
publicResultSetexecuteQuery(Stringsql){
stmt=null;
rs=null;
try{
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
catch(SQLExceptione){
System.err.println("executeQuery:
"+e.getMessage());
}
returnrs;
}
/**
*执行SQL更新语句
*/
publicvoidexecuteUpdate(Stringsql){
stmt=null;
rs=null;
try{
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
stmt.executeQuery(sql);
mit();
}
catch(SQLExceptione){
System.err.println("executeUpdate:
"+e.getMessage());
}
}
publicvoidcloseStmt(){
try{
stmt.close();
}
catch(SQLExceptione){
System.err.println("closeStmt:
"+e.getMessage());
}
}
/**
*关闭数据库连接
*/
publicvoidcloseConn(){
try{
conn.close();
}
catch(SQLExceptionex){
System.err.println("aq.closeConn:
"+ex.getMessage());
}
}
/*
*转换编码
*/
publicstaticStringtoGBK(Stringstr){
try{
if(str==null)
str="";
else
str=newString(str.getBytes("ISO-8859-1"),"GBK");
}
catch(Exceptione){System.out.println(e);}
returnstr;
}
}
DeleteStudent.java
packageStu;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassDeleteStudentextendsJPanelimplementsActionListener{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
/**
*删除界面
*/
StuBeanqueryStu=newStuBean();
StuBeandelStu=newStuBean();
JTextFieldSnum,Sname,Smajor,Sgrade,Sbirth;
JRadioButtonboy,girl;
JButtondel;
ButtonGroupgroup=null;
publicDeleteStudent(){
Snum=newJTextField(20);
del=newJButton("删除");
Snum.addActionListener(this);
del.addActionListener(this);
Sname=newJTextField(20);
Sname.setEditable(false);
Smajor=newJTextField(20);
Smajor.setEditable(false);
Sgrade=newJTextField(20);
Sgrade.setEditable(false);
Sbirth=newJTextField(20);
Sbirth.setEditable(false);
group=newButtonGroup();
boy=newJRadioButton("男",false);
girl=newJRadioButton("女",false);
group.add(boy);
group.add(girl);
Boxbox0=Box.createHorizontalBox();
JLabellabel=newJLabel("学生信息删除",JLabel.CENTER);
label.setFont(newFont("黑体",Font.BOLD,25));
box0.add(label);
Boxbox1=Box.createHorizontalBox();
box1.add(newJLabel("学号:
",JLabel.CENTER));
box1.add(Snum);
box1.add(del);
Boxbox2=Box.createHorizontalBox();
box2.add(newJLabel("姓名:
",JLabel.CENTER));
box2.add(Sname);
Boxbox3=Box.createHorizontalBox();
box3.add(newJLabel("性别:
",JLabel.CENTER));
box3.add(boy);
box3.add(girl);
Boxbox4=Box.createHorizontalBox();
box4.add(newJLabel("专业:
",JLabel.CENTER));
box4.add(Smajor);
Boxbox5=Box.createHorizontalBox();
box5.add(newJLabel("年级:
",JLabel.CENTER));
box5.add(Sgrade);
Boxbox6=Box.createHorizontalBox();
box6.add(newJLabel("出生:
",JLabel.CENTER));
box6.add(Sbirth);
BoxboxH=Box.createVerticalBox();
boxH.add(box0);
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box4);
boxH.add(box5);
boxH.add(box6);
boxH.add(Box.createVerticalGlue());
JPanelmessPanel=newJPanel();
messPanel.add(boxH);
messPanel.setBackground(Color.YELLOW);
setLayout(newBorderLayout());
add(messPanel,BorderLayout.CENTER);
validate();
setVisible(true);
}
//处理事件
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==del||e.getSource()==Snum){
Stringnumber="";
number=Snum.getText();
Stringrs[]=newString[4];
rs=queryStu.stuSearch(number);
if(rs!
=null){
Stringq="该生信息已存在,您想删除该生的基本信息吗?
";
intyes=JOptionPane.showConfirmDialog(this,q,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 课程设计 报告 学生 信息管理 系统 全部 源码