




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软 件 学 院课程设计报告书课程名称 JavaEE 与中间件 设计题目 学生党员管理系统 专业班级 学 号 姓 名 指导教师 2015 年 01月目录1 设计时间32 设计目的33设计任务34 设计内容34.1需求分析34.1.1总体目标34.1.2 具体目标34.1.3系统数据建模(ER图)44.1.4 系统功能建模(数据流程图)54.1.5数据字典64.2总体设计84.2.1系统层次图84.2.2数据库设计84.3详细设计94.4运行与测试114.4.1数据库数据114.4.2运行情况124.4.3结果分析155.总结与展望15附录16参考文献24成绩评定241 设计时间2015年1月19日2015年1月22日2 设计目的设计一个系统,能够实现学生党员管理的基本功能,以此来让自己对课程中所学习到的知识得到综合运用,来开发有一定规模的Java Web程序。3设计任务1. 描述:用户以合法身份登录系统后,才能进行所有操作;登录系统时,有两种权限:管理员权限和普通用户权限。管理员用户可以添加、查看、修改和删除党员信息;2添加党员:合法用户可以添加党员信息(包括学号、姓名、积极分子时间、发展对象时间、预备党员、转正、党课成绩等);3查看党员信息:合法用户可以查看党员信息;4修改党员信息:合法用户可以修改党员信息;5删除党员信息:合法用户可以删除党员信息;4 设计内容 4.1需求分析 4.1.1总体目标能够实现一个系统,该系统是学生党员管理系统。该系统能够对学生党员信息进行插入新学生党员信息,能够查看学生党员信息,能够统计一段时间内,每个学生党员总体信息情况。4.1.2 具体目标(1)只有管理员才能登陆学生党员管理系统进行操作;(2)可以选择进行查询和插入信息学生党员信息;(3)查询命令通过一个时间段来筛选学生党员信息,显示在屏幕上;(4)可以查看某个学生党员的详细信息;(5)可以将学生党员信息进行删除;(6)可以插入新的党员信息;4.1.3系统数据建模(ER图)1. 管理员实体属性图如图4-1所示管理员id用户名密码 图4-1 管理员实体属性图2. 实体属性图如图4-2所示学生学号姓名班级管理员id 图4-2 学生实体属性图3. 管理员管理学生的管理E-R图如4-3所示 管理员管理学生1N 图4-3 管理E-R图4. 学生党员E-R图如4-4 所示员工入党入党信息id入党时间政治面貌4.1.4 系统功能建模(数据流程图)1. 顶层数据流图如图4-5E1管理员F1用户名和密码P0学生党员管理系统F2新的党员信息F3学生入党信息 图4-5顶层数据流图2. 一层数据流图如图4-6F3F1P1登陆F4查询命令F5插入命令P2查询党员信息P3插入党员信息D1管理员信息D2学生入党信息 图4-6层数据流图3. P2的二层数据流图如图4-7F3F4P2.1统计学生党员F6学号P2.2查询详细党员信息F6学号P2.3删除党员信息D2 图4-7 P2的二层数据流图4.1.5数据字典1. 学号数据字典如表4-1所示表4-1 数据元素-学号名称:学号描述:用来唯一标志学生的字符串定义:学号=2 0|9 2所属数据流:F6所属存储:D22. 入党时间数据字典如表4-2所示表4-2 数据元素-入党时间名称:入党时间描述:入党的具体日期定义:日期=40|94+-+20|92+- +20|92所属数据流:F4,F5,所属存储:D23. 新的党员信息数据字典如表4-3所示表4-3 数据流-新的党员信息名称:新的党员信息标号:F2描述:新的一天的每个党员的考勤情况定义:新的党员信息=学号+新的党员信息+入党时间来源:管理员去处:插入新的党员信息模块4. 学生入党信息数据字典如表4-4所示表 4-4 数据流-学生入党信息 名称:学生入党信息标号:F3描述:一段时间内每个入党信息状况定义:学生入党信息=学号+学生姓名+班级+政治面貌+是否转正来源:统计总入党模块去处:管理员5. 管理员信息数据字典如表4-5所示 表 4-5 数据存储-管理员信息名称:管理员信息标号:D1输出:管理员的用户名和密码处理:P16. 学生入党信息数据字典如表4-6所示表 4-6 数据存储-学生入党信息名称:学生入党信息标号:D2输入:学生入党信息输出:学生入党信息处理:P2,P34.2总体设计4.2.1系统层次图系统层次图如图4-1所示 图4-1 系统层次图4.2.2数据库设计1. 数据库登录表如表4-2 所示 表4-2 登录表login列名 数据类型 长度 允许空 文字描述 id int 4 id,主键name varchar 50 用户名password varchar 50 密码2. 数据库学生表如表4-3 表4-3 学生表student列名 数据类型 长度 允许空 文字描述 number varchar 50 学号name varchar 50 姓名depart varchar 50 Y 班级eid int 4 管理员主键3. 数据库入党表如表4-4 表4-4 入党表state 列名 数据类型 长度 允许空 文字描述 id int 4 主键number varchar 50 学号,外键datetime varchar 50 时间state varchar 50 入党4.3详细设计1. 详细党员信息模块程序流程图如图4-5所示开始输入number,start,endnumber存在start=datetime=end输出number,datetime,stateTF下一条记录FTT结束F 图4-5 详细党员信息模块程序流程图2. 删除模块的程序流程图如图4-6所示开始输入number及datetimenumber,datetimeT删除该记录F结束 图4-6 删除模块的程序流程图4.4运行与测试4.4.1数据库数据1. state表中数据如表4-7表 4-7 state表2. student表中的数据如表4-8表4-8student表3. login表中的数据如表4-9 表 4-9 login表4.4.2运行情况1. 输入用户名:123,密码:123,能正确登录到系统中。如图4-10所示 图4-10 正确登录图3. 输入用户名:123,密码:234,密码错误,不能登录到系统中,返回登录页面,提示“用户名与密码不匹配”。如图4-11所示 图4-11 错误登录图3. 插入学号:06,日期:2015-01-05,政治面貌:党员,符合要求,能够插入数据库,返回插入页面。如图4-12所示 图4-11 插入新的党员信息图4. 输入学号:02,日期:2015-10-10,政治面貌:党员。数据库中已存在员工号为02,日期为2010-10-10的记录,不能插入。返回插入页面,提示“该党员信息已存在,请重新填写”的信息。如图4-13所示 图4-13 信息重复图5. 当只插入学号:01,数据不完整,不能插入数据库中,返回插入页面,提示“信息不完整”。如图4-14所示 图4-14信息不完整图 6. 点击学号为03的“详细信息”,跳转到detail.jsp页面。显示03的详细党员信息。如图4-15所示 图4-15 详细信息图 7. 点击“返回上一级”,跳到showstate.jsp页面。如图4-16所示 图4-16返回上一级4.4.3结果分析1. 在登录时,如果用户名或密码输入不正确时,无法与数据库Login表相同,界面仍是登陆界面,会提示“用户名与密码不匹配”的错误信息;2. 在插入新的考勤信息界面时,如果number与datetime与数据库表中记录相同,则不能插入,界面仍是插入界面,会提示出错“该党员信息已存在,请重新填写” ;3.在插入新的考勤信息界面时,如果信息填写不完整,不能插入,界面仍是插入界面,提示“信息不完整”的错误信息;4. 在查询命令时,先输入所需查询的发展时间和入党时间,显示的结果为所要数据。党员信息状况。5.总结与展望经过这几天的课程设计,让我对JavaEE有了更加稳固的掌握。在面对一个系统要求时,首先要分析出它的业务需求,继而自己分析出适合与计算机的系统需求。将系统需求转化称数据流程图,来分析各个处理是怎样处理数据的。记录在数据流程图中的数据字典。画出系统层次图,让整个系统的结构更加清晰明了。将每一个模块详细设计。在设计过程中,设计到了数据库的设计。一个好的数据库设计使一个程序更加灵活。整个过程中都贯穿了软件工程的程序设计思想。虽然是一个比较小的系统,但运用工程的思想让整个过程都具有流程性,检查时更加方便。这个设计做得不是很好,有很多实际中需要的功能都不能很好的实现。但我会加倍努力,来让自己更加充实。附录1. control 层UserAction类的主要代码public String login()UserService userService=new UserService();if(userService.login(name, password)!=0)session.put(eid,userService.login(name, password);System.out.println(session.get(eid);/*若userService.login(name, password)返回值不为0,则,将返回值装到session中,键为“eid”*/return success;elseerror=用户名与密码不匹配; /用户名或密码错误时,定义错误信息errorreturn error;public String select()UserService userService=new UserService();int eid=Integer.parseInt(ActionContext.getContext().getSession().get(eid).toString();/从session中提取“eid” 的值,放到eid 中。List list=userService.select(start,end,eid);ActionContext acx=ActionContext.getContext();request=(Map)acx.get(request);request.put(list,list); /将返回的入党信息封装到request的“list”中Map session=acx.getSession();session.put(start,start); /将开始时间封装到session的“start”中session.put(end,end); /将截至时间封装到session的“end”中return success;public String detail()UserService userService=new UserService();ActionContext acx=ActionContext.getContext();start=ActionContext.getContext().getSession().get(start).toString();end=ActionContext.getContext().getSession().get(end).toString(); /从session中提取“start”和“end”分别放到start和end中List list=userService.detail(name,start,end);request=(Map)acx.get(request);request.put(detail,list); /将查询到的详细信息封装到request的“detail”中return success;public String delete()UserService userService=new UserService();userService.delete(name,date); /删除学号为name,日期为date的记录return success;public String enter()return success;public String insert()UserService userService=new UserService();if(number.equals()|date.equals()|state.equals()error=信息不完整; /*当插入信息时,有一项信息没填,则定义错误信息error*/return error; else if(userService.insert(number, date, state)return success; /当输入符合要求时,能插入所填写的信息elseerror=该党员信息已处在,请重新填写; /*若数据库中number和datetime已存在,则不能插入,定义错误信息error*/return error;2. service 层的UserService类的主要代码public class UserService public int login(String name,String password)UserDao userDao=new UserDao();return userDao.login(name,password); /*返回值为0,或者为当前登录的管理员的id*/public List select(String start,String end,int eid)UserDao userDao=new UserDao();return userDao.select(start,end,eid); /返回为null,或者学生入党信息的集合public List detail(String number,String start,String end)UserDao userDao=new UserDao();return userDao.detail(number,start,end); /*返回学号为number,时间在start到end之间的详细入党信息*/public void delete(String number,String date)UserDao userDao=new UserDao();userDao.delete(number, date); /删除学号number,时间date的记录public boolean insert(String number,String date,String state)UserDao userDao=new UserDao();if(userDao.insert(number, date, state)return true; /如果正确插入,则返回trueelse return false; /如果不能插入,则返回false3. dao层UserDao类的主要代码public class UserDao public int login(String name,String password)Connection con=DBConnection.getConnection(); /定义连接类String pass=null; /用来接收数据库返回的密码值int id=0; /用于接收数据库返回的管理员的主键idtryPreparedStatement ps=con.prepareStatement(select * from login where name=?); /在login表中查找与name对应的记录ps.setString(1, name); /定义name的实参ResultSet rs=ps.executeQuery();if(rs.next()pass=rs.getString(password);id=rs.getInt(id);mit();con.close();if(pass!=null&pass.equals(password)return id; /如果密码存在,则返回idelse return 0; /密码不存在,则返回0catch(SQLException e)e.printStackTrace();return 0; public List select(String start,String end,int eid)Connection con=DBConnection.getConnection();int num=pareTo(start)+1; /定义所统计的时间段,1个月之内的tryPreparedStatement ps=con.prepareStatement(select number,name,depart from employee where eid=?); /在employee表中查找“eid”为eid的记录ps.setInt(1,eid);/对eid赋实参ResultSet rs=ps.executeQuery();List list=new ArrayList();while(rs.next()Employee em=new Employee();em.setNumber(rs.getString(number);em.setName(rs.getString(name);em.setDepart(rs.getString(depart); /将查找出的number,name,depart封装到student的实体类中String number=rs.getString(number);float full=0; / PreparedStatement ps1=con.prepareStatement(select state fromstate where number=? and datetime between ? and ?); /在state表中查找与number对应,且时间在start到end之间的记录ps1.setString(1,number);ps1.setString(2,start);ps1.setString(3,end); /赋实参ResultSet rs1=ps1.executeQuery();while(rs1.next()if(rs1.getString(state).equals(入党)full+; if(full=num)em.setFull(党员);else em.setFull(非党员); list.add(em);mit();con.close();return list;catch(SQLException e)e.printStackTrace();return null;public List detail(String number,String start,String end)Connection con=DBConnection.getConnection();tryPreparedStatement ps=con.prepareStatement(select * from state where number=? and datetime between ? and ?);ps.setString(1,number);ps.setString(2,start);ps.setString(3,end); /赋实参ResultSet rs=ps.executeQuery();List list=new ArrayList();while(rs.next()Detail de=new Detail();de.setNumber(rs.getString(number);de.setDate(rs.getString(datetime);de.setState(rs.getString(state); /将查找的信息按记录封装到Detail实体类中list.add(de); /将实体类封装到list中return list;catch(SQLException e)e.printStackTrace();return null;public void delete(String number,String date)Connection con=DBConnection.getConnection();tryPreparedStatement ps=con.prepareStatement(delete from state where number=? and datetime=?);/删除与number,datetime对应的记录ps.setString(1, number);ps.setString(2,date);ps.executeUpdate();mit();con.close();catch(SQLException e)e.printStackTrace();public boolean insert(String number,String date,String state)Connection con=DBConnection.getConnection();String c; /接收搜索到的时间int flag=0; /标识变量,标识记录是否已存在tryPreparedStatement ps=con.prepareStatement(select datetime from state where number=?);ps.setString(1,number);ResultSet rs=ps.executeQuery();while(rs.next()c=rs.getString(datetime);if(c.equals(date)flag=1; /如果记录已存在,则flag置为1 if(flag=0) /如果记录不存在,进行插入操作ps=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 27《我坚持我成功》教学设计-2023-2024学年心理健康四年级下册北师大版
- 18文言文二则《铁杵成针》教学设计-2023-2024学年统编版语文四年级下册
- 《冰融化了》教学设计-2024-2025学年科学三年级上册教科版
- 七年级生物下册 第三单元 第二章 人的生活需要空气 第三节 呼吸保健与急救教学设计设计(新版)济南版
- 2018春苏科版八年级生物下册第八单元第24章同步教学设计:8.24.1人体的免疫防线
- 行政工作总结课件
- 2023三年级英语上册 Unit 4 I have a ball Lesson 20教学设计 人教精通版(三起)
- 9 端午粽 教学设计-2024-2025学年语文一年级下册统编版
- Unit 2 No Rules No Order Section A(2a~2f)教学设计-2024-2025学年人教版英语七年级下册
- Unit 9 Section B 2a-2e 教学设计2024-2025学年人教版八年级英语下册
- 《墙面原位加固修复技术规程》
- 2024年中国养老产业商学研究报告-银发经济专题
- 《软件工程经济学》课件-第3章
- 2024游乐新“室”界室内乐园洞察与趋势研究报告
- 2024年共青团入团积极分子考试题库及答案
- 2024年大语言模型的能力边界与发展思考报告
- 高教版2023年中职教科书《语文》(基础模块)下册教案全册
- 办公楼外立面节能亮化方案
- 膀胱电切术后护理查房
- 维修电工高级技师培训计划与教学大纲
- 川教版四年级《生命.生态.安全》下册全册 课件
评论
0/150
提交评论