江莉《大型数据库-课程设计》课程设计说明书_第1页
江莉《大型数据库-课程设计》课程设计说明书_第2页
江莉《大型数据库-课程设计》课程设计说明书_第3页
江莉《大型数据库-课程设计》课程设计说明书_第4页
江莉《大型数据库-课程设计》课程设计说明书_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、 报刊征订发行系统数学与计算机学院课程设计说明书课 程 名 称: 大型数据库-课程设计 课 程 代 码: 8424141 题 目: 小区物业管理系统 年级/专业/班: 09级计科5班 学 生 姓 名: 陈年有 学 号: 312009080605530 开 始 时 间: 2012 年 6月 13 日完 成 时 间: 2012 年 6月 30 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日I大型数据库课 程 设 计 任 务 书学院名称: 数学与计算机学院 课程代码:_84241

2、41_专 业: 计算机科学与技术 年 级: 2009 一、设计题目小区物业管理系统二、主要内容 1、设计说明: 通过对小区物业管理的业务流程进行分析,完成具有车辆管理、人员进出、收费管理(水、电、气、物业、停车)、设备维修、留言互动等功能模块的小区物业管理系统。本系统要求采用C/S模式。基本要求 :通过对小区物业管理的业务流程进行分析,完成具有车辆管理、人员进出、收费管理(水、电、气、物业、停车)、设备维修、留言互动等功能模块的小区物业管理系统。本系统要求采用C/S模式。三、具体要求及应提交的材料1、完成系统的需求分析:包含功能需求、数据需求、性能需求等。2、完成系统设计:包含系统概要设计(软

3、件结构图)及详细设计(画出流程图)。3、测试:编写合适的测试用例完成系统的测试工作并分析结果。4、完成后应上交的材料: 课程设计说明书:包含封面、任务书、说明书(说明书见后面模板)。 包括系统设计目的要求,类的层次图(包括类成员列表)、设计思路,系统功能模块图、参考资料、程序清单、设计心得总结等。对照自己设计的完成情况认真书写。 软件源程序光盘。四、主要技术路线提示根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (

4、5)完成系统的模块组装、调试; 五、进度安排课程设计共两周(16、17周)进行,其进度时间大致分配如下: (1)需求分析,系统菜单设计、类的层次设计(2天)(2)类的定义,各个类中属性、方法的声明(1天)(3)类的实现,各个类中成员函数的定义(3天)(4)程序主框架,程序的模块链接、调试(2天)(5)课程设计报告的书写(1天)(6)提问验收(1天)六、推荐参考资料1 杨树林. C#程序设计与案例教程M. 清华大学出版社.20072 马骏. C# 网络应用编程基础M. 人民邮电出版社.20103 陈克力等. SQL Server 2005编程基础M. 清华大学出版社.2008指导教师 签名日期

5、年 月 日系 主 任 审核日期 年 月 日1目 录 1 引 言11.1 问题的提出11.2网络化11.3任务与分析12 需求分析22.1用户功能22.2 管理员功能22.3数据分析概念模型分析33.概要设计53.1软件系统结构的设计53.2 数据库的设计54.详细设计74.1 主程序流程图74.2 具体功能实现步骤75.主要代码106.测试分析156.1用户征订报刊功能测试156.2管理员管理报刊功能测试167.使用说明书198.总结19结 论20致 谢21参考文献22摘 要随着计算机的普及,报刊的征订方式也发生了变化,通过计算机对读者的订阅和编辑报刊的发行的版本的修改都变得很便捷,用户只要通

6、过网页的注册、登陆、选择要订阅的报刊,就能快速的完成订阅。管理者也可以通过计算机快速的查看订阅者了订阅信息,包括报刊编号,名字,订阅量,价格等,也可以进行发行管理,对报刊进行增加,修改,删除操作,并且有自动的计算费用的功能。关键词:网络化 计算机 用户 管理者 报刊征订系统1 引 言 1.1 问题的提出 随着计算机的普及,网络进入大众的家庭,但是订阅报刊需要去特定的邮局,因而很浪费时间,所以使用计算机来进行报刊的订阅或者使用计算机来进行报刊的管理就显得便捷。1.2网络化 网络化就是通过计算机的网络来实现不同区域的不同用户来实现对报刊的订阅,这样也便于管理者对报刊的管理,显得更加方便。1.3任务

