学生学籍管理系统JAVA+SQL.docx_第1页
学生学籍管理系统JAVA+SQL.docx_第2页
学生学籍管理系统JAVA+SQL.docx_第3页
学生学籍管理系统JAVA+SQL.docx_第4页
学生学籍管理系统JAVA+SQL.docx_第5页
免费预览已结束,剩余39页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 题 学生姓名 学 号 专 业 班 级 系(院) 指导教师 职 称 二 年 月 毕业设计真实性承诺及指导教师声明学生毕业设计真实性承诺本人郑重声明:所提交的毕业设计是本人在指导教师的指导下,独立进行研究工作所取得的成果,内容真实可靠,不存在抄袭、造假等学术不端行为。除文中已经注明引用的内容外,本设计不含其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。如被发现设计中存在抄袭、造假等学术不端行为,本人愿承担相应的法律责任和一切后果。学生(签名): 日 期: 指导教师关于学生毕业设计真实性审核的声明本人郑重声明:已经对学生毕业设计所涉及的内容进行严格审核,确定其成果均由学生在本人指导下取得,对他人论文及成果的引用已经明确注明,不存在抄袭等学术不端行为。 指导教师(签名): 日 期: 注:此声明由指导教师和学生本人亲笔签名。29目录摘 要1Abstruct2第1章 项目背景3第2章 需求分析42.1系统需求简介4 2.2系统ER图5第3章 总体设计63.1设计概述63.2系统总体结构及功能模块划分63.3系统数据库的设计6第4章 详细设计94.1概述94.2系统程序流程图94.3安全保密设计104.3.1用户登录安全性104.4主要功能模块代码104.4.1公共类代码设计(数据的增删查改)104.4.2 登录界面代码设计18第5章 实行215.1系统登录215.2参数设置215.3基本信息235.4系统查询模块255.5系统管理26第6章 测试276.1总体测试27总结28致谢29参考30摘 要随着教育的不断普及,各个学校的学生人数也越来越多。传统的管理方式并不能适应时代的发展。为了提高管理效率,减少学校开支,使用软件管理学生信息已成为必然。本学生信息管理系统是基于Java EE与SQL server 2008数据库技术建立的一个系统,使用了Swing、IDBC技术连接数据库、javabean等技术,该系统提供了查询、修改、增加记录、删除等功能,功能比较落齐全,基本上能满足学校的需求。关键词: 学生信息管理;SQLSERVER;JAVA EE;JavaBeanAbstruct With the popularization of education, the number of students in each school are more and more. The pain management mode and can not adapt to the development of the times. In order to improve management efficiency, reduce school spending, the use of software to manage student information has become an inevitable. The student information management system is based on Java EE and SQL Server 2008 database technology to establish a system, the use of the swing, IDBC technology connecting database, JavaBean technology, the system provides query, modify, add records, delete and other functions, function relatively complete, can basically meet the school requirements.Keywords: student information management; SQLSERVER; JAVA EE; JavaBean第1章 项目背景随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。随着计算机网络技术发展,Web数据库技术已经成为应用最为广泛的网站架构基础技术在应用系统中,Web提供了与用户进行通信联络的有效手段,利用Web技术,实现Web服务器与数据库系统的连接,完成对数据的处理与查询,用户可以通过操作简单易学的浏览器来查询处理所需要的各种数据。学生信息的管理是学校日常工作中的重要组成部分。高校招生规模的逐步扩大和认识制度的改革,在校学生人数将不断增加,而学生管理人员则相对减少。加上我国高等学校基层学生管理工作的头绪多,内容杂,管理细,要求高,传统管理办法已基本不适应新形势的要求。在校生的基本信息的管理,选课及成绩的信息的管理,学生学籍的管理,稍有不慎就会出现错误。同时学生成绩的手工登录与查询,是一项非常繁重而枯燥的劳动,每年课程的变化都需要重新规划,耗费许多人力和物力,而且会因人的情绪烦燥而出现失误。因此在计算机飞速发展的今天,应用数据库技术实现学生信息的管理是可行而必要的工作,实现高校学生信息网上管理,既能够提高工作效率,又可以提高工作水平。计算机具有运算速度快、精度高、能按照设计逻辑处理问题等特性,在学生信息的录入、统计中如采用一个计算机化的信息系统进行处理,就不会发生信息遗漏或者数据输入不正确的情形。在学校,而长期以来,学生信息管理都是依赖人工进行的,面对如此众多的学生信息,其工作量可想而知。不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可控因素,造成了信息管理的某些不规范。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高的效率。开发这样一套管理软件成为很有必要的事情。第2章 需求分析2.1系统需求(1) 实现用户登录(2) 根据查询条件实现学生信息的查询(3) 根据查询条件实现成绩信息的查询(4) 学生信息、课程信息、成绩信息的增加、删除、修改(5) 学生奖惩信息管理(6) 学生信息统计 本系统的功能需求分析如下:(1) 学生信息查询:学生可以根据学号、姓名、专业进行查询.(2) 学生信息管理:主要是用于学生信息更新、插入、删除;(3) 学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更新;性能需求分析:(1) 登录、用户界面需求:简洁、易懂、易用、友好的用户界面。(2) 安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管理等。2.2系统ER图图2.2.1系统E-R图结构第3章 总体设计3.2系统总体结构及功能模块划分经过对系统的需求分析,学生信息管理系统主要划分为五个部分:用户登录,参数设置,基本信息,系统查询,系统管理五个功能模块。如图3.3.1 系统的总体结构。图3.2.1 系统的总体结构3.3系统数据库的设计数据表设计是非常重要的环节,主要设计表如下: 图3.3.1班级信息表(tb_classinfo)用于存储班级信息图3.3.2考试种类表(tb_examkind)用于保存考试种类信息图3.3.3年级信息表 (tb_gradeinfo)图3.3.4考试科目成绩表(tb_gradeinfo_sub)图3.3.5学生信息表(tb_studentinfo)图3.3.6科目表(tb_subject)用于保存科目信息图3.3.7教师信息表(tb_teacher)图3.3.8用户表(tb_user)第4章 详细设计4.2系统程序流程图程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。它可将整个程序的总体流程清楚明白的显示出来。如图4.2.1系统总流程图结构。图4.2.1系统总体流程图4.3安全保密设计4.3.1用户登录安全性系统设计了登录界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名及密码组合后才能够对学生信息进行操作。4.4主要功能模块代码4.4.1公共类代码设计(数据的增删查改)package appstu.util;import java.sql.Connection;import java.sql.DriverManager;public class CommonaJdbc public static Connection conection = null; public CommonaJdbc() getCon(); private Connection getCon() try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); conection = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=DB_Student , sa, 196816); catch (java.lang.ClassNotFoundException classnotfound) classnotfound.printStackTrace(); catch (java.sql.SQLException sql) new appstu.view.JF_view_error(sql.getMessage(); sql.printStackTrace(); return conection; package appstu.util;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.Statement;import javax.swing.JOptionPane;import appstu.model.Obj_classinfo;import appstu.model.Obj_examkinds;import appstu.model.Obj_gradeinfo;import appstu.model.Obj_gradeinfo_sub;import appstu.model.Obj_student;import appstu.model.Obj_subject;import appstu.model.Obj_teacher;import appstu.model.Obj_user;import appstu.view.JF_view_error;public class JdbcAdapter private Connection con = null; private Statement stmt = null; private PreparedStatement pstmt = null; private String infoStr = null; public boolean BuildeDeleteTempView(String sqlState) boolean flag = false; System.out.println(执行的语句为: + sqlState); try con = CommonaJdbc.conection; pstmt = con.prepareStatement(sqlState); pstmt.execute(); flag = true; catch (java.sql.SQLException sql) flag = false; sql.printStackTrace(); return flag; / 真正的执行对数据库的各种操作 private boolean AdapterObject(String sqlState) boolean flag = false; try con = CommonaJdbc.conection; / 获取数据库连接 pstmt = con.prepareStatement(sqlState); / 获取PreparedStatement实例 pstmt.execute(); / 执行该SQL语句 flag = true; / 将标识量修改为true JOptionPane.showMessageDialog(null, infoStr + 数据成功!, 系统提示, JOptionPane.INFORMATION_MESSAGE); / 弹出相应提示对话框 catch (java.sql.SQLException sql) flag = false; sql.printStackTrace(); return flag; / 将标识量返回 / 执行删除数据表中的数据 public boolean DeleteObject(String deleteSql) infoStr = 删除; return AdapterObject(deleteSql); / 验证数据表中是否存在数据 private boolean validateID(String id, String tname, String idvalue) String sqlStr = null; sqlStr = select count(*) from + tname + where + id + = + idvalue + ; / 定义SQL语句 try con = CommonaJdbc.conection; / 获取数据库连接 pstmt = con.prepareStatement(sqlStr); / 获取PreparedStatement实例 java.sql.ResultSet rs = null; / 获取ResultSet实例 rs = pstmt.executeQuery(); / 执行SQL语句 if (rs.next() if (rs.getInt(1) 0) / 如果数据表中有值 return true; / 返回true值 catch (java.sql.SQLException sql) / 如果产生异常 sql.printStackTrace(); / 输出异常 return false; / 返回false值 return false; / 返回false值 public boolean InsertOrUpdateObject(Obj_gradeinfo objgradeinfo) String sqlStatement = null; if (validateID(gradeID, tb_gradeinfo, objgradeinfo.getGradeID().trim() sqlStatement = Update tb_gradeinfo set gradeID = + objgradeinfo.getGradeID() + ,gradeName = + objgradeinfo.getGradeName() + where gradeID = + objgradeinfo.getGradeID().trim() + ; infoStr = 更新年级; else sqlStatement = Insert tb_gradeinfo(gradeID,gradeName) values ( + objgradeinfo.getGradeID() + , + objgradeinfo.getGradeName() + ); infoStr = 添加年级; System.out.println(sqlStatement); return AdapterObject(sqlStatement); public boolean InsertOrUpdateObject(Obj_classinfo objclassinfo) String sqlStatement = null; if (validateID(classID, tb_classinfo, objclassinfo.getClassID() sqlStatement = Update tb_classinfo set className = + objclassinfo.getClassName() + where classID = + objclassinfo.getClassID().trim() + ; infoStr = 更新班级; else sqlStatement = Insert tb_classinfo(classID,gradeID,className) values ( + objclassinfo.getClassID() + , + objclassinfo.getGradeID() + , + objclassinfo.getClassName() + ); infoStr = 添加班级; System.out.println(sqlStatement); return AdapterObject(sqlStatement); public boolean InsertOrUpdateObject(Obj_subject objsubject) String sqlStatement = null; if (validateID(code, tb_subject, objsubject.getCode() sqlStatement = Update tb_subject set code = + objsubject.getCode() + ,subject = + objsubject.getSubject() + where code = + objsubject.getCode().trim() + ; infoStr = 更新考试科目; else sqlStatement = Insert tb_subject(code,subject) values ( + objsubject.getCode() + , + objsubject.getSubject() + ); infoStr = 添加考试科目; return AdapterObject(sqlStatement); public boolean InsertOrUpdateObject(Obj_examkinds objexamkinds) String sqlStatement = null; if (validateID(KindID, tb_examkinds, objexamkinds.getKindID() sqlStatement = Update tb_examkinds set KindID = + objexamkinds.getKindID() + ,KindName = + objexamkinds.getKindName() + where KindID = + objexamkinds.getKindID().trim() + ; infoStr = 更新考试类别; else sqlStatement = Insert tb_examkinds(KindID,KindName) values ( + objexamkinds.getKindID() + , + objexamkinds.getKindName() + ); infoStr = 添加考试类别; return AdapterObject(sqlStatement); public boolean InsertOrUpdateObject(Obj_user objuser) String sqlStatement = null; if (validateID(userid, tb_user, objuser.getUserid() sqlStatement = Update tb_user set userid = + objuser.getUserid() + ,username = + objuser.getUsername() + ,pass = + objuser.getPass() + where userid = + objuser.getUserid().trim() + ; infoStr = 更新用户; else sqlStatement = Insert tb_user(userid,username,pass) values ( + objuser.getUserid() + , + objuser.getUsername() + , + objuser.getPass() + ); infoStr = 添加用户; return AdapterObject(sqlStatement); / / / 产生更新存盘学生信息语句 public boolean InsertOrUpdateObject(Obj_student objstudent) String sqlStatement = null; if (validateID(stuid, tb_studentinfo, objstudent.getStuid() sqlStatement = Update tb_studentinfo set stuid = + objstudent.getStuid() + ,classID = + objstudent.getClassID() + ,stuname = + objstudent.getStuname() + ,sex = + objstudent.getSex() + ,age = + objstudent.getAge() + ,addr = + objstudent.getAddress() + ,phone = + objstudent.getPhone() + where stuid = + objstudent.getStuid().trim() + ; infoStr = 更新学生信息; else sqlStatement = Insert tb_studentinfo(stuid,classid,stuname,sex,age,addr,phone) values ( + objstudent.getStuid() + , + objstudent.getClassID() + , + objstudent.getStuname() + , + objstudent.getSex() + , + objstudent.getAge() + , + objstudent.getAddress() + , + objstudent.getPhone() + ); infoStr = 添加学生信息; return AdapterObject(sqlStatement); / 产生更新存盘教师信息语句 public boolean InsertOrUpdateObject(Obj_teacher objteacher) String sqlStatement = null; if (validateID(teaid, tb_teacher, objteacher.getTeaid() sqlStatement = Update tb_teacher set teaid = + objteacher.getTeaid() + ,classID = + objteacher.getClassID() + ,teaname = + objteacher.getTeaname() + ,sex = + objteacher.getSex() + ,knowledge = + objteacher.getKnowledge() + ,knowlevel = + objteacher.getKnowlevel() + where teaid = + objteacher.getTeaid().trim() + ; infoStr = 更新教师信息; else sqlStatement = Insert tb_teacher(teaid,classID,teaname,sex,knowledge,knowlevel) values ( + objteacher.getTeaid() + , + objteacher.getClassID() + , + objteacher.getTeaname() + , + objteacher.getSex() + , + objteacher.getKnowledge() + , + objteacher.getKnowlevel() + ); infoStr = 添加教师信息; return AdapterObject(sqlStatement); / 验证数据表中是否存在数据 private boolean validateobjgradeinfo(String stuid, String kindid, String code) String sqlStr = null; sqlStr = select count(*) from tb_gradeinfo_sub where stuid = + stuid + and kindID = + kindid + and code = + code + ; System.out.println(sqlStr); try con = CommonaJdbc.conection; pstmt = con.prepareStatement(sqlStr); java.sql.ResultSet rs = null; rs = pstmt.executeQuery(); if (rs.next() if (rs.getInt(1) 0) return true; catch (java.sql.SQLException sql) sql.printStackTrace(); new appstu.view.JF_view_error(执行的SQL语句为:n + sqlStr + n错误信息为: + sql.getMessage(); return false; return false; / 产生更新学生信息信息语句 public boolean InsertOrUpdate_Obj_gradeinfo_sub(Obj_gradeinfo_sub object) try con = CommonaJdbc.conection; stmt = con.createStatement(); for (int i = 0; i object.length; i+) String sqlStr = null; if (validateobjgradeinfo(objecti.getStuid(), objecti.getKindID(), objecti.getCode() sqlStr = update tb_gradeinfo_sub set stuid = + objecti.getStuid() + ,stuname = + objecti.getSu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论