学生学籍管理系统Word文档格式.docx
《学生学籍管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统Word文档格式.docx(41页珍藏版)》请在冰点文库上搜索。
2016.7.26-8.15
根据软件设计要求,先期学习相关Java、数据
库知识。
2016.8.16-8.24
利用相关知识设计软件数据库结构,编写程序应用界面
2016.8.25-8.26
调试程序,完善功能,完成学年设计报告
主
要
参
考
资
料
1.赵生慧.Java面向对象程序设计(第二版)[M].北京:
中国水利水电出版社,2016
2.赵生慧.Java面向对象程序设计实训与考试指导[M].北京:
中国水利水电出版社,2016.
3.王雨竹.SQLserver入门经典[M].北京:
机械工业出版社,2013
4.王德永.数据库原理与应用[M].北京:
人民邮电出版社,2011.
指导教师
意见
(签字):
年月日
系(教研室)主任意见
小型应用系统设计说明书
学院名称:
计算机与信息工程学院
班级名称:
网工142
学生姓名:
学号:
题目:
学生学籍管理系统
姓名:
起止日期:
2016.7.26-8.26
第一部分:
正文部分
一、选题背景
长期以来,学校对学生学籍的管理都还使用着传统的模式。
在此模式下,人工的记录学生信息、考试信息等等。
而随着现代素质教育与时代的不断发展这样的模式已经不能完全适应现代的教育形势。
信息化时代的到来,使学校传统的管理方法和办学水平都受到了极大的挑战。
随着Internet技术持续迅猛的发展,给传统的办学模式提出了新的要求。
进入新世纪,从世界各国教育信息化的进程来看,不但竞争异常激烈,而且无论是在教育信息基础设施和资源建设上,还是在普及的程度上,中国与西方发达国家甚至某些发展中国家相比,都存在着较大的差距。
新的世纪里,如果中国不能很好地利用互联网的平台和以较低的成本对推动教育信息化缺乏明确的方向,势必偏离信息化的轨道,进而阻碍社会信息化的进程和整个国民经济的发展。
因此,实施教育的信息化已经刻不容缓、迫在眉睫,而其中的学生学籍管理是其中一个不可或缺的环节。
学生学籍管理系统更为系统的对学生的各项信息进行统计处理,并以数据库的形式保存,能够大幅提高学校的工作效率,加强学生信息保存的安全性,降低工作成本。
二、方案论证(或设计理念)
由于该系统所要满足的硬件是计算机,软件方面是采用JDK1.8开发环境、Eclipse开发工具和SQLserver数据库,这些设备和软件易于实现和满足。
采用的语言是Java语言,具有可移植性,功能易于实现,界面比较美观,操作简单,能够移植到其他计算机上运行,与平台无关,能够满足更多的用户,使得该系统能被绝大多数学校接受和使用。
因此采用该Java+SQLserver方案来设计学生学籍管理系统。
三、过程论述
3.1系统流程设计
本系统通过登录界面进入主界面,主界面里有四个菜单栏,每个菜单栏下面都有相应功能,点击相应功能出现相关操作界面,进行对数据库的管理以及对学生信息的增删改查。
系统流程图如图3-1所示:
图3-1系统流程图
3.2系统数据流设计
系统中的各种模块以及用户数据由用户输入,在数据库中进行存储,用户可以查看、修改、删除和查找这些数据,相关数据流如图3-2、图3-3所示。
图3-2总体数据流图
图3-3功能层数据流图
3.3数据库部分设计
本系统的功能是宾馆客房管理和用户管理,因此设计有3张表,分别是用户名密码表member表、学生基本信息表是s_information表、学生成绩表s_score表,对数据的增、删、改、查,主要在这3张表上进行。
(1)member表用于记录登录程序的用户名和密码
字段名
数据类型
长度
字段约束
描述
username
varchar
50
Notnull
登录程序的用户名
password
登录程序的密码
表3-1member表
(2)s_information表用于记录学生基本信息
number
学生学号
name
学生姓名
sex
学生性别
native
学生籍贯
major
学生专业
表3-2s_information表
(3)s_score表用于记录学生成绩
math
数学成绩
english
英语成绩
chinese
语文成绩
表3-3s_score表
3.4系统的各部分功能模块设计
3.4.1登陆程序部分设计
登陆界面的功能主要有以下三个:
用户登录,错误提示,退出。
该模块可以实现用户登录功能,提示密码错误功能和退出系统的功能。
在系统核对用户名和密码时需要对数据库操作人员信息表进行查询比对,登录界面如图3-4:
图3-4用户登录界面
核心代码如下:
publicvoidcheck()//检查账户合法性
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassLogin_dbextendsJFrameimplementsActionListener{
JLabeltitle;
JTextFieldname;
JPasswordFieldword;
JLabellab1,lab2;
JButtonbt1,bt2;
publicLogin_db(){//构造方法
super("
学生学籍管理系统"
);
init();
}
publicvoidinit(){//实现界面的内容
略
publicvoidcheck()//检查账户合法性
{
Stringusername=name.getText();
Stringpassword=word.getText();
if(username==null||password==null||username.equals("
"
)||password.equals("
))
{
JOptionPane.showMessageDialog(null,"
请正确输入!
"
word.setText(null);
}
else
Operate_MyDBtemp_db=newOperate_MyDB();
//创建数据库操作对象,使用里面的方法。
if(temp_db.login_check(username,password))//调用检验方法
{
this.hide();
//将登录窗口关掉
JOptionPane.showMessageDialog(null,"
欢迎"
+username+"
登陆学生学籍管理系统!
Guigui=newGui();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.show();
}
else
用户名或密码错误!
\n登陆失败,请重新登陆!
name.setText(null);
word.setText(null);
temp_db.close();
publicstaticvoidmain(Stringargs[]){//主函数
Login_dblg=newLogin_db();
publicvoidactionPerformed(ActionEvente){//实现监听
if(e.getSource()==bt1){
check();
if(e.getSource()==bt2){//如果点击重置按钮,将用户名和密码文本设为空
name.setText("
word.setText("
}
3.4.2数据库连接验证部分设计
该部分主要用于测试数据库服务器是否打开。
通过该功能可排除计算机中数据库服务没有开启时产生的错误。
publicstaticConnectiongetConnection(){//连接数据库
Connectioncon=null;
try{
Class.forName("
com.microsoft.jdbc.sqlserver.SQLServerDriver"
Connectioncon1=DriverManager.getConnection
("
jdbc:
sqlserver:
//localhost:
1433;
DatabaseName=MyDB"
"
sa"
"
123456"
con=con1;
}catch(Exceptionex){
ex.printStackTrace();
returncon;
3.4.3学生信息录入部分设计
该部分主要用于向数据库中写入学生是基本信息。
通过该功能用户可以按照规定添加学生信息,对数据库进行更新,实现学生注册等功能。
界面如图3-5:
图3-5新生注册界面
publicvoidactionPerformed(ActionEvente){//实现监听
if(e.getSource()==bt1){
for(inti=0;
i<
lab.length;
i++){
text[i].setText("
if(e.getSource()==bt2){
Stringstr[]=newString[5];
str[i]=text[i].getText().trim();
Operate_MyDBtemp_db=newOperate_MyDB();
temp_db.insert_information(str[0],str[1],str[2],str[3],str[4]);
temp_db.insert_informationScore(str[0]);
System.out.println("
success"
JOptionPane.showMessageDialog(null,"
恭喜"
+str[1]+"
登入学注册成功!
setVisible(false);
3.4.4学生信息查看部分设计
该部分主要用于查看学生各项基本信息。
此部分信息查询还具有打印功能。
界面如图3-6:
图3-6信息查询界面
publicclassXxcxextendsJFrameimplementsActionListener{
privateJButtonbt1,bt2;
privateOperate_MyDBop;
publicXxcx(){
信息查询"
publicvoidinit(){//实现界面的内容
this.setLayout(newFlowLayout());
this.setBounds(200,200,360,250);
this.setVisible(true);
title=newJLabel("
欢迎使用本系统!
title.setBounds(0,0,360,300);
this.add(title);
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
bt1=newJButton("
打印"
bt2=newJButton("
退出"
bt1.setBounds(100,220,60,25);
bt2.setBounds(180,220,60,25);
this.add(bt1);
this.add(bt2);
bt1.addActionListener(this);
bt2.addActionListener(this);
op=newOperate_MyDB();
if(op.getStudentCount()<
=0)
现在还没有任何学生记录!
//查询基本信息
ArrayListtemp1_array=newArrayList();
ArrayListtemp2_array=newArrayList();
ArrayListtemp3_array=newArrayList();
ArrayListtemp4_array=newArrayList();
ArrayListtemp5_array=newArrayList();
temp1_array=op.getALLnumber();
temp2_array=op.getALLname();
temp3_array=op.getALLsex();
temp4_array=op.getALLnative();
temp5_array=op.getALLmajor();
String[][]playerInfo=newString[temp1_array.size()][5];
//System.out.println("
xsaaaxasxsa"
//System.out.println(temp1_array.size());
temp1_array.size();
i++)
for(intj=0;
j<
=4;
j++)
if(j==0)
{
playerInfo[i][j]=(String)temp1_array.get(i);
}
elseif(j==1)
playerInfo[i][j]=(String)temp2_array.get(i);
elseif(j==2)
playerInfo[i][j]=(String)temp3_array.get(i);
elseif(j==3)
playerInfo[i][j]=(String)temp4_array.get(i);
elseif(j==4)
playerInfo[i][j]=(String)temp5_array.get(i);
String[]Names={"
学号"
姓名"
性别"
籍贯"
专业"
};
JTabletable=newJTable(playerInfo,Names);
table.setGridColor(Color.BLUE);
table.setPreferredScrollableViewportSize(newDimension(330,150));
JScrollPanescrollPane=newJScrollPane(table);
this.add(scrollPane);
this.setResizable(false);
this.setSize(350,300);
Xxcxcx=newXxcx();
publicvoidactionPerformed(ActionEvente)
打印成功!
if(e.getSource()==bt2){
this.setVisible(false);
}
}
3.4.5学生成绩录入部分设计
该部分主要用于学生的成绩录入,用户可以输入相应学号录入相关成绩,如果学号存在则修改成功,否则录入失败,提示不存在该生。
界面如图3-7:
图3-7成绩录入界面
publicvoidactionPerformed(ActionEvente)
{
try{
op=newOperate_MyDB();
Statements=op.getConnection().createStatement();
Stringsql="
select*froms_score"
+"
wherenumber='
+t1.getText()+"
'
;
ResultSetrs=s.executeQuery(sql);
if(rs.next())
{
number=t1.getText();
math=t2.getText();
chinese=t3.getText();
english=t4.getText();
Operate_MyDBtemp_db=newOperate_MyDB();
temp_db.Cjlr_db(number,math,chinese,english);
System.out.println("
+number+"
成绩录入成功!
setVisible(false);
不存在该学号的学生!
catch(Exceptionerror)
System.err.println("
异常:
+error.getMessage());
}
if(e.getSource()==bt2){//如果点击重置按钮,将用户名和密码文本设为空
t1.setText("
t2.setText("
t3.setText("
t4.setText("
3.4.6学生信息查询部分设计
该界面用于成绩查询,用户输入存在的学号,该界面就输出相关学生成绩信息。
界面如图3-8:
图3-8成绩查询界面
try{
op=newOperate_MyDB();
Statements=op.getConnection().createStatement();
Stringsql="
ResultSetrs=s.executeQuery(sql);
if(rs.next())
{
lab4.setText(rs.getString("
math"
));
lab5.setText(rs.getString("
chinese"
lab6.setText(rs.getString("
english"
else
JOptionPane.showMessageDialog(null,"
}catch(Exceptionerror){