7、与分析本课题主要的目的是为了实现网络上对报刊的征订和报刊的管理。通过对报刊杂志征订发行的业务流程进行分析,完成具有征订管理、发行管理等功能模块的系统。用户能实现对报刊各类、数量的订阅,查看订阅的报刊信息,删除已经订阅的报刊。管理者可以实现后台的管理,实现报刊种类的增加,报刊信息的修改,删除报刊种类,并查看报刊的订阅情况。实现在线注册新的用户。这些与数据库的连接,可以方便的实现信息的正确的同步。2 需求分析 2.1用户功能2.11添订阅报刊功能 用户登录报刊征订发行系统后,可根据显示的报刊信息,选择要订阅的报刊,输入报刊编号及征订数量,方可完成征订工作。2.1.2删除订阅功能从已经订阅好的购物车

8、中(购物车相当于设计的一个哈希表),删除指定的报刊,最后将购物车中的订阅的报刊存放到数据库的用户订阅表中。2.1.3注册功能 在登录页面选择注册,则进入到新用户的注册页面,依次填写用户名和密码,再填写用户的资料:姓名、地址、电话。当填写完成后,则保存到数据库中的用户表中。2.2 管理员功能 2.2.1增加报刊功能管理员在后台对报刊各类进行添加,添加时需要填写的信息包括报刊的编号、年限、名称、价格等。2.2.2修改功能管理员对已经存在的报刊的信息进行修改,包括报刊的年限、名称、价格等,但不能修改报刊的编号,在这是因为以报刊的编号作为主键进行的查找要修改的报刊信息。2.2.3删除功能管理员在后台对

9、已经存在的报刊进行删除,操作为直接输入要删除的报刊的编号,后台自动的查找到这个报刊,再从数据库中的报刊信息表中彻底的删除该类报刊的所有信息。2.2.4查看用户订阅信息管理员登录后,可对报刊的征订情况进行查询,包括每个用户订阅报刊的类型、数量和应付额。2.3数据分析概念模型分析需求分析阶段主要有两个方面的任务:分析用户的数据要求和分析用户的处理要求。通过以上分析,我们已经基本了解了用户对处理的要求,接下来需要的工作是分析用户对数据的要求。为了把用户的数据清晰明确地表达出来,系统分析员通常建立一个概念性的数学模型。概念性模型是一种面向问题的数学模型,是按用户的观点来对数据和信息建模。最常用的表示概

10、念性数据模型的方法是实体-联系方法(Entity-Relationship Approach)。这种方法用E-R图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法,该方法又称为E-R模型,E-R图中共用三种符号:实体、属性和联系。通常实体用矩形来表示,属性用椭圆或圆角矩形来表示,联系用菱形来表示。联系有分为一对一、一对多和多对多三种类型。2.3.1数据库建模经过上面的分析,能够提取以下三个个实体:报刊、用户、管理员。它们的实体图分别如图2-3-1、图2-3-2、图2-3-3、图2-2-4所示。报刊报刊编号报刊名称年限价格图2-3-1报刊实体图用户用户名地址真实姓名电话图2-3-2用户实

11、体图管理员密码用户名图2-3-3管理员实体图N 在找到所有实体的基础上,需要进一步分析各实体之间的联系。经过分析两两实体之间的联系,然后进行合并,给出所有实体的联系图即E-R图,如图2-3-4所示。订阅NM用户报刊管理员管理1图2-3-4报刊订阅系统的E-R图从以上E-R图中可以看到,用户和报刊两个实体之间的联系的类型是多对多的,管理员与报刊两个实体之间的联系的类型是一对一的。2.3.2关系描述的设计根据以上各实体图和报刊订阅系统的E-R图,经过转换,可以导出各个关系。其转换规则为:首先每个实体转化为一个关系,有属性的联系也应转化为一个关系,然后需要给出每个关系的关键字。根据以上规则,直接给出

