学生学籍管理系统设计及实现.docx
《学生学籍管理系统设计及实现.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统设计及实现.docx(13页珍藏版)》请在冰点文库上搜索。
学生学籍管理系统设计及实现
.数据库系统课程设计报告题目学生学籍管理系统的设计与实现学生姓名高凯学号20131346031
学院计算机与软件学院
专业网络工程
指导教师马瑞二O一五年月日
'.
.
目
录
1前言.............................................................
1
开发背景和意义.................................................
1
2系统需求剖析及有关技术介绍.......................................
1
系统需求剖析...................................................
1
系统的可行性剖析
...............................................
2
3整体设计.........................................................
2
系统模块设计...................................................
2
数据库设计.....................................................
3
数据库逻辑构造设计...........................................
3
数据库物理构造设计...........................................
3
4系统实现.........................................................
4
系统功能构造...................................................
5
功能模块说明.................................................
5
功能设计与介绍
...............................................
5
详细功能介绍...................................................
5
登岸界面..........
...........................................6
主功能界面........
...........................................7
5
主要程序代码及说明
..............................................14
6
课题总结...............
...................................
....
.19
参照文件...............
...................................
....
.19
'.
.
学生学籍管理系统的设计和实现
前言
此刻社会中,计算机的使用已经深入到平常工作和生活的方方面面。
电脑早早从文雅的学术殿堂走入了平常百姓家,各行各业的人们不必经过特其余训练就可以使用电脑达成许很多多复杂的工作。
但是,虽然此刻世界上已经充满了各样软件,但它们依旧不可以知足用户的各样特别需要,人们还不得不开发合适自己特别需求的软件。
我们都知道,对于学生的学籍管理是一个教育单位不行缺乏的部分,它的内容对学校的管理者来说至关重要。
因此学生学籍管理系统应当能够为用户供给充分的信息和快捷的查问手段。
但一直以来人们使用传统人工的方式管理文件档案,这类管理方式存在着很多弊端,如效率低、保密性差;另外,时间一长将产生大批的文件和数据,这对于查找、更新和保护都带来了许多的困难。
而使用计算机对学生学籍信息进行管理拥有手工管理所没法比较的长处,比如检索快速、查找方便、储存量大、保密性好等等。
这些长处能够极大地提升学生管理的效率,也是学校科学化、正规化管理的重要门路。
开发背景和意义
长久以来,学校正学生学籍的管理都还使用着传统的模式。
在此模式下,人工的记录学生信息、考试信息等等。
而跟着现代素质教育与时代的不停发展,这样的模式已经不可以完整适应现代的教育局势。
较之传统的管理方式,我所设计的学生学籍管理系统的优势有:
一方面能够实现数据共享,不只像使用单机系统同样,进行便利地各样数据的增添、改正、删除、查问和统计等操作,而且拥有相当的安全性和靠谱性;另一方面,检索快速、查找方便、靠谱性高、储存量大、保密性好、寿命长、成本低等。
这些长处能够极大地提升学生学籍管理的效率,也是学校的科学化、正规化管理与社会接轨的重要条件。
系统需求剖析和可行性剖析
系统需求剖析
学生学籍管理系统是鉴于学校的工作需求而设定,环绕这一工作需求,依据高校人员构造剖析,在项目开发先期的需求剖析工程中,学生学籍管理系统的应用应包含系统设置、学生信息管理、学生成绩管理以及系统说明等部分。
系统应拥有学生学籍信息输入、删除和改正的功能,学生成绩信息亦是这样。
'.
.系统的查问功能应较为齐备,不一样的用户将登录到不一样的主界面,进行不一样的界面操作功能。
能方便地进行相应数据的简单查问和随意字段组合的复合查问,改变从前只有特意人员才能进行数据查问的情况。
系统应有学生数据安全保密举措,因为身份不一样将登录到不一样的主界面,高级的用户能够操作初级用户的信息,而初级用户之间互不可以操作,保持了信息的安全性。
但在需要时可由系统保护人员经过增添用户并受权来设置相应权限。
在系统程序设计中应充分利用数据库服务器的办理能力,降低网络通讯量,尽可能减少量据改正矛盾,以最大程度地提升系统的履行速度和靠谱性,真实起到提升工作效率的作用。
系统可行性剖析
系统可行性主要包含3个方面:
技术上的可行性、经济上的可行性和管理上的可行性。
第一,系统在技术上不论是硬件性能要求,仍是软件性能要求,均可行。
其次,从开发项目的成本与效益来看,系统开发的设施花费、运转花费、培训花费其实不可以过大,而通过系统的实行,一方面,提升了工作效率,将带来更多的经济效益;另一方面,系统所产生的间接效益也不容忽略。
工作效率的提升能够节俭人力资源,减少了有关业务人员手工办理的工作负担,实时供给决议信息,促使业务的规范化、系统化、条理化和程序化。
最后,科学的管理是成立管理信息系统的前提。
管理人员支持本系统的研发运转,相应的管理制度改革的机遇已经成熟,规章制度已经齐备,原始数据正确。
跟着时代的发展,人员素质已经逐渐提升,不论是对于电脑系统的基本操作仍是对于系统的保护都有了必定的基础。
同时还能够配置专业的电脑保护人员来保护电脑,不用担忧电脑故障问题。
系统整体设计
系统设计的任务是确立系统的数据模式、功能构造和系统构造,确立系统支持环境、实现方法和技术。
系统设计的基本内容是:
选择数据库管理系统,成立数据模式;选择系统支持环境,包含支持系统运转的硬件和软件要求,确立系统实现功能和方法以及选择系统的基本架构和技术。
系统模块设计
这一设计阶段是在需求剖析的基础上,设计出能够知足用户需求的各样实体,以及他们之间的关系,为逻辑构造设计打下基础。
这个阶段用到的工具是E—R图(实体--联系图)。
本系统E-R图以下:
'.
民族
.学号班级所在系学生性别姓名
诞辰地点
学生实体E-R图
数据库设计
数据库逻辑构造设计
逻辑构造设计的主要目标是将观点构造变换为一个特定的
DBMS可办理的数据模型和数据库模式。
该
模型一定知够数据库的存取、一致性及运转等各方面的用户需求。
该设计以观点构造设计中的
E-R图为主要依照,设计出有关的整体逻辑构造。
依据
E-R图可知:
学生信息(学号,性别,姓名,班号,入校日期,出诞辰期,联系电话,家庭地址
备注);
数据库物理构造设计
从一个知足用户需求的已确立的逻辑模型出发,在限制的软、硬件环境下,利用DBMS供给的各样手段设计数据库的内模式,即设计数据的储存构造和存取方法。
数据库物理构造设计是对于给定的逻辑数据模型,选择一个合适的物理构造,主要波及存取方法与储存构造,它依靠于计算机系统。
关系模式关系数据库系统采纳关系模型作为数据的组织方式,此刻流行的数据库系统多数是关系数据库系统。
经过对关系模式的优化,获得一个基本表。
学生信息表
字段名
字段种类
长度
主键或外键
字段值拘束
对应中文属性名
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
所在系
'.
.addressvarchar50地点
简单物理设计在SQLServer2014中,文件夹是按数据库对象的种类成立的,文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并翻开已定义好的student数据库后,会发现它自动设置了关系图、表、视图、储存过程、用户、角色、规则、默认等文件夹。
要成立各个表,选择student数据库中的表,单击鼠标右键,在弹出的菜单中选择“新建表”。
程序系统设计图以下:
查问登录
学生学籍
管理系统
登录考证
增添成功
改正
失败
退出
删除
4显示系统实现
'.
.
系统功能构造功能模块说明
管理员登岸界面。
该界面能够输入管理员号,登岸密码。
用户经过考证通事后方可进入管理系统。
必定程度上保证了信息安全性,防备他人未经同意窜改学生信息。
查问学生信息。
能够选择由用户选择“显示系统中目前的全部学生信息”。
也能够选择依照“某一个学号查问该学号的学生信息”。
查问到的信息会在窗口中挨次显示出来。
增添学生信息。
能够依照图形的界面的显示挨次输入新学生的“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。
达成新纪录的增添。
改正学生信息。
能够选择依照“学号”或许“姓名”找到该学生的学生信息并输入要改正的属性,并输入新的数据。
达成对学生记录的改正。
删除学生记录。
能够依据输入的“学号”或许“姓名”进行删除的操作。
显示学生信息。
能够显示全部学生的信息、以供查察。
功能设计与介绍增添学生信息改正学生信息查问学生信息删除学生信息显示学生信息退出管理系统详细功能介绍第一,登录流程图以下所示:
'.
.登录
学生学籍成功
登录考证管理系统失败
退出其次,函数之间的调用以下列图所示:
查问增添改正
删除显示
Search()
Login失败登录考证
登岸界面
成功
Add()Modify()Delete()
Display()
'.
.登录界面输入“姓名”和“密码”,点击“Login”,经过考证则进入主功能菜单。
假如输入错误则会有相应的警示!
当输入一个错误时,会出现下列图:
登岸成功时会出现下列图:
主功能界面
显示
点击,弹出以下窗口:
'.
.
2.增添
点击,弹出以下窗口:
'.
.若输入的学号已经存在,则会弹出以下窗口:
成功增添时会弹出:
'.
.
3.改正
点击并输入改正信息,若输入的学号不存在,则:
'.
.输入要改正的正确学号,弹出以下窗口:
4.查问
'.
.点击,弹出以下窗口:
当输入的学号不存在时,则:
输入正确的学号时,则会弹出窗口:
'.
.5.删除
点击,弹出以下窗口:
当输入的学号不存在时,会弹出提示:
'.
.当删除成功时,弹出窗口:
6.退出
点击,退出学籍管理系统。
主要程序代码及说明
菜单部分代码:
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);}}登录部分代码:
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);
final
JTextFieldtext1=
newJTextField();
text1.setBounds(50,15,130,20);
jFrame.add(text1);
final
JPasswordFieldtext2=
newJPasswordField();
text2.setBounds(50,45,130,20);
jFrame.add(text2);
JButtonbutton=
newJButton("Login");
button.setBounds(10,75,170,40);
button.addActionListener(
newActionListener(){
@OverridepublicvoidactionPerformed(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);}
}连结数据库部分代码:
packagecom.microsoft.sqlserver.jdbc;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importXSXJGL.Delete;
public
classmyConnection{
static
String
url=
"jdbc:
sqlserver:
//localhost:
1433;DatabaseName=XSXJGL"
;
static
String
user=
"sa"
;
static
String
=
"sqlserverSa";
pw
static
Connection
conn;
public
static
ConnectiongetmyConnection(){
try
{
Class.
forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"
);
conn=DriverManager.
getConnection(url,user,pw);
return
conn;
}
catch
(ClassNotFoundExceptione){
e.printStackTrace();}catch(SQLExceptione){TODOAuto-generatedcatchblocke.printStackTrace();}
'.
.returnnull;}}其余部分代码因为篇幅过长,不再赘述。
课题总结经过本次课程设计,我稳固了所学到的知识,从前的学习不过逗留在理论基础上,此刻自己着手操作试验后,才是真实的理解及领会。
数据库也学了一个学期,有好多知识都是似懂非懂,经过平常上机操作,自己也认识了一些,但仍有很多不理解的东西,此次的课程设计让我有了更深的理解和更好的认识。
从前的疑惑经过此次的课程设计也解决了一些,固然仍是不可以够全面的理解,可是有进步就是收获。
我初步学会了论文设计的基本方法,学会了如何去借鉴识人的方法和经验,知道了如何整合资料和办理这些资料的能力。
在系统编译的时候会常常因为一些小的错误而心慌意乱,可是也不失为一件好事,失败的越多累积的经验也越丰富,也使自己的能力有了进一步的提升。
因为知识和经验的不足,这个系统仍是有很多需要改良的地方,此后我会更为努力的,在学习的过程中不停地提升和改良。
增强了我对于理论联系实质、与详细课题项目联合开发、设计系统的能力。
在本次课程设计中,我碰到了很多困难,在解决它们的同时收获颇多,特别是如何剖析、成立、开发一个系统。
我认识到在一个系统开发的过程中编码不是最重要的,重要的是系统剖析并成立起系统模型。
在剖析一个系统从前,剖析人员一定要对将要开发的系统所波及到的各方面内容有一个整体的认识,并清楚该系统所要实现的功能。
有了此次的经验,此后在做近似系统时,必定在实现从前先设计周到,努力做到更完美,更好。
参照文件:
彭东.《SQLServer2005应用开发技术指南》.