Java提高型实验报告fei.docx
《Java提高型实验报告fei.docx》由会员分享,可在线阅读,更多相关《Java提高型实验报告fei.docx(12页珍藏版)》请在冰点文库上搜索。
![Java提高型实验报告fei.docx](https://file1.bingdoc.com/fileroot1/2023-6/26/75298a0f-f3b5-4b7c-a85e-d9fd7f9a45d8/75298a0f-f3b5-4b7c-a85e-d9fd7f9a45d81.gif)
Java提高型实验报告fei
黄冈师范学院
提高型实验报告
实验课题
简易学籍管理系统
(实验类型:
■综合性□设计性□应用性)
实验课程
面向对象程序设计
实验时间
2008.12.20
专业班级
学号
姓名
学号
姓名
成绩
一、
实验目的和要求
实验目的:
1、巩固java的基础知识,主要是文件流、数据库操作、GUI和GUI事件处理等知识点。
2、熟悉面向对象程序设计思想和实践。
实验要求:
简单的学生基本信息管理模块,主要功能有:
。
1、用户的注册和登陆。
注册时需判断某些必须的字段及用户名重名的判断。
需要在数据库里面预先添加用户信息表user。
2、数据导入功能。
将文本文件的学生信息导入到数据库的student表中,导入的时候需要有追加记录和删除原记录的选项。
数据导入完毕后在现实界面显示最新导入的数据。
3、学生信息的增加、删除和修改、查询功能。
4、添加日志查看功能。
主要查看用户的增加、修改和删除功能。
包括用户名、操作(增加、删除、修改)、操作时间等信息。
二、实验条件
1、一台内存内存至少为256M的个人计算机;
2、操作环境为WindowsNT2000或者XP;
3、用于工作站和个人计算机的标准开发包J2SE;
三、实验原理分析
一个高校由若干个院或系组成,每个院或系由不同的专业组成,每个专业按学生的入学时间可以分为若干届,每届有若干班级,每个班级有若干学生。
在每个学期,学生需要学习该学期的若干必修课程,学生也可以选修其他课程,每门课程在学期结束后都有一个相应的成绩。
学生信息管理系统作为信息管理系统的一个分支,已逐渐成为学校信息化建设的重要组成部分,为学校管理全校的院系班级和学生提供了一个功能强大、安装部署方便、使用成本低、操作简捷的学生信息管理系统,不仅能够提高工作的效益,也为最终实现有效的“无纸化办公”和更加广泛的“电子事务”奠定了基础。
此系统通过对用户可视化界面的操作来达到操作数据的目的,从而更新数据库的信息,用户可以通过操作界面实现对数据的增加、删除、学生学籍的变更及注册和删除等功能。
四、实验方案或步骤
1、系统模块的划分以及需要用到的关键技术
模块的划分:
1)用户的注册。
2)用户的登录。
3)学生信息的录入和管理,如添加、删除、修改和查询等。
4)日志记录的添加和删除。
关键技术
1)文本数据的操作。
2)数据库表的建立。
3)数据库与Java文件的连接。
4)SQL语言的应用。
5)Swing组件和Awt组件的应用。
2、对用户的注册登录系统进行建立
登录系统包括用户的帐户和密码等。
待用户确认后,将其添加到数据库的login表中。
用户登录界面如下:
用户的注册界面如下:
在数据库中已经建立一个与用户界面对应的用户信息表login,用于存储用户的信息,此表应具有的属性有用户帐户和用户密码以及登录身份等基本信息。
3、学生信息的录入和管理
1)学生信息的录入
学生信息的录入即数据库数据的初始化和可视化界面的初始化是根据文本文件中的数据导入的,所使用的关键技术是文件的读入流和SQL数据库操作语言。
publicvoidfillTable(Stringsql,JTabletable)
{
if(sql==null||table==null)
return;
ResultSetrs=sqlDatabase.getResult(sql);
DefaultTableModelmodel=(DefaultTableModel)table.getModel();
//清除所有的记录
model.setRowCount(0);
if(rs==null)
return;
//遍历查询结果,然后讲每条记录添加到表格中
try
{
while(rs.next())
{
Integerid=Integer.valueOf(rs.getInt("ID"));
Stringname=rs.getString("NAME");
Stringsn=rs.getString("SN");
Stringgender=rs.getString("GENDER");
Stringclassname=rs.getString("CLASSNAME");
model.addRow(newObject[]{id,name,sn,gender,classname});
}
}
catch(SQLExceptione)
{
e.printStackTrace();
return;
}
}
/**更新学生信息,包括增加、删除和修改
*@paramsql更新语句
*@paramframe更新学生信息后需要刷新的界面
***/
publicvoidupdateStudent(StudentWinframe,Stringsql)
{
introwscount=sqlDatabase.executeSql(sql);
if(rowscount==0)
{
JOptionPane.showMessageDialog(frame,"数据更新失败!
");
return;
}
JOptionPane.showMessageDialog(frame,"数据更新成功!
");
frame.fill("select*fromstudent");
}
}
2).学生信息查询,主要是通过调用数据库中的数据和操作SQL语言来达到查询结果,在数据库学生表中学生的属性应有学号、姓名、班级、性别。
其主要代码如下:
privatevoidquery()
{StudentWinwin=(StudentWin)this.getParent();
Stringsql="select*fromstudent";
Stringconditon="";
//根据用户输入,拼凑where条件
if(jTextname.getText().trim().length()!
=0)
{if(conditon.length()==0)
{conditon+="where";}
else
{conditon+="and";}
conditon+="namelike'%"+jTextname.getText().trim()+"%'";}
if(jTextSn.getText().trim().length()!
=0)
{if(conditon.length()==0)
{conditon+="where";}
else
{conditon+="and";}
conditon+="snlike'%"+jTextSn.getText().trim()+"%'";}
if(jCmbClass.getSelectedIndex()>0)
{if(conditon.length()==0)
{conditon+="where";}
else
{conditon+="and";}
conditon+="CLASSNAMElike'%"+jCmbClass.getSelectedItem().toString().trim()+"%'";
}
if(jCmbGender.getSelectedIndex()>0)
{if(conditon.length()==0)
{conditon+="where";}
else
{conditon+="and";}
conditon+="GENDERlike'%"+jCmbGender.getSelectedItem().toString().trim()+"%'";}
//调研StudentWin的fill方法查询填充表格
win.fill(sql+conditon);
closeWin();}
2)学生信息的添加,其所用到的关键技术仍然是对数据库学生表的操作及SQL语言的应用。
其主要代码如下:
privatevoidadd()
{StudentWinwin=(StudentWin)this.getParent();
Stringsql="insertintostudent(NAME,SN,GENDER,CLASSNAME)values(";
if(jTextname.getText().trim().length()==0)
{JOptionPane.showMessageDialog(this,"名称不能为空!
");
return;}
if(jTextSn.getText().trim().length()==0)
{JOptionPane.showMessageDialog(this,"学号不能为空!
");
return;}
//根据用户输入拼凑sql语句
sql+="'"+jTextname.getText().trim()+"',";
sql+="'"+jTextSn.getText().trim()+"',";
sql+="'"+jCmbGender.getSelectedItem().toString().trim()+"',";
sql+="'"+jCmbClass.getSelectedItem().toString().trim()+"')";
//调用StudentWin窗体的updateStudent方法更新
win.updateStudent(sql);
closeWin();}
4)学生信息的删除,其所用到的关键技术仍然是对数据库学生表的操作及SQL语言的应用。
其主要代码如下:
publicvoiddeleteStudent()
{if(jTable.getSelectedRowCount()==0)
{JOptionPane.showMessageDialog(this,"请先选择要删除的行");
return;}
//获取第一行的选中学生的ID信息
int[]selectRows=jTable.getSelectedRows();
StringstrIds="";
for(inti=0;i{intindex=selectRows[i];
strIds+=tableModel.getValueAt(index,0).toString()+",";
}
strIds=strIds.substring(0,strIds.length()-1);
Stringsql="deletefromstudentwhereidin("+strIds+")";
stuManager.updateStudent(this,sql);}
5)用户日志的添加与删除,其所用到的关键技术是对文件的读写以及删除等。
其界面如下:
其功能就是将自己的感受以及心得写入文本中,可以保存,也可以删除!
五、实验结果与分析
用户登录进去后的初始化界面如图所示:
用户进来都直接在此界面上操作;
其中添加界面如图所示:
查询界面如图所示:
删除的界面就在主界面中。
当要删除时,点击你想要删除的学生信息并按删除键进行删除。
如果没有选择一行,程序会提醒你学则要删除的学生。
修改的界面也在主界面中。
当要修改时,点击你想要修改的学生信息哪一行,并进行修改想要修改的信息,然后点击修改按钮进行修改。
如果没有选择某一行学生,程序将会报错。
六、讨论
1得到效果并不令人十分满意,界面并非友好人性化;
2查询效果不明显,例如数据缺乏关联。
3没有设置超级管理员功能,对数据无法进行修改和调整。
4保密安全性能差等这一切都是我们需要完善和求精的.
5不过在此合作中还是基本达到了预先的要求.,这也非常难得的!
七、教师评语与实验成绩
实验成绩
教师签名
日期