12、所有关系。报刊(编号、名称、年限、价格)关键字为编号。用户(用户名、真实姓名、地址、电话)订阅(用户名、报刊编号、订阅数量、总的价格)管理员(用户名、密码)3.概要设计3.1软件系统结构的设计软件的系统功能模块如图3-1登陆界面用户管理者添加订阅的报刊删除订阅的报刊新用户注册添加报刊修改报刊信息删除报刊查看客户订阅信息图3-1系统功能模块图3.2 数据库的设计3.2.1 数据库的逻辑设计在完成数据的概念模型设计即E-R图后,即可进入数据库的逻辑设计阶段。数据库的逻辑设计即把得到的满足第三范式的关系转化为特定的数据库管理系统下的数据库。根据前面得到的各个关系,现把它们转化为数据表。 报刊信息表:

13、编号、名称、年限、价格 ,由于报刊号不能存在相同的,所以在本表中编号作为报刊表的主键报刊订阅表:用户名、报刊编号、订阅数量、总的价格用户表信息表:用户名、真实姓名、地址、电话用户登录表:用户名、密码。3.2.2 数据库的物理设计在完成数据库的逻辑设计后,即可开始数据库的物理设计。基于以上数据库的逻辑设计,考虑程序设计的简易性及通用性,本学生学籍管理系统采用SQL-SERVER数据库,并在其下创建1个数据库,3张表。其结构分别如下:(1) 报刊信息表(bkmess),共有4个字段,分别为报刊编号、名称、年限、价格,见表3-1 .列名数据类型主关键字Newspidnchar(10)主键Nianxi

14、annchar(10)nullJieshaonvarchar(50)Not nullJiagefloatNot null表3-2-2-1报刊信息表(2) 用户订阅表(dingyue),共有4个字段,用户名、报刊编号、订阅数量、总价格。见表3-2-2-2列名数据类型主关键字Usernamenchar(10)外键Newspidnchar(10)外键ShuliangintnullZongjifloatnull表3-2-2-2用户订阅表(3) 用户表(usermess),共有4个字段、姓名、地址、电话。见表3-2-2-3列名数据类型主关键字Usernamenchar(10)主键Xingmingncha

15、r(10)Not nullAddressvarchar(50)Not nullTelephvarchar(50)Not null表3-2-2-3用户表4.详细设计4.1 主程序流程图开始登录页面用户登录管理员登录用户注册输入用户名和密码选择操作图4-1主程序流程图4.2 具体功能实现步骤4.2.1用户添加订阅报刊功能模块 用户在登录页面输入用户名和密码,经过连接数据库检查该用户是否存在,并且用户名和密码是否对应正确,正确则进入报刊订阅页面,否则显示“用户名和密码不正确”返回到登录页面。进入报刊订阅页面,参照显示的报刊信息,在订阅框中输入要订阅的报刊编号和订阅份数,点击放入购物车中,则跳转到已经

16、订阅的页面中,在这可以查看到已经订阅的报刊信息。流程图如下图4-2-1开始 是输入用户名、密码调用验证函数用户存在否进入报刊订阅页面输入报刊编号,订阅数量点击“放入购物车”登录界面点击“返回”显示出错跳转到订阅信息页面点击“继续购买”图4-2-1用户添加订阅报刊功能流程图4.2.2用户删除订阅报刊功能模块用户在登录后,则进入报刊订阅页面,点击查看订阅报刊信息,则跳转到已经订阅的页面中,在这可以通过哈希表可以查看并显示到已经订阅的报刊信息,在每个报刊后面有一个删除按钮,用动作监控,传递报刊的ID号作为删除的唯一标识,在哈希表查找,找到将其从哈希表中删除,并返回到,用户订阅页面。流程图如下图4-2

17、-2开始否是id=ID获取要删除的报刊的编号id哈希表的第一个报刊的编号ID从哈希表中删除这个报刊ID为哈希表中下一条的报刊编号结束,回到订阅报刊页面图4-2-2删除订阅报刊功能流程图4.2.3用户注册功能模块在登录页面直接点击注册,则进入登记一个新的用户资料的页面,依次用户名、密码,当连接好数据库主之后,保存用户名和密码,现登记相关用户信息,姓名、地址、联系电话,最后进入订阅的页面。注册新用户操作流程图如下图4-2-3开始输入用户名和密码连接数据库中的表将新的用户名和密码存放到用户表填写姓名、地址、电话关闭连接,跳转到填写资料页面将新用户名信息保存到表中连接数据库中的用户信息表关闭连接,跳转

