java学生管理系统课程设计.docx
- 文档编号:27541631
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:39
- 大小:770.08KB
java学生管理系统课程设计.docx
《java学生管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《java学生管理系统课程设计.docx(39页珍藏版)》请在冰豆网上搜索。
java学生管理系统课程设计
一、需求分析
1.1课程设计目的
a)掌握面向对象程序设计基本要素(封装、继承、多态)
b)掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法
c)掌握基于AWT的图形用户界面设计
i.常用标准控件的使用,如标签、按钮、菜单、文本框、单选按钮、滚动条等。
ii.事件处理机制
d)掌握布局、对话框的使用
e)掌握发布JAVA应用程序
1.2课程设计要求
1.学生学籍管理系统的需求分析。
2.学生学籍管理系统的总体设计,列出主要的类和类间关系。
3.列出具体的实现代码。
4.写出程序的实现细节,主要的功能界面,实现说明。
5.写出总结和评价
1.3选题与操作流程
在一些学校等机构,随着学生数量的不断增加,学生的信息不断增多,人工管理信息的难度也越来越大。
而且效率也是很低的。
所以如何自动高效地管理信息是这些年来许多人所研究的。
学生学籍管理系统,以SQL数据库作为后台信息存储,Java作为前台系统的语言。
提供了对学生信息添加,查询,修改,删除的功能。
实现了最基本的信息管理。
1.4开发环境与开发平台
操作系统:
Windows8
数据库:
SQL2012
Java开发工具:
MyEclipse2014
JDK:
JDK1.7
二、总体设计
2.1总体设计概念
学生学籍管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。
该软件用java语言编写,用SQLServer2012数据库作为后台的数据库进行信息的存储,用SQL语句完成添加,查询,修改,删除的操作。
用JDBC驱动实现前台Java与后台SQL数据库的连接。
Java语言跨平台性强,可以在Windows等系统下使用,方便简单,安全性好。
2.2系统功能
该系统实现的大致功能:
1.登录界面。
该登录分为学生登录和管理员登录,用于权限分配。
用户通过验证通过后方可进入管理系统。
管理员登录后可以对学生信息进行增加、修改、删除、查询。
一定程度上保证了信息安全性,防止他人未经允许篡改学生信息。
学生登录后可以进行查询和修改登录密码的功能。
2.查询学生信息。
可以选择由用户选择“显示系统中当前的所有学生信息”。
也可以选择按照“某一个学号查询该学号的学生信息”。
查询到的信息会在窗口中依次显示出来。
3.添加学生信息。
可以按照图形的界面的显示依次输入新学生的“学号”,“姓名”,“性别”,“专业”,“家庭住址”,“籍贯”,“入学时间”。
完成新纪录的添加。
以及添加学生的各科成绩。
4.修改学生信息。
可以选择按照“学号”找到该学生的学生信息并输入要修改的属性,并输入新的数据。
完成对学生记录的修改。
5.删除学生记录。
可以根据输入的“学号”进行删除的操作。
6.修改密码。
登录当前系统的用户可以通过此功能实现登录密码的修改。
2.3系统架构
界面使用Java应用程序用户界面的开发工具包Swing进行窗体界面的布局,以及实现部分窗口事件的相应。
后台使用SQL2012数据库进行数据的存储。
2.4模块划分
该系统可以分为两大模块
1)管理员:
主要实现对学生信息的管理功能。
具体功能如下:
①添加功能:
添加学生基本信息和学生成绩。
②修改功能:
对学生的基本信息进行修改。
③删除功能:
删除某个学号学生的基本信息。
④查询功能:
可以查询某个学生的基本信息,也可以将所有学生的信息和成绩以表格的形式显示出来。
⑤修改密码:
管理员可以将自己的登录密码进行修改。
退出系统:
点击后,将会退出该系统。
2)学生:
主要实现查询功能。
具体功能如下:
①查询成绩:
点击该选项,就会将当前登陆的学生成绩显示出来。
②修改密码:
登录后,学生可以根据需要对自己的登录密码进行修改。
③退出系统:
点击后,将会退出该系统。
三、详细设计
3.1SQL数据库表
该系统数据库中有三张表分别是users(管理员)、student(学生基本信息)、grade(学生成绩)
Users表
Student表
Grade表
3.2程序系统设计图:
失败管理员成功
学生成功
3.3主要的类及类间关系:
extends
:
四、系统实现编码及运行结果
4.1登陆界面:
登录界面选择用户类型,输入“用户名”和“密码”,点击“登录”,通过验证则进入主功能菜单。
如果输入错误则会有相应的警告!
用户名或密码不正确时:
登录成功后会进入相应的主界面。
4.2管理员权限:
4.2.1添加学生信息
当管理员点击添加学生信息时出现此界面。
当添加的学生在数据库中已经存在时出现此提示信息:
4.2.2添加学生成绩:
当管理员点击添加学生成绩时出现此界面。
当添加的学生的成绩在数据库中已经存在时出现此提示信息:
添加成功后出现此提示信息:
4.2.3修改学生信息:
管理员输入要修改的学生学号,点击查询,该学生信息就会出现,此时修改按钮可用
修改后,点击“修改”,出现确认对话框
点击“是”之后,出现提示消息
4.2.4删除学生信息:
管理员输入要删除的学生学号,点击查询,该学生信息就会出现,此时“删除”按钮可用
管理员点击“删除”后,出现确认对话框
点击“是”之后学生信息被删除。
4.2.5查询单个学生信息:
点击查询后,该学生信息将会被显示出来。
4.2.6查询所有学生信息:
4.2.7查询所有学生成绩:
4.2.8修改密码:
原密码不正确时,提示消息:
原密码正确,但两次新密码不相同时,提示消息:
成功修改后,提示消息:
4.3学生权限:
4.3.1学生成绩查询:
4.3.2学生修改密码:
界面同管理员修改密码
4.4核心代码:
数据库Database:
package学生学籍管理系统;
importjava.sql.*;
publicclassDatabase{
privateStatementstmt=null;
ResultSetrs=null;
privateConnectionconn=null;
Stringsql;
Stringstrurl="jdbc:
sqlserver:
//localhost:
1433;DatabaseName=student";
publicDatabase(){
}
/*
*打开数据库连接
*/
publicvoidOpenConn()throwsException{
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn=DriverManager.getConnection(strurl,"sa","201314");
}
catch(Exceptione){
System.err.println("OpenConn:
"+e.getMessage());
}
}
/*
*执行SQL语句,返回数据集rs
*/
publicResultSetexecuteQuery(Stringsql){
stmt=null;
rs=null;
try{
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
catch(SQLExceptione){
System.err.println("executeQuery:
"+e.getMessage());
}
returnrs;
}
/*
*执行SQL语句
*/
publicvoidexecuteUpdate(Stringsql){
stmt=null;
rs=null;
try{
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
stmt.executeQuery(sql);
mit();
}
catch(SQLExceptione){
System.err.println("executeUpdate:
"+e.getMessage());
}
}
publicvoidcloseStmt(){
try{
stmt.close();
}
catch(SQLExceptione){
System.err.println("closeStmt:
"+e.getMessage());
}
}
/*
*关闭数据库连接
*/
publicvoidcloseConn(){
try{
conn.close();
}
catch(SQLExceptione){
System.err.println("aq.closeConn:
"+e.getMessage());
}
}
}
数据库操作类StuBean:
package学生学籍管理系统;
importjava.sql.*;
importjavax.swing.*;
publicclassStuBean{
Stringsql;
ResultSetrs=null;
StringName;
StringPassword;
StringType;
StringsNum;
StringsName;
StringsSex;
StringsMajor;
StringsHome;
StringsBirth;
StringsYear;
StringGaoDeng;
StringLiSan;
StringShuJu;
StringGaiLv;
StringJava;
StringEnglish;
/*
*验证登陆
*/
publicbooleanlogin(Stringname,Stringpassword,Stringtype){
DatabaseDB=newDatabase();
this.sNum=name;
this.Name=name;
this.Password=password;
this.Type=type;
if(Password==null||Password.equals("")){
JOptionPane.showMessageDialog(null,"请输入正确的用户名和密码","错误",JOptionPane.ERROR_MESSAGE);
returnfalse;
}
else{
if(Type.equals("学生")){
sql="select*fromstudentwheresnum='"+sNum+"'andpassword='"+Password+"'";
}
else
if(Type.equals("管理员")){
sql="select*fromuserswherename='"+Name+"'andpassword='"+Password+"'";
}
try{
DB.OpenConn();
rs=DB.executeQuery(sql);
if(rs.next()){
returntrue;
}
else{
returnfalse;
}
}
catch(Exceptione){
returnfalse;
}
finally{
DB.closeStmt();
DB.closeConn();
}
}
}
/*
*修改密码
*/
publicvoidChangePassword(Stringname,Stringpassword,Stringtype){
DatabaseDB=newDatabase();
this.sNum=name;
this.Name=name;
this.Password=password;
this.Type=type;
if(Password==null||Password.equals("")){
JOptionPane.showMessageDialog(null,"请输入新密码","错误",JOptionPane.ERROR_MESSAGE);
}
else{
if(Type.equals("学生")){
sql="updatestudentsetpassword='"+Password+"'wheresnum='"+sNum+"'";
}
else
if(Type.equals("管理员")){
sql="updateuserssetpassword='"+Password+"'wherename='"+Name+"'";
}
try{
DB.OpenConn();
DB.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"成功修改密码!
");
}
catch(Exceptione){
System.out.println(e);
JOptionPane.showMessageDialog(null,"修改失败!
","错误",JOptionPane.ERROR_MESSAGE);
}
finally{
DB.closeStmt();
DB.closeConn();
}
}
}
/*
*添加学生信息
*/
publicvoidstuAdd(Stringnum,Stringname,Stringsex,Stringmajor,Stringhome,Stringbirth,Stringyear){
DatabaseDB=newDatabase();
this.sNum=num;
this.sName=name;
this.sSex=sex;
this.sMajor=major;
this.sHome=home;
this.sBirth=birth;
this.sYear=year;
if(sNum==null||sNum.equals("")||sName==null||sName.equals("")){
JOptionPane.showMessageDialog(null,"请输入学号和姓名","错误",JOptionPane.ERROR_MESSAGE);
}
else{
sql="insertintostudent(snum,sname,ssex,smajor,shome,sbirth,syear)values"
+"('"+sNum+"','"+sName+"','"+sSex+"','"+sMajor+"','"+sHome+"','"+sBirth+"','"+sYear+"')";
try{
DB.OpenConn();
DB.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"成功添加一条新的纪录!
");
}
catch(Exceptione){
System.out.println(e);
JOptionPane.showMessageDialog(null,"保存失败!
","错误",JOptionPane.ERROR_MESSAGE);
}
finally{
DB.closeStmt();
DB.closeConn();
}
}
}
/*
*
*/
publicvoidGradeAdd(Stringnum,Stringname,Stringgaodeng,Stringlisan,Stringshuju,Stringgailv,Stringjava,Stringenglish){
DatabaseDB=newDatabase();
this.sNum=num;
this.sName=name;
this.GaoDeng=gaodeng;
this.LiSan=lisan;
this.ShuJu=shuju;
this.GaiLv=gailv;
this.Java=java;
this.English=english;
if(sNum==null||sName==null){
JOptionPane.showMessageDialog(null,"请输入学号和姓名","错误",JOptionPane.ERROR_MESSAGE);
}
else{
sql="insertintograde(snum,sname,高等数学,离散数学,数据结构,概率论,Java,大学英语)values"
+"('"+sNum+"','"+sName+"','"+GaoDeng+"','"+LiSan+"','"+ShuJu+"','"+GaiLv+"','"+Java+"','"+English+"')";
try{
DB.OpenConn();
DB.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"成功添加一条新的纪录!
");
}
catch(Exceptione){
System.out.println(e);
JOptionPane.showMessageDialog(null,"保存失败!
","错误",JOptionPane.ERROR_MESSAGE);
}
finally{
DB.closeStmt();
DB.closeConn();
}
}
}
/*
*修改学生信息
*/
publicvoidstuModify(Stringnum,Stringname,Stringsex,Stringmajor,Stringhome,Stringbirth,Stringyear){
DatabaseDB=newDatabase();
this.sNum=num;
this.sName=name;
this.sSex=sex;
this.sMajor=major;
this.sHome=home;
this.sBirth=birth;
this.sYear=year;
sql="updatestudentsetsname='"+sName+"',ssex='"+sSex+"',smajor='"+sMajor+"',shome='"+sHome+"',sbirth='"+sBirth+"',syear='"+sYear+"'wheresnum="+Integer.parseInt(sNum)+"";
try{
DB.OpenConn();
DB.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"成功修改一条新的纪录!
");
}
catch(Exceptione){
System.out.println(e);
JOptionPane.showMessageDialog(null,"更新失败!
","错误",JOptionPane.ERROR_MESSAGE);
}
finally{
DB.closeStmt();
DB.closeConn();
}
}
/*
*删除学生信息
*/
publicvoidstuDelete(Stringnum){
DatabaseDB=newDatabase();
this.sNum=num;
sql="deletefromstudentwheresnum="+Integer.parseInt(sNum)+"";
try{
DB.OpenConn();
DB.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"成功删除一条纪录!
");
}
catch(Exceptione){
System.out.println(e);
JOptionPane.showMessageDialog(null,"删除失败!
","错误",JOptionPane.ERROR_MESSAGE);
}
finally{
DB.closeStmt();
DB.closeConn();
}
}
/*
*按学号查询
*/
publicString[]stuSearch(Stringnum){
DatabaseDB=newDatabase();
this.sNum=num;
String[]s=newString[6];
if(sNum==null||sNum.equals("")){
s=null;
JOptionPane.showMessageDialog(null,"请输入学号","错误",JOptionPane.ERROR_MESSAGE);
}
else{
sql="select*fromstudentwheresnum="+Integer.parseInt(sNum)+"";
try{
DB.OpenConn();
rs=DB.executeQuery(sql);
if(rs.next()){
s[0]=rs.getString("sname");
s[1]=rs.getString("ssex");
s[2]=rs.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 学生 管理 系统 课程设计