Java程序设计课程设计报告之学生信息管理系统附全部源码Word格式.docx
《Java程序设计课程设计报告之学生信息管理系统附全部源码Word格式.docx》由会员分享,可在线阅读,更多相关《Java程序设计课程设计报告之学生信息管理系统附全部源码Word格式.docx(52页珍藏版)》请在冰豆网上搜索。
![Java程序设计课程设计报告之学生信息管理系统附全部源码Word格式.docx](https://file1.bdocx.com/fileroot1/2023-2/4/2eb3e68c-553e-4796-9037-6684a828b96a/2eb3e68c-553e-4796-9037-6684a828b96a1.gif)
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
执行SQL查询语句,返回结果集RS
返回ResultSet类型结果集
executeUpdate
执行SQL更新语句
closeStmt
关闭当前的Statement对象
closeConn
关闭数据库连接
(3)源代码见文件Database、java
2、3类StuBean
(1)成员变量见表2-5
表2-5主要成员变量
字符串(SQL语句数据库属性)
sqlsNumsNamesSexsMajorsGradesBirth
DB
stuAdd
添加学生信息
stuModify
修改学生信息
stuDel
删除学生信息
stuSearch
String[]
根据学号查询学生信息
(3)源代码见文件StuBean、java
2、4类InputStudent
StuBean对象类型
StuBean
addStuqueryStu
文本域
JTextField
SnumSnameSgradeSbirth
组合框
JComboBox
Smajor
单选框
ButtonGroup
boy,girl
按钮多斥作用域
group
按钮
JButton
Entryreset
创建录入学生信息界面
clearMess
清除文本框内容
(3)源代码见文件InputStudent、java
2、5类ModifyStudent
modifyStuqueryStu
entryresetstart
创建修改学生信息界面
(3)源代码见文件Modify、java
2、6类QueryStudent
queryStu
SnumSnameSgradeSbirthSmajor
启动并执行打印作业
PrintJob
pri
quertprint
面板(查询结果之后)
JPanel
messPanel
(3)源代码见文件QueryStudent、java
2、7类DeleteStudent
delStuqueryStu
del
(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;
stmt=conn、createStatement(ResultSet、TYPE_SCROLL_INSENSITIVE,ResultSet、CONCUR_READ_ONLY);
rs=stmt、executeQuery(sql);
catch(SQLExceptione){
executeQuery:
returnrs;
*执行SQL更新语句
publicvoidexecuteUpdate(Stringsql){
stmt=null;
stmt、executeQuery(sql);
conn、commit();
executeUpdate:
publicvoidcloseStmt(){
stmt、close();
closeStmt:
*关闭数据库连接
publicvoidcloseConn(){
conn、close();
catch(SQLExceptionex){
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
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("
女"
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("
姓名:
box2、add(Sname);
Boxbox3=Box、createHorizontalBox();
box3、add(newJLabel("
性别:
box3、add(boy);
box3、add(girl);
Boxbox4=Box、createHorizontalBox();
box4、add(newJLabel("
专业:
box4、add(Smajor);
Boxbox5=Box、createHorizontalBox();
box5、add(newJLabel("
年级:
box5、add(Sgrade);
Boxbox6=Box、createHorizontalBox();
box6、add(newJLabel("
出生:
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、QUESTION_MESSAGE);
if(yes==JOptionPane、YES_OPTION){
S