18、到填写资料页面图4-2-3注册新用户操作流程图5.主要代码(1)用户登录的主要代码 用户登录 /显示的标题 欢迎订报,请您登陆 /当输入用户名和密码后,跳转页面 用户名: 密 码: /点击“注册”跳转的页面 /点击“管理”跳转的页面 (2)用户订阅报刊的主要代码 欢迎订报,请填写您要购买的报刊编号 报刊编号:/订阅的报刊编号 订阅数量: (3)用户查看订阅信息 报刊订阅 /设置两个变量,用于计算总价格% String baoid = request.getParameter(bkid);/获取哈希表中的报刊编号 String snum = request.getParameter(dynum)

19、;/获取哈希表中的订阅数量 if(baoid != null & baoid != )/报刊编号存在 int num = Integer.parseInt(snum); dy.add(baoid,num); Hashtable tb = dy.show();/显示哈希表中的信息 Enumeration e = tb.keys(); 报刊编号年限 简介 价格 订购数量 删除% while(e.hasMoreElements() String naTemp = e.nextElement().toString(); int nTemp=(Integer)tb.get(naTemp).intValu

20、e(); ResultSet res=bk.chazhao(naTemp); while(res.next() float jiage=res.getFloat(4); xiaoji=jiage*nTemp; out.println(es.getString(2)+); out.println(res.getString(3)+); out.println(res.getFloat(4)+);input type=submit value=删除 onClick=javascript:window.location=dydel.jsp?baoid= allm=allm+xiaoji; out.p

21、rint(应付金额:+allm+元 );String allmo=allm+;(4)用户删除订阅的报刊 删除报刊信息 /确定删除后的跳转页面 编号: (5)用户注册 String userID=request.getParameter(newname); String pwd=request.getParameter(newpwd);/连接数据库 try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); String url=jdbc:sqlserver:/localhost:1433;DatabaseName=Bkdy;

22、 String user=sa; String pas=sa; Connection con=DriverManager.getConnection(url,user,pas); Statement st=con.createStatement(); String sq=insert into userm(username,password)values(+userID+,+pwd+);/保存用户名和密码 int count=st.executeUpdate(sq);/执行SQL语句 st.close();/关闭连接 catch(Exception e) System.out.println(

23、e.getMessage(); out.print(alert(注册成功!请填写个人信息);window.location.href=usmessin.jsp?;);/跳转到usmessin.jsp页面% 用户信息填写 /填完信息跳转到usmessadd.jsp, 您的姓名: 您的地址: 联系电话: Usmessadd.jsp(用户信息增加): % String xim=request.getParameter(usernm); String dizhi=request.getParameter(add); String dh=request.getParameter(tele); try/连

24、接数据库,并将用户信息保存在用户信息表中 Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); String url=jdbc:sqlserver:/localhost:1433;DatabaseName=Bkdy; String user=sa; String pas=sa; Connection con=DriverManager.getConnection(url,user,pas); Statement st=con.createStatement(); String yhid=yh.getYhm(); String

25、sq=insert into usermess(username,xingming,address,teleph)values(+yhid+,+xim+,+dizhi+,+dh+); int count=st.executeUpdate(sq); st.close();catch(Exception e) out.print(alert(谢谢。欢迎订报);window.location.href=list.jsp?;); %5.2 管理员维护的主要代码(1)管理员增加报刊 增加报刊信息 /填写完报刊信息后,确认跳转到报刊增加页面,进行连接数据库,保存报刊信息 编号: 年限: 简介: 价格: (

26、2)管理员修改报刊信息 修改报刊信息 /修改完报刊信息后,确定跳转到报刊修改页面bkxg.jsp,进行连接数据库,保存修改的报刊信息 编号: 年限: 简介: 价格: (3)管理员删除用户信息 删除报刊信息 编号: (4)管理员查看订阅情况 用户名 真实姓名 地址 电话 报刊编号 年限 简介 价格 订阅数量 java.sql.PreparedStatement sqlr=null; java.sql.PreparedStatement sqlf=null; java.sql.PreparedStatement sqls=null; java.sql.PreparedStatement sqltj

27、=null; java.sql.ResultSet rs=null; java.sql.ResultSet rsf=null; java.sql.ResultSet rss=null; java.sql.ResultSet rstj=null; try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); String url=jdbc:sqlserver:/localhost:1433;DatabaseName=Bkdy; String user=sa; String pas=sa; Connection con=Drive

