学生学籍管理系统doc.docx
《学生学籍管理系统doc.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统doc.docx(19页珍藏版)》请在冰豆网上搜索。
学生学籍管理系统doc
焦作大学信息工程学院
《Java实训》报告
题目:
学生学籍管理系统
班级:
网络三班
姓名:
学号:
*********
年月日
一:
需求分析
功能需求
学生学籍管理系统分为学生信息管理、学生成绩管理、考试管理和用户管理四个功能模块。
(1)学生信息管理模块主要是对学生信息(如学号、姓名、性别、家庭住址等)进行管
理。
本模块又分为三个子模块:
◇学生信息录入
◇学生信息查询
◇学生信息修改/删除
其中,学生信息查询不需登录即可使用,信息录入和修改/删除模块则需要先登录后才能使用。
(2)学生成绩管理模块主要是对学生成绩进行管理。
本模块又分为五个子模块:
◇学生成绩录入
◇学生成绩查询
◇学生成绩修改/删除
◇计算总分与排名
◇目标分管理
◇毕业管理
其中,学生成绩查询不需登录即可使用,其他模块则需要先登录后才能使用。
(3)考试管理模块主要对考试进行如下管理:
◇添加新考试
◇对已有的考试信息进行修改/删除
◇对考试科目进行添加/删除
本模块需要先登录后才能使用。
(4)用户管理模块主要对使用本系统的用户进行如下管理:
◇添加新用户
◇对已有的用户进行更改用户名、密码和权限(管理员或普通用户)等操作
◇删除用户
本模块只有管理员才能使用,普通用户不能进入。
系统维护:
如数据安全管理(含备份与恢复)、操作员管理、权限设置等;
二需求分析
在开发学生学籍管理系统之前,首先要知道所要开发的系统要实现那些功能,是针对学生的系统还是针对管理员的系统,并且要清楚不同级别的用户具有什么样的功能,实现什么样的界面。
当明确了这些,项目开发的思路就清晰了,然后再对网络上别的学生学籍管理系统进行考察、分析,从中吸取经验,并结合本系统的要求以及实际的管理情况,设计出一个合理的学生学籍管理系统。
本系统需要如下:
Ø系统设计界面要求整洁,美观大方,能够展现各个功能。
Ø系统首页具有banner界面,起到耳目一新的印象。
Ø设计主要是面向管理员和学生,为他们解决查询,修改,删除等操作问题。
Ø系统运行稳定,安全可靠。
Ø要求对学生基本信息进行严格管理。
2.1开发环境
在开发学生学籍管理系统时,该项目使用的软件开发环境如下:
Ø操作系统:
WindownXP
Ø数据库:
SQLServer2005
Ø开发工具:
java
三系统功能结构
学生学籍管理系统功能结构:
四设计思路
为了能够清晰的学习,下面给出学生学籍管理系统的系统流程图:
五详细设计
本系统主要是按不同的功能而设计的类,每个类都实现不同的功能,也存在着不同类之间的调用,不要调用如下:
if(e.getSource()==query){
Findfind=newFind();
find.setVisible(true);
this.setVisible(false);
}
if(e.getSource()==exit){
System.exit(0);
}
if(e.getSource()==insert){
Insertinsert=newInsert();
insert.setVisible(true);
this.setVisible(false);
}
if(e.getSource()==insertcource){
Insertcourceinsertcource=newInsertcource();
insertcource.setVisible(true);
this.setVisible(false);
}
if(e.getSource()==delete){
Deletedelete=newDelete();
delete.setVisible(true);
this.setVisible(false);
}
if(e.getSource()==deletecource){
Deletecourcedeletecource=newDeletecource();
deletecource.setVisible(true);
this.setVisible(false);
}
if(e.getSource()==update){
Updateupdate=newUpdate();
update.setVisible(true);
this.setVisible(false);
}
if(e.getSource()==print){
p=getToolkit().getPrintJob(this,"OK",null);
g=p.getGraphics();
g.translate(120,200);
jt.paintAll(g);
g.dispose();
p.end();
}
if(e.getSource()==hp){
JOptionPane.showMessageDialog(this,"月上飞鸢制作,谢谢!
","帮助",JOptionPane.PLAIN_MESSAGE);
}
}
数据库的连接主要是通过JDBC来连接的,如下所示:
Stringsql="select*fromStudent";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioncon=DriverManager.getConnection("jdbc:
odbc:
selection");
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery(sql);
ResultSetMetaDatarsmd=rs.getMetaData();
intnumberOfColumns=rsmd.getColumnCount();
while(rs.next()){
VectornewRow=newVector();
intn=1;
while(n<=numberOfColumns){
newRow.addElement(rs.getString(n));
n++;
}
model.addRow(newRow);
}
rs.close();
stmt.close();
}
catch(Exceptione){
e.printStackTrace();
}
查询学生基本信息功能的代码如下:
publicclassFindextendsJFrameimplementsActionListener{
privateJLabeljl;
privateJTextFieldjtf;
privateJButtonjb1;
privateDefaultTableModelmodel;
privateJTablejt;
privateJComboBoxjcb;
privateString[]columnNames={"学号","姓名","性别","专业","年级","年龄","宿舍","电话"};
privateintrow;
privateString[]boxstr={"学号","姓名","性别","专业","年级","年龄","宿舍"};
Adminmainparents1=newAdminmain();
publicFind(){
super("查询学生信息");
this.setSize(460,400);
this.setLocation(350,250);
Containerc=this.getContentPane();
c.setLayout(newFlowLayout());
jl=newJLabel("请输入关键词及选择类型");
this.add(jl);
jtf=newJTextField(15);
this.add(jtf);
jcb=newJComboBox(boxstr);
this.add(jcb);
jb1=newJButton("查询");
jb1.addActionListener(this);
this.add(jb1);
model=newDefaultTableModel(columnNames,row);
jt=newJTable(model);
this.add(jt);
JScrollPanetablePane=newJScrollPane(jt);
c.add(tablePane);
jt.setEnabled(false);
this.setVisible(true);
parents1.setVisible(false);
this.setResizable(false);
this.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEventevent){
shutdown();
}
});
publicstaticvoidmain(String[]args){
newFind();
}
publicvoidshutdown(){
parents1.setVisible(true);
this.dispose();
}
publicvoidactionPerformed(ActionEventarg0){
Stringsql="select*fromStudentwhere"+jcb.getSelectedItem()+"='"+jtf.getText()+"'";
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundExceptionce)
{
System.out.println("SOLException:
"+ce.getMessage());
}
try
{
Connectioncon=DriverManager.getConnection("jdbc:
odbc:
selection");
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery(sql);
ResultSetMetaDatarsmd=rs.getMetaData();
intnumberOfColumns=rsmd.getColumnCount();
while(rs.next())
{
VectornewRow=newVector();
intc=1;
while(c<=numberOfColumns)
{
newRow.addElement(rs.getString(c));
c++;
}
model.addRow(newRow);
}
this.repaint();
jtf.setText("");
rs.close();
stmt.close();
}
catch(SQLExceptione)
{
System.out.println("SQLException:
"+e.getMessage());
}
}
}
其他的各个不同功能的实现这就不一一列举,基本上原理都是差不多的。
只是SQL语句不同罢了。
六、运行调试与分析讨论
Ø首先进入登陆窗口,用用户名为admin,密码为admin登陆进入管理员页面如下:
Ø从菜单栏中选择查询学生信息,进入查询页面,你可以从下拉选项中选择查询类别,然后点击查询,如下所示:
Ø从菜单栏中选择修改学生信息,进入修改页面,首先根据你修改的学号而进入此学生的详细信息页面中,你可以直接修改此人的信息,然后点击确定,修改后的信息制动保存在数据库中,如下所示:
Ø从菜单栏中选择删除学生信息,进入删除页面,从下拉选项中你按什么类型删除学生,输入正确则返回删除成功!
如下所示:
Ø从菜单栏中选择添加学生信息,进入添加页面,按着要求认真填写学生信息,如果填写错误将会返回错误提示,之后按下添加,则自动添加到数据库中去,如下所示:
Ø从菜单栏中选择打印学生信息,进入打印页面,如下所示:
✧在登陆窗口中单击注册,进入注册页面,在这里注册你登陆的用户名和密码,但是用户名必须是学号,而且在学生信息数据库中才可以注册,否则返回失败,如下所示:
✧在登陆窗口中,用你注册的用户名和密码登陆,将会进入学生页面,学生可以完善自己的基本信息,还可以浏览自己的信息,以及在SQL里面输入语句,可以实现各种操作,如下所示:
✧到此学生学籍管理系统的基本功能都是说明,具体功
能有你自己来操作!
七用户手册
本程序运行环境为JDK1.6.0,可在windows2000/windowsXP下运行。
为了发布应用程序,我把本JAVA应用程序中涉及到的类文件压缩成一个JAR文件,名为StudentManager.jar,现在只要将StudentManager.jar文件拷贝到任何一个安装了JAVA运行环境(版本应为1.6.0及以上)的计算机上,双击鼠标就可以运行JAVA应用程序了。
但如果计算机上安装了中文版的WinRAR解压缩软件并将该JAR文件与压缩软件做了关联,WinRAR解压缩软件会自动运行进行解压缩操作,使的JAVA程序无法运行。
因此,创建了一个StudentManager.bat的批处理文件。
所以,只要双击这个批处理文件就可以直接运行本程序了,省去了每次运行程序都要运行JDK软件的麻烦。
八测试结果及问题分析
本程序为一简单的班级管理系统,功能比较单一,但是基本功能还是实现了,能够对学生基本资料的录入,修改,删除以及查询。
由于java程序对各变量的大小写要求比较严格,所以在程序调试阶段花了不少时间,而且程序的运行环境为JDK1.6.0,图形界面的输出要编写大量的代码实现。
如果在编程环境为NetBeans或JBuilder等,可能会比较简洁一点。
九设计体会与小结
这次JAVA课程设计中间遇到很多的问题,我通过书籍和从网上收集资料,虽然功能不是很齐全,但是我已经尽里去写了,把我这学期学到的全部都用了上去!
在开发的过程当中遇到函数的调用,感觉自己对这方面很陌生,不知道调用的过程和原理,所以就大量的看别人的程序,为此,我买了JAVA项目开发全称实录来学习别人的思想和具体的过程!
通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。
这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。
它还让我学会了在网上查阅那些无限的资料。
十参考书籍
1.java面向对象程序设计(清华大学出版社)
2.java课程设计(清华大学出版社)
3.java信息系统设计与开发实例(机械工业出版社)