学生学籍管理系统docWord格式文档下载.docx
《学生学籍管理系统docWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统docWord格式文档下载.docx(19页珍藏版)》请在冰点文库上搜索。
◇学生成绩查询
◇学生成绩修改/删除
◇计算总分与排名
◇目标分管理
◇毕业管理
其中,学生成绩查询不需登录即可使用,其他模块则需要先登录后才能使用。
(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);
if(e.getSource()==delete){
Deletedelete=newDelete();
delete.setVisible(true);
if(e.getSource()==deletecource){
Deletecourcedeletecource=newDeletecource();
deletecource.setVisible(true);
if(e.getSource()==update){
Updateupdate=newUpdate();
update.setVisible(true);
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("
catch(ClassNotFoundExceptionce)
{
System.out.println("
SOLException:
+ce.getMessage());
try
Connectioncon=DriverManager.getConnection("
ResultSetrs=stmt.executeQuery(sql);
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)
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信息系统设计与开发实例(机械工业出版社)