学生学籍管理系统设计与实现.docx

上传人:b****6 文档编号:8421041 上传时间:2023-01-31 格式:DOCX 页数:22 大小:186KB
下载 相关 举报
学生学籍管理系统设计与实现.docx_第1页
第1页 / 共22页
学生学籍管理系统设计与实现.docx_第2页
第2页 / 共22页
学生学籍管理系统设计与实现.docx_第3页
第3页 / 共22页
学生学籍管理系统设计与实现.docx_第4页
第4页 / 共22页
学生学籍管理系统设计与实现.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

学生学籍管理系统设计与实现.docx

《学生学籍管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统设计与实现.docx(22页珍藏版)》请在冰豆网上搜索。

学生学籍管理系统设计与实现.docx

学生学籍管理系统设计与实现

数据库系统课程设计报告

题目学生学籍管理系统的设计与实现

学生姓名高 凯

学号***********

学院计算机与软件学院

专业 网络工程

指导教师 马瑞

二O一五年月日

2系统需求分析及相关技术介绍1

2.1系统需求分析1

2.2系统的可行性分析2

3总体设计2

3.1系统模块设计2

3.2数据库设计3

3.2.1数据库逻辑结构设计3

3.2.2数据库物理结构设计3

4系统实现4

4.1系统功能结构5

4.1.1功能模块说明5

4.1.2功能设计与介绍...............................................5

4.2具体功能介绍5

4.2.1登陆界面.....................................................6

4.2.2主功能界面...................................................7

5主要程序代码及说明..............................................14

6课题总结.......................................................19

参考文献.......................................................19

学生学籍管理系统的设计和实现

1引言

  当今社会中,计算机的使用已经深入到日常工作和生活的方方面面。

电脑早早从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。

然而,虽然现在世界上已经充满了各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。

我们都知道,对于学生的学籍管理是一个教育单位不可缺少的部分,它的内容对学校的管理者来说至关重要。

所以学生学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如效率低、保密性差;另外,时间一长将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

而使用计算机对学生学籍信息进行管理具有手工管理所无法比拟的优点,例如检索迅速、查找方便、存储量大、保密性好等等。

这些优点能够极大地提高学生管理的效率,也是学校科学化、正规化管理的重要途径。

1.1开发背景和意义

长期以来,学校对学生学籍的管理都还使用着传统的模式。

在此模式下,人工的记录学生信息、考试信息等等。

而随着现代素质教育与时代的不断发展,这样的模式已经不能完全适应现代的教育形势。

较之传统的管理方式,我所设计的学生学籍管理系统的优势有:

一方面可以实现数据共享,不但像使用单机系统一样,进行便捷地各种数据的添加、修改、删除、查询和统计等操作,并且具有相当的安全性和可靠性;另一方面,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高学生学籍管理的效率,也是学校的科学化、正规化管理与社会接轨的重要条件。

2系统需求分析和可行性分析

2.1系统需求分析

学生学籍管理系统是基于学校的工作需求而设定,围绕这一工作需求,根据高校人员结构分析,在项目开发前期的需求分析工程中,学生学籍管理系统的应用应包括系统设置、学生信息管理、学生成绩管理以及系统说明等部分。

系统应具有学生学籍信息输入、删除和修改的功能,学生成绩信息亦是如此。

系统的查询功能应较为完备,不同的用户将登录到不同的主界面,进行不同的界面操作功能。

能方便地进行相应数据的简单查询和任意字段组合的复合查询,改变以前只有专门人员才能进行数据查询的情况。

系统应有学生数据安全保密措施,由于身份不同将登录到不同的主界面,高级的用户可以操作低级用户的信息,而低级用户之间互不能操作,保持了信息的安全性。

但在需要时可由系统维护人员通过添加用户并授权来设置相应权限。

在系统程序设计中应充分利用数据库服务器的处理能力,降低网络通信量,尽可能减少数据修改冲突,以最大程度地提高系统的执行速度和可靠性,真正起到提高工作效率的作用。

2.2系统可行性分析

系统可行性主要包括3个方面:

技术上的可行性、经济上的可行性和管理上的可行性。

首先,系统在技术上无论是硬件性能要求,还是软件性能要求,均可行。

其次,从开发项目的成本与效益来看,系统开发的设备费用、运行费用、培训费用并不能过大,而通过系统的实施,一方面,提高了工作效率,将带来更多的经济效益;另一方面,系统所产生的间接效益也不容忽视。

工作效率的提高可以节省人力资源,减轻了有关业务人员手工处理的工作负担,及时提供决策信息,促进业务的规范化、系统化、条理化和程序化。

最后,科学的管理是建立管理信息系统的前提。

管理人员支持本系统的研发运行,相应的管理制度改革的时机已经成熟,规章制度已经齐全,原始数据正确。

随着时代的发展,人员素质已经逐步提高,不论是对于电脑系统的基本操作还是对于系统的维护都有了一定的基础。

同时还可以配置专业的电脑维护人员来维护电脑,不必担心电脑故障问题。

