重 庆 三 峡 学 院《数据库原理》课程实训内容综合报告实 训 题 目:毕业设计管理系统 专 业:计算机科学与技术 指 导 教 师:方 刚 组 长: 刘智力(4148) 成 员 一: 陈建波(4122) 成 员 二: 何先果(4123) 2015年12月 25日一、实训目的掌握数据库的设计方法,将数据库原理理论知识运用于信息管理系统的实践开发中二、开发环境硬件环境:PC机操作系统:Windows10数据库管理系统:毕业设计管理系统软件环境:myeclipse2015,Navicat for mysql,mysql6.0 Tomcat7.0三、开发文档1. 系统功能概述根据讨论与查阅资料我们得出了系统的功能模型图分为四个模块分别是登录模块、毕业生管理模块、教师管理模块、查询统计模块 图1. 毕业生设计管理系统功能结构图2. 需求分析根据我们的讨论与设想:以及客观的需求分析我们对此做了以下几个图,有顶层数据流图、详细数据流图以及ER图,并配有相应的数据字典。
1) 数据流图数据流图也称为数据流程图date flow diagram , DFD,是一种便于用户理解和分析系统数据流程的图形工具,他摆脱了系统和具体内容,精确的在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分我们小组经过仔细讨论决定做出下列数据流图根据顶层数据流图我么做出了相应的详细数据流图: 图2.详细数据流图(2)数据字典 表1. 教材表数据字典描述项目描述数据存储编号P1数据存储名称毕业生设计管理简述毕业生基本信息、指导教师基本信息、学生选题相关信息以及老师上传题目的信息数据存储组成学生学号+教师编号+教师上传题目名称+学生选题名称相关联的处理毕业生管理处理、教师信息处理、毕业生信息维护处理、毕业生信息查询处理、指导课题处理、毕业生选课处理、用户信息处理、查询处理3. 数据库设计(1)概念设计 图1.毕业生设计ER图逻辑设计 根据ER图做出相应的关系模式:专业(专业名,专业号)毕业生(学号,姓名,年龄)班级(班级号,班级名)课题(课程号,课题名称)指导教师(教师编号,姓名,)4. 系统编码(1) 登录界面使用 输入正确的用户信息即可 (2)毕业生信息添加首先,登录到毕业设计管理系统---->打开学生管理模块------>添加学生资料------>添加信息(3)毕业生信息修改首先,登录到毕业设计管理系统---->打开学生管理模块------>修改学生资料------>修改信息功能实现界面图:③实现源代码package action; import java.util.List; import entity.Students;import service.StudentsDAO;import service.impl.StudentsDAOImpl; //学生Action类public class StudentsAction extends SuperAction { private static final long serialVersionUID = 1L; //查询所有学生的动作 public String query() { StudentsDAO sdao =new StudentsDAOImpl(); Listlist=sdao.queryAllStudents(); //放进session中 if(list!=null&&list.size()>0) { session.setAttribute("students_list", list); } return "query_success"; }} package action; import org.apache.struts2.interceptor.validation.SkipValidation; import service.UsersDAO; import service.impl.UsersDAOImpl; import com.opensymphony.xwork2.ModelDriven; import entity.Users; public class UsersAction extends SuperAction implements ModelDriven { /** * */ private static final long serialVersionUID = 1L; private Users user=new Users(); //用户登录动作 public String login() {UsersDAO udao =new UsersDAOImpl(); if(udao.UsersLogin(user)) { //在session中保存登录成功的用户名 session.setAttribute("loginUserNaeme", user.getUsame()); return "login_success"; } else { return "login_failure"; } } @SkipValidation //用户注销方法 public String logout() { if(session.getAttribute("loginUserName")!=null) { session.removeAttribute("loginUserName"); } return "logout_success"; } @Override public void validate() { // TODO Auto-generated method stub //用户名不能为空 if("".equals(user.getUsame().trim())) { this.addFieldError("usernameError", "用户名不能为空!"); } if(user.getPassword().length()<6) { this.addFieldError("passwordError", "密码长度不少于6"); } } public Users getModel() { // TODO Auto-generated method stub return this.user; }} package action; import org.apache.struts2.interceptor.validation.SkipValidation; import service.UsersDAO; import service.impl.UsersDAOImpl;import com.opensymphony.xwork2.ModelDriven; import entity.Users;public class UsersAction extends SuperAction implements ModelDriven { /** * */ private static final long serialVersionUID = 1L; private Users user=new Users(); //用户登录动作 public String login() { UsersDAO udao =new UsersDAOImpl(); if(udao.UsersLogin(user)) { //在session中保存登录成功的用户名 session.setAttribute("loginUserNaeme", user.getUsame()); return "login_success"; } else { return "login_failure"; } } @SkipValidation //用户注销方法 public String logout() { if(session.getAttribute("loginUserName")!=null) { session.removeAttribute("loginUserName"); } return "logout_success"; } @Override public void validate() { // TODO Auto-generated method stub //用户名不能为空 if("".equals(user.getUsame().trim())) { this.addFieldError("usernameError", "用户名不能为空!"); } if(user.getPassword().length()<6) { this.addFieldError("passwordError", "密码长度不少于6位"); } } public Users getModel() { // TODO Auto-generated method stub return this.user; }}package entity;import java.util.Date;//学生类public class Students { private String sid;//学号 private String sname;//姓名 private String gender;//性别 private Date birthday;//出生日期 private String address;//地址 public Students(){ } public Students(String sid, String sname, String gender, Date birthday, String address) { super(); this.sid = sid; this.sname = sname; this.gender = gender; this.birth。