资源描述
学生学籍管理系统.doc
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
焦作大学信息工程学院
《Java实训》报告
题目: 学生学籍管理系统
班级: 网络三班
姓名:
学号: 100302317
年 月 日
一:需求分析
功能需求
学生学籍管理系统分为学生信息管理、学生成绩管理、考试管理和用户管理四个功能模块。
(1)学生信息管理模块主要是对学生信息(如学号、姓名、性别、家庭住址等)进行管
理。本模块又分为三个子模块:
◇学生信息录入
◇学生信息查询
◇学生信息修改/删除
其中,学生信息查询不需登录即可使用,信息录入和修改/删除模块则需要先登录后才能使用。
(2)学生成绩管理模块主要是对学生成绩进行管理.本模块又分为五个子模块:
◇学生成绩录入
◇学生成绩查询
◇学生成绩修改/删除
◇计算总分与排名
◇目标分管理
◇毕业管理
其中,学生成绩查询不需登录即可使用,其他模块则需要先登录后才能使用.
(3)考试管理模块主要对考试进行如下管理:
◇添加新考试
◇对已有的考试信息进行修改/删除
◇对考试科目进行添加/删除
本模块需要先登录后才能使用。
(4)用户管理模块主要对使用本系统的用户进行如下管理:
◇添加新用户
◇对已有的用户进行更改用户名、密码和权限(管理员或普通用户)等操作
◇删除用户
本模块只有管理员才能使用,普通用户不能进入。
系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等;
二 需求分析
在开发学生学籍管理系统之前,首先要知道所要开发的系统要实现那些功能,是针对学生的系统还是针对管理员的系统,并且要清楚不同级别的用户具有什么样的功能,实现什么样的界面.当明确了这些,项目开发的思路就清晰了,然后再对网络上别的学生学籍管理系统进行考察、分析,从中吸取经验,并结合本系统的要求以及实际的管理情况,设计出一个合理的学生学籍管理系统。本系统需要如下:
Ø 系统设计界面要求整洁,美观大方,能够展现各个功能。
Ø 系统首页具有banner界面,起到耳目一新的印象。
Ø 设计主要是面向管理员和学生,为他们解决查询,修改,删除等操作问题.
Ø 系统运行稳定,安全可靠。
Ø 要求对学生基本信息进行严格管理。
2。1开发环境
在开发学生学籍管理系统时,该项目使用的软件开发环境如下:
Ø 操作系统:Windown XP
Ø 数据库:SQL Server2005
Ø 开发工具:java
三 系统功能结构
学生学籍管理系统功能结构:
学生学籍管理系统
管理员
学生
查询基本信息
询
基
本
信
息
修改基本信息
删除基本信息
打印
录入基本信息
退出
SQL语句查询
查询个人信息
注册
四 设计思路
为了能够清晰的学习,下面给出学生学籍管理系统的系统流程图:
五 详细设计
本系统主要是按不同的功能而设计的类,每个类都实现不同的功能,也存在着不同类之间的调用,不要调用如下:
if(e。getSource()==query){
Find find=new Find();
find.setVisible(true);
this.setVisible(false);
}
if(e。getSource()==exit){
System。exit(0);
}
if(e.getSource()==insert){
Insert insert = new Insert();
insert。setVisible(true);
this.setVisible(false);
}
if(e。getSource()==insertcource){
Insertcource insertcource = new Insertcource();
insertcource。setVisible(true);
this.setVisible(false);
}
if(e。getSource()==delete){
Delete delete = new Delete();
delete.setVisible(true);
this。setVisible(false);
}
if(e。getSource()==deletecource){
Deletecource deletecource = new Deletecource();
deletecource.setVisible(true);
this.setVisible(false);
}
if(e。getSource()==update){
Update update = new Update();
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来连接的,如下所示:
String sql ="select * from Student ”;
try {
Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:selection");
Statement stmt = con。createStatement();
ResultSet rs=stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns=rsmd。getColumnCount();
while(rs。next()) {
Vector newRow=new Vector();
int n=1;
while(n<=numberOfColumns) {
newRow。addElement(rs.getString(n));
n++;
}
model。addRow(newRow);
}
rs。close();
stmt。close();
}
catch(Exception e) {
e。printStackTrace();
}
查询学生基本信息功能的代码如下:
public class Find extends JFrame implements ActionListener{
private JLabel jl;
private JTextField jtf;
private JButton jb1;
private DefaultTableModel model;
private JTable jt;
private JComboBox jcb;
private String[] columnNames = {"学号",”姓名”,"性别”,”专业","年级”,"年龄”,"宿舍",”电话”};
private int row ;
private String[] boxstr = {”学号”,”姓名",”性别”,"专业","年级","年龄”,"宿舍"};
Adminmain parents1 = new Adminmain();
public Find(){
super("查询学生信息");
this。setSize(460,400);
this。setLocation(350,250);
Container c = this.getContentPane();
c.setLayout(new FlowLayout());
jl = new JLabel("请输入关键词及选择类型");
this。add(jl);
jtf = new JTextField(15);
this。add(jtf);
jcb = new JComboBox(boxstr);
this。add(jcb);
jb1 = new JButton("查询");
jb1.addActionListener(this);
this.add(jb1);
model = new DefaultTableModel(columnNames,row);
jt = new JTable(model);
this.add(jt);
JScrollPane tablePane = new JScrollPane(jt);
c。add(tablePane);
jt。setEnabled(false);
this.setVisible(true);
parents1。setVisible(false);
this.setResizable(false);
this。addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
shutdown();
}
});
public static void main(String[] args) {
new Find();
}
public void shutdown(){
parents1.setVisible(true);
this。dispose();
}
public void actionPerformed(ActionEvent arg0) {
String sql =" select * from Student where ”+ jcb.getSelectedItem()+ "= '”+ jtf。getText() +”’ ”;
try
{
Class.forName (”sun。jdbc。odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException ce)
{
System.out。println("SOLException:"+ ce。getMessage());
}
try
{
Connection con = DriverManager。getConnection("jdbc:odbc:selection”);
Statement stmt = con。createStatement();
ResultSet rs = stmt。executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns=rsmd.getColumnCount();
while (rs。next())
{
Vector newRow=new Vector();
int c=1;
while(c<=numberOfColumns)
{
newRow.addElement(rs.getString(c));
c++;
}
model.addRow(newRow);
}
this。repaint();
jtf。setText(”");
rs。close();
stmt。close();
}
catch(SQLException e)
{
System。out。println("SQLException:" + e.getMessage());
}
}
}
其他的各个不同功能的实现这就不一一列举,基本上原理都是差不多的.只是SQL语句不同罢了.
六、运行调试与分析讨论
Ø 首先进入登陆窗口,用用户名为admin,密码为admin登陆进入管理员页面如下:
Ø 从菜单栏中选择查询学生信息,进入查询页面,你可以从下拉选项中选择查询类别,然后点击查询,如下所示:
Ø 从菜单栏中选择修改学生信息,进入修改页面,首先根据你修改的学号而进入此学生的详细信息页面中,你可以直接修改此人的信息,然后点击确定,修改后的信息制动保存在数据库中,如下所示:
Ø 从菜单栏中选择删除学生信息,进入删除页面,从下拉选项中你按什么类型删除学生,输入正确则返回删除成功!如下所示:
Ø 从菜单栏中选择添加学生信息,进入添加页面,按着要求认真填写学生信息,如果填写错误将会返回错误提示,之后按下添加,则自动添加到数据库中去,如下所示:
Ø 从菜单栏中选择打印学生信息,进入打印页面,如下所示:
² 在登陆窗口中单击注册,进入注册页面,在这里注册你登陆的用户名和密码,但是用户名必须是学号,而且在学生信息数据库中才可以注册,否则返回失败,如下所示:
² 在登陆窗口中,用你注册的用户名和密码登陆,将会进入学生页面,学生可以完善自己的基本信息,还可以浏览自己的信息,以及在SQL里面输入语句,可以实现各种操作,如下所示:
² 到此学生学籍管理系统的基本功能都是说明,具体功
能有你自己来操作!
七 用户手册
本程序运行环境为JDK1。6。0,可在windows2000/windows XP下运行。
为了发布应用程序,我把本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信息系统设计与开发实例 (机械工业出版社)
第 26 页
第 27 页
展开阅读全文