3系统总体设计

系统设计的任务是确定系统的数据模式、功能结构和系统结构,确定系统支持环境、实现方法和技术。

系统设计的基本内容是:

选择数据库管理系统,建立数据模式;选择系统支持环境,包括支持系统运行的硬件和软件要求,确定系统实现功能和方法以及选择系统的基本架构和技术。

3.1系统模块设计

这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及他们之间的关系,为逻辑结构设计打下基础。

这个阶段用到的工具是E—R图(实体--联系图)。

本系统E-R图如下:

 

学生实体E-R图 

3.2数据库设计

3.2.1数据库逻辑结构设计

逻辑结构设计的主要目标是将概念结构转换为一个特定的DBMS可处理的数据模型和数据库模式。

该模型必须满足数据库的存取、一致性及运行等各方面的用户需求。

该设计以概念结构设计中的E-R图为主要依据,设计出相关的整体逻辑结构。

根据E-R图可知:

学生信息(学号,性别,姓名,班号,入校日期,出生日期,联系电话,家庭住址,备注);

3.2.2数据库物理结构设计

从一个满足用户需求的已确定的逻辑模型出发,在限定的软、硬件环境下,利用DBMS提供的各种手段设计数据库的内模式,即设计数据的存储结构和存取方法。

数据库物理结构设计是对于给定的逻辑数据模型,选择一个适合的物理结构,主要涉及存取方法与存储结构,它依赖于计算机系统。

3.2.2.1关系模式

关系数据库系统采用关系模型作为数据的组织方式,现在流行的数据库系统大都是关系数据库系统。

通过对关系模式的优化,得到一个基本表。

学生信息表

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

student_sno

varchar

50

PrimaryKey

NotNull

学号

student_sname

varchar

50

姓名

student_ssex

varchar

50

性别

borndate

varchar

50

出生日期

Classno

varchar

50

班号

Nation

varchar

50

民族

Sdept

varchar

50

所在系

address

varchar

50

地址

3.2.2.2简单物理设计

在SQLServer2014中,文件夹是按数据库对象的类型建立的,文件夹名是该数据库对象名。

当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的student数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。

要建立各个表,选择student数据库中的表,单击鼠标右键,在弹出的菜单中选择“新建表”。

程序系统设计图如下:

4系统实现

4.1系统功能结构

4.1.1功能模块说明

1.管理员登陆界面。

该界面可以输入管理员号,登陆密码。

用户通过验证通过后方可进入管理系统。

一定程度上保证了信息安全性,防止他人未经允许篡改学生信息。

2.查询学生信息。

可以选择由用户选择“显示系统中当前的所有学生信息”。

也可以选择按照“某一个学号查询该学号的学生信息”。

查询到的信息会在窗口中依次显示出来。

3.添加学生信息。

可以按照图形的界面的显示依次输入新学生的“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。

完成新纪录的添加。

4.修改学生信息。

可以选择按照“学号”或者“姓名”找到该学生的学生信息并输入要修改的属性,并输入新的数据。

完成对学生记录的修改。

5.删除学生记录。

可以根据输入的“学号”或者“姓名”进行删除的操作。

6.显示学生信息。

可以显示所有学生的信息、以供查看。

4.1.2功能设计与介绍

1.添加学生信息

2.修改学生信息

3.查询学生信息

4.删除学生信息

5.显示学生信息

6.退出管理系统

4.2具体功能介绍

首先,登录流程图如下所示:

 

其次,函数之间的调用如下图所示:

失败

 

4.2.1登陆界面

登录界面输入“姓名”和“密码”,点击“Login”,通过验证则进入主功能菜单。

如果输入错误则会有相应的警告!

1.当输入一个错误时,会出现下图:

2.登陆成功时会出现下图:

4.2.2主功能界面

1.显示

点击

,弹出如下窗口:

2.添加

点击

,弹出如下窗口:

若输入的学号已经存在,则会弹出如下窗口:

成功添加时会弹出:

3.修改

点击

并输入修改信息,若输入的学号不存在,则:

输入要修改的正确学号,弹出如下窗口:

4.查询

点击

,弹出如下窗口:

当输入的学号不存在时,则:

输入正确的学号时,则会弹出窗口:

5.删除

点击

,弹出如下窗口:

当输入的学号不存在时,会弹出提示:

当删除成功时,弹出窗口:

6.退出

点击

,退出学籍管理系统。

5主要程序代码及说明

1.菜单部分代码:

packageXSXJGL;

importjava.awt.Container;

importjava.awt.LayoutManager;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.*;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