28、rManager.getConnection(url,user,pas); sqlr=con.prepareStatement(select username,newspid,shuliang,zongji from dingyue); rs=sqlr.executeQuery(); while(rs.next()out.print(); String userna=rs.getString(1); String newsID=rs.getString(2); sqlf=con.prepareStatement(select * from usermess where username=+us

29、erna+); rsf=sqlf.executeQuery(); while(rsf.next() out.println(td +rsf.getString(1)+);out.println(td rsf.getString(2)+); out.println(tdrsf.getString(3)+); out.println(tdrsf.getString(4)+); sqls=con.prepareStatement(select * from bkmess where newspid=+newsID+); rss=sqls.executeQuery(); while(rss.next(

30、) out.println(rss.getString(1)+); out.println(rss.getString(2)+); out.println(rss.getString(3)+); out.println(rss.getFloat(4)+); out.println(rs.getInt(3)+); catch(Exception e) Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); 付款查看: String url=jdbc:sqlserver:/localhost:1433;DatabaseName=Bk

31、dy; String user=sa; String pas=sa; Connection con=DriverManager.getConnection(url,user,pas); sqlr=con.prepareStatement(select distinct username from dingyue); rs=sqlr.executeQuery(); while(rs.next() allmo=0; String ming=rs.getString(1); System.out.println(ming); out.print(rs.getString(1)+应付:); sqltj

32、=con.prepareStatement(select username,newspid,shuliang,zongji from dingyue where username=+ming+); rstj=sqltj.executeQuery();while(rstj.next() xiaoji=rstj.getFloat(4); allmo=xiaoji+allmo; out.print(allmo+元+); catch(Exception e) 6.测试分析6.1用户征订报刊功能测试(1)首先进入Netbeans,打开项目文件bkdys,找到web页下的login.jsp,运行该文件,显

33、示页面为报刊征订系统的登录界面,输入用户名、密码,如输入xdm、123,如图6-1-1所示:图6-1-1用户登录界面图(2)页面会显示当前所有的报刊的信息,根据你所要订阅的报刊输入报刊编号、订阅的数量,如图6-1-2所示:图6-1-2订阅报刊界面图(3)点击放入购物车,将会显示到你所订阅的报刊信息,包括你要付的金额,点击删除按扭可以删除已订阅的信息,如图6-1-3所示:图6-1-3用户删除界面图(4)在首页点击注册按扭,将会进入到新用户注册页面,如图6-1-4所示:图6-1-4注册新用户界面图(5)注册新用户时,新用户信息填写界面,如图6-1-5所示:图6-1-5新用户信息填写界面图6.2管理

34、员管理报刊功能测试(1)在首页点击“管理”按扭,将会进入到管理员登录界面,填写管理员名admin和密码admin,如图6-2-1所示:图6-2-1管理员登陆界面图(2)增加报刊种类时,填写新报刊信息的界面如图6-2-2所示:图6-2-2新报刊信息填写界面图(3)管理员修改报刊信息,选择修改,再输入要修改的报刊编号,修改信息如图6-2-3所示:图6-2-3修改报刊信息界面图(4)管理员删除报刊,通过填写报刊编号来删除报刊,如图6-2-4所示:图6-2-4删除报刊界面图(5)管理员查看报刊订阅情况,如图6-2-5所示:图6-2-5查看报刊订阅界面图(6)在报刊订阅信息查看界面也会显示出每位用户应该付的金额,如图6-2-6所示:图6-2-6用户应付款界面图7.使用说明书在SQL2005中创建一个数据库,并将备份的数据库Bkdy.bak还原到创建的这个数据库中,并命名为Bkdy,在这个数据库中可以查看到定义的三个表,用户表,订阅表,用户信息表。在netbeans软件中打开项目bkdys,显示的JSP代码中找到web页下的login.jsp运行该文件,则进入报刊征订系统的登录界面,在此界面上可进行相应的用户、管理员的操作。8.总结通过上面的测试用例和测试用例的结果我们可以清

温馨提示

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

最新文档

评论

0/150

提交评论