publicclassMenu{

JFramejf;

JButtonj1,j2,j3,j4,j5,j6;

publicstaticvoidmain(Stringargs[]){

Menum=newMenu();

m.go();

}

publicvoidgo(){

jf=newJFrame("学生学籍管理系统");

jf.setBounds(200,200,300,200);

Containercp=jf.getContentPane();

cp.setLayout(newFlowLayout(FlowLayout.LEADING,20,20));

j1=newJButton("添加学生信息");

j2=newJButton("修改学生信息");

j3=newJButton("查询学生信息");

j4=newJButton("删除学生信息");

j5=newJButton("显示学生信息");

j6=newJButton("退出管理系统");

cp.add(j1);

cp.add(j2);

cp.add(j3);

cp.add(j4);

cp.add(j5);

cp.add(j6);

j1.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

newAdd();

}

});

j2.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Modifymodify=newModify();

}

});

j3.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Searchsearch=newSearch();

}

});

j4.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Deletedelete=newDelete();

}

});

j5.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

Displaydisplay=newDisplay();

}

});

j6.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventae){

System.exit(0);

}

});

jf.setVisible(true);

}

}

2.登录部分代码:

packageXSXJGL;

importjava.awt.Dimension;

importjava.awt.Toolkit;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPasswordField;

importjavax.swing.JTextField;

publicclassLogin{

publicstaticvoidmain(String[]args){

finalStringuserName="1";

finalStringpasswrod="1";

finalJFramejFrame=newJFrame("登陆界面");

Dimensiondimension=Toolkit.getDefaultToolkit().getScreenSize();

jFrame.setBounds(((int)dimension.getWidth()-200)/2,((int)dimension.getHeight()-300)/2,200,150);

jFrame.setResizable(false);

jFrame.setLayout(null);

jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabellabel1=newJLabel("姓名");

label1.setBounds(10,10,100,30);

jFrame.add(label1);

JLabellabel2=newJLabel("密码");

label2.setBounds(10,40,100,30);

jFrame.add(label2);

finalJTextFieldtext1=newJTextField();

text1.setBounds(50,15,130,20);

jFrame.add(text1);

finalJPasswordFieldtext2=newJPasswordField();

text2.setBounds(50,45,130,20);

jFrame.add(text2);

JButtonbutton=newJButton("Login");

button.setBounds(10,75,170,40);

button.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

if(userName.equals(text1.getText())&&passwrod.equals(text2.getText())){

jFrame.dispose();

JOptionPane.showMessageDialog(null,"登陆成功","提示",JOptionPane.INFORMATION_MESSAGE);

jFrame.dispose();

(newMenu()).go();

}else{

JOptionPane.showMessageDialog(null,"错误","提示",JOptionPane.ERROR_MESSAGE);

text1.setText("");

text2.setText("");

}

}

});

jFrame.add(button);

jFrame.setVisible(true);

jFrame.setLocationRelativeTo(null);

}

}

3.连接数据库部分代码:

packagecom.microsoft.sqlserver.jdbc;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importXSXJGL.Delete;

publicclassmyConnection{

staticStringurl="jdbc:

sqlserver:

//localhost:

1433;DatabaseName=XSXJGL";

staticStringuser="sa";

staticStringpw="sqlserverSa";

staticConnectionconn;

publicstaticConnectiongetmyConnection(){

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

conn=DriverManager.getConnection(url,user,pw);

returnconn;

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returnnull;

}

}

其他部分代码由于篇幅过长,不再赘述。

6课题总结

通过本次课程设计,我巩固了所学到的知识,之前的学习只是停留在理论基础上,现在自己动手操作试验后,才是真正的理解及体会。

数据库也学了一个学期,有很多知识都是似懂非懂,通过平时上机操作,自己也了解了一些,但仍有许多不理解的东西,这次的课程设计让我有了更深的理解和更好的认识。

之前的困惑通过这次的课程设计也解决了一些,虽然还是不能够全面的理解,但是有进步就是收获。

我初步学会了论文设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道了如何整合资料和处理这些资料的能力。

在系统编译的时候会经常因为一些小的错误而心烦意乱,但是也不失为一件好事,失败的越多积累的经验也越丰富,也使自己的能力有了进一步的提高。

由于知识和经验的不足,这个系统还是有许多需要改进的地方,以后我会更加努力的,在学习的过程中不断地提高和改进。

加强了我关于理论联系实际、与具体课题项目结合开发、设计系统的能力。

在本次课程设计中,我遇到了许多困难,在解决它们的同时收获颇多,特别是如何分析、建立、开发一个系统。

我认识到在一个系统开发的过程中编码不是最重要的,重要的是系统分析并建立起系统模型。

在分析一个系统之前,分析人员必须要对将要开发的系统所涉及到的各方面内容有一个总体的认识,并清楚该系统所要实现的功能。

有了这次的经验,以后在做类似系统时,一定在实现之前先设计周全,努力做到更完善,更好。

参考文献:

[1]彭东.《SQLServer2005应用开发技术指南》.北京:

清华大学出版社 

[2]夏邦贵.《SQLServer数据库开发入门与范例解析》.北京:

北京机械工业出版社

[3]岳付强等.《SQLServer从实战到入门[M]》.北京:

清华大学出版社,2009

[4]李春葆.《VisualBasic数据库系统设计与开发》.北京:

清华大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1