课程设计-报刊订阅管理系统(共25页)_第1页
课程设计-报刊订阅管理系统(共25页)_第2页
课程设计-报刊订阅管理系统(共25页)_第3页
课程设计-报刊订阅管理系统(共25页)_第4页
课程设计-报刊订阅管理系统(共25页)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上专心-专注-专业软件工程课程设计报告精选优质文档-倾情为你奉上专心-专注-专业目目 录录3 面向对象分析面向对象分析 3.1 面向对象分析 3.2 系统的结构图 7.7.参考文献参考文献精选优质文档-倾情为你奉上专心-专注-专业1 1. .开发环境和相关技术介绍开发环境和相关技术介绍1.11.1 开发环境开发环境系统结构:C/S 结构数据库系统:Microsoft SQL Server 2000 sp3宿主语言:JAVA数据库连接方式:JDBC 连接方式开发工具:Eclipse 相关技术介绍相关技术介绍Microsoft SQL Server 20

2、00 数据库管理系统是微软公司研制开发的关系型数据库管理系统。该系统支持并扩展了 SQL 语言标准,可以运用标准 SQL 语句对数据进行操作,也可以使用功能强大的 GUI 工具进行灵活的数据管理。同时,系统还提供功能完善的 API,可以在应用程序中调用这些 API 来实现与数据库系统的连接以及相关数据的操作。sp3 是该系统的一个版本号,只有 sp3以上的 SQL 2000 系统才能够支持纯 JDBC 连接方式。Eclipse:功能强大的应用程序开发工具,主要支持基于 Java 语言的各种开发项目。灵活的 Plun-in 功能,可以根据具体需要安装各种插件。JDBC 连接方式:Java 与数据

3、库系统的一种连接方式,Java 程序使用 JDBC API 与数据库进行通信,并用它操作数据库中的数据。JDBC API 使 Java 程序与具体数据库系统独立开来,保证了 Java 程序高度的可移植性。2.2.需求分析需求分析2.12.1 系统需求和功能设计一个报刊订阅应用系统,使系统满足以下功能和需求:1)a 一个订户可订多种报刊;一种报刊可被多个用户订阅;订单只能订阅现有报刊目录内容;b 投递时,必须根据订单的情况进行投递,不得超出订单的订阅品种、数量;2) 、系统功能包括:a 订户管理:订户添加、修改、删除;b 目录管理:目录添加、修改、删除;c 订单管理:完成订户订阅数据的管理(包括

4、添加、修改、删除) ;d 订单查询:按订户或者订单号查询订单详细情况;e 统计查询:按报刊目录统计各类报刊的订阅数量及金额;f 表单生成:根导出统计信息到文件(.xl精选优质文档-倾情为你奉上专心-专注-专业2.22.2 数据字典数据字典.1 数据结构数据结构管理员用户=管理员帐户+管理员密码订户=订户编号+订户名+联系电话+联系地址目录=目录编号+目录名+单价+批注信息订单=订单号+订户编号+下订日期订单细节=订单号+目录编号+订阅数量+订阅期数+单价+总价(注:为保证订单确定后价格不随目录单价变动,订单细节中应该有独立的单价来记录下订时目录的单价).2 数据

5、项数据项表 2.1 数据项表编号标识符类型长度所属表名同义名1UNameVarchar20Login管理员帐户2UPasswordVarchar20Login管理员密码3CidVarchar10Customer,Order订户编号4CnameVarchar20Customer订户名5PhoneVarchar15Customer联系电话6AddressVarchar50Customer联系地址7DidVarchar10Diretory,OrderDetail目录编号8DnameVarchar20Diretory目录名9UnitPriceFloat8DiretoryOrderDetail目录单价,

6、下订时目录单价10IfoVarchar50Diretory批注信息11OnoVarchar10Order,OrderDetail订单编号12OdateDatetime8Order下订日期13Quantity, Int4OrderDetail订阅数量14QiShu,Int4OrderDetail订阅期数15TotalFloat8OrderDetail订单项总价精选优质文档-倾情为你奉上专心-专注-专业.3 数据流数据流表 2.2 数据流表编号名称来源去向组成1身份信息系统管理员应用系统管理员帐户+密码2授权信息应用系统系统管理员3错误身份信息应用系统系统管理员4查询请求系统管理员

7、应用系统待查询对象识别符(如Cid,Ono)5查询结果应用系统系统管理员被查询对象具体信息6管理请求系统管理员应用系统识别符(Cid,Ono 等)+管理类型7管理结果信息应用系统系统管理员被管理对象处理结果8非法请求应用系统系统管理员非法请求提示信息 2.32.3 安全性要求安全性要求访问数据库时需要输入登陆帐号和密码。在数据库内设有管理员表,登陆系统时会要求输入管理员帐号和密码。登陆模块根据输入帐号和密码查管理员表,查到匹配记录则允许其登陆系统。管理员帐号和密码可以在系统中添加和修改。2.42.4 一致性要求一致性要求在管理系统相关的表之间,有较强的关联性。为了实现一致性的需求,各个表之间均

8、建立起了相应的一致性约束。2.52.5 完整性要求完整性要求根据报刊订阅管理系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障引起的数据不一致。3 3 面向对象分析面向对象分析3.1 面向对象分析面向对象分析 设计报刊订阅系统,主要的目的是使得用户在订阅是能跟回家的方便快捷同时也使得报刊提供商能更加有效的管理企业的销售状况。同时面向对象分析使得人员关注理解系统需要建立的内容,从而产生一个准确的完整的一致的和可验证的系统模型。精选优质文档-倾情为你奉上专心-专注-专业管理员表管理员表(Administrator):用于存放管理员的数据记录,包括数据项:管理员名、密码。部门表

9、部门表(Department):用来存放部门的相关记录,包括数据项:部门号,部门名。用户表用户表(Consumer):用于存放注册用户的记录,包括数据项:用户账号、密码、真实姓名、身份证号、联系电话,联系地址,部门号(和部门表部门表有关)等。报刊信息表报刊信息表(magazine):用于存放报刊记录,包括数据项:报刊代号、报刊名称、出版报社、出版周期、季度报价、内容介绍、分类编号(和报报刊类别表刊类别表有关)等。订单表(订单表(subscribe):用于存放用户下达的订阅报刊的基本信息,包括数据项:订单编号用户编号(用户表的主码) 、报刊代号(报刊信息表的主码) 、订阅份数、订阅月数等。用例图

10、:用例图:由上面的分析需能够确定系统用例图:精选优质文档-倾情为你奉上专心-专注-专业类图:类图:在根据已定义的对象类及其联系,以及对象类的多重性、角色、导航等性质,可以画出对象类图 ,使用对象图的目的是分析系统的瞬间状态,以便进一步了解系统的结构和行为。分析对象模型:也同时可以确定所有实体之间的 E-R 图:处理管理员订单用户订制拥有订阅包含部门报刊报刊类别用户帐号真实姓名密码身份证号联系电话联系地址部门号部门号部门名称管理员名密码分类编号分类名称报刊代号报刊名称出版报社出版周期内容介绍季度订价分类编号订单编号用户账号报刊代号订阅份数订阅月数1 M1M1MMNM1图 3.1 报刊订阅管理系统

11、 E-R 图精选优质文档-倾情为你奉上专心-专注-专业3.23.2 系统结构图系统结构图报报刊刊订订阅阅管管理理系系统统登登陆陆模模块块登登陆陆验验证证修修改改管管理理员员添添加加管管理理员员订订户户管管理理增增加加订订户户修修改改订订户户删删除除订订户户目目录录管管理理增增加加目目录录修修改改目目录录删删除除目目录录订订单单管管理理增增加加订订单单删删除除订订单单修修改改订订单单查查询询功功能能目目录录查查询询订订单单查查询询统统计计查查询询报报表表导导出出管管理理功功能能用用户户查查询询结结果果导导出出到到文文件件图 4.1 系统结构图4.4.数据库实施数据库实施4.14.1 数据库创建数

12、据库创建4.1.1 各数据表说明表 4.1 数据表描述表编号数据表名称类型内容01Login辅助表记录管理员帐号,密码02Customer主表记录订户信息03Diretory主表记录目录信息04Order主表记录订单基本信息05OrderDetail主表记录详细订单项信息精选优质文档-倾情为你奉上专心-专注-专业4.1.2 数据库创建在 Microsoft SQL Server 2000 的企业管理器中完成数据库和数据表的创建CREATE TABLE dbo.Customer (Cid varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Cname

13、 varchar (20) COLLATE Chinese_PRC_CI_AS NULL ,Phone varchar (15) COLLATE Chinese_PRC_CI_AS NULL ,Address varchar (50) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARYGOCREATE TABLE dbo.Login (UName varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,UPassword varchar (20) COLLATE Chinese_PRC_CI_AS NOT N

14、ULL ) ON PRIMARYGOCREATE TABLE dbo.Diretory (Did varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Dname varchar (20) COLLATE Chinese_PRC_CI_AS NULL ,UnitPrice float NOT NULL ,Ifo varchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGOCREATE TABLE dbo.Order (Ono varchar (10) COLLATE Chinese_PRC_CI

15、_AS NOT NULL ,Cid varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Odate datetime NULL ) ON PRIMARYGOCREATE TABLE dbo.OrderDetail (Ono varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Did varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Quantity int NOT NULL ,QiShu int NOT NULL ,UnitPrice float NOT

16、NULL ,Total float NULL ) ON PRIMARYGO精选优质文档-倾情为你奉上专心-专注-专业4.24.2 数据库备份和恢复方案数据库备份和恢复方案4.2.1 应用辅助工具进行备份和恢复应用数据库辅助工具(如 sqlbackuptools)进行备份,选择所需要备份的数据库和目标地址即可进行数据备份,恢复数据库只需要指定备份文件和需要恢复的数据库即可进行数据恢复。4.2.2 分离数据库法在企业管理器中右击需要备份的数据库,选择“所有任务” , “分离数据库” ,执行分析操作,拷贝数据库 MDF 文件和 LDF 文件。恢复方案:在企业管理器的控制台树中选择“数据库”节点,右击

17、, “所有任务” , “附加数据库” ,找到待恢复数据库的 MDF 文件,确定。4.34.3 用户界面设计和应用程序编码用户界面设计和应用程序编码4.3.1 用户界面设计本系统的用户界面用 Java Swing 编写,主要由 1 个主界面Newspaper.java 和 10 个辅助对话框组成。主界面集合系统主要基本功能按键,辅助对话框负责采集用户输入信息和做基本的信息处理。 用户界面精选优质文档-倾情为你奉上专心-专注-专业4.3.2 类文件功能描述NO.类名类型功能01NewspaperFrame主窗口类,提供系统主要功能的调用接口02Utilities辅助类封装系统主要数据和方法,为其它

18、类提供信息处理功能03AdminCreateDlgDialog管理员创建对话框,提供管理员创建功能04AdminModifyDlgDialog管理员信息修改对话框,修改管理员密码,删除管理员05UserCreateDlgDialog订户新建对话框,采集订户信息,创建新订户06UserModifyDlgDialog订户修改对话框,提供订户修改、删除操作07DirCreateDlgDialog目录新建对话框,采集目录信息,创建新目录08DirModifyDlgDialog目录修改对话框,提供目录修改、删除操作09BookingDlgDialog添加订单对话框,提供新订单添加功能10OrderSea

19、rchDlgDialog订单查找对话框,提供按 Ono 或 Cid 查找订单操作11OrderDetailDlgDialog订单细节对话框,显示订单细节,提供订单和订单项删除操作,并能通过调用 DetailModifyDlg 对话框完成订单项修改。12DetailModifyDialog订单项修改对话框,提供订单项修改操作13LoginDlgDialog管理员登陆对话框,提供登陆界面,检查登陆信息表 4 类文件描述表4.3.3 主要代码分析/-/所属类:Utilities/功能:取得应用程序与数据库系统的连接publicpublic staticstatic voidvoid getConne

20、ction() throwsthrows Exception Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance();/加载驱动程序String url = jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=Newspaper;String user = sa;String password = ;conn = DriverManager.getConnection(url, user, password);/取得连接stmt = conn.cr

21、eateStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);/创建语句conn2 = DriverManager.getConnection(url, user, password);stmt2 = conn2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);/-/所属类:Utilities/功能:完成查询结果的表格显示publicpublic staticstatic voidvoid displayR

22、esultSet(JTable table, ResultSet rs)精选优质文档-倾情为你奉上专心-专注-专业throwsthrows SQLException rs.beforeFirst();/ 指针移到结果集第一条记录前面booleanboolean moreRecords = rs.next();ifif (!moreRecords) / 如果没有记录,则提示一条消息JOptionPane.showMessageDialog(table, 无相关记录, Check your input!,JOptionPane.ERROR_MESSAGE);returnreturn;Vector

23、columnHeads = newnew Vector();/ 用于存储表格字段Vector rows = newnew Vector();/ 用于存储记录行trytry / 获取字段的名称ResultSetMetaData rsmd = rs.getMetaData();forfor (intint i = 1; i = rsmd.getColumnCount(); +i)columnHeads.addElement(rsmd.getColumnName(i);dodo / 获取记录集rows.addElement(getNextRow(rs, rsmd); whilewhile (rs.n

24、ext();/ 建立相应的TableModel,并将TableModel应用到table中显示出来DefaultTableModel model = newnew DefaultTableModel(rows, columnHeads);table.setModel(model);returnreturn; catchcatch (SQLException sqlex) sqlex.printStackTrace();/-/所属类:Utilities/功能:被displayResultSet(JTable table, ResultSet rs)调用, 返回一个记录行privateprivat

25、e staticstatic Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)throwsthrows SQLException Vector currentRow = newnew Vector();forfor (intint i = 1; i = rsmd.getColumnCount(); +i)currentRow.addElement(rs.getString(i);returnreturn currentRow; / 返回一条记录/-/所属类:Utilities/功能:创建空白EXCEL文件,并将统计查询结果导出到该E

26、XCEL文件/说明:使用到org.apache的POI包,表示感谢publicpublic staticstatic booleanboolean outPut(ResultSet rs, File file) ifif (rs = nullnull)returnreturn falsefalse;trytry HSSFWorkbook wb = newnew HSSFWorkbook();HSSFSheet sheet = wb.createSheet(first sheet);sheet.setDefaultColumnWidth(shortshort) 20);ResultSetMeta

27、Data metadata = rs.getMetaData();intint columnCount = metadata.getColumnCount();/ 获取属性列数HSSFRow row = sheet.createRow(shortshort) 0);forfor (intint i = 1; i = columnCount; i+) / 填写表格列名row.createCell(shortshort) (i - 1).setCellValue(metadata.getColumnName(i);精选优质文档-倾情为你奉上专心-专注-专业/ 按行填写记录rs.beforeFirs

28、t();shortshort counter = 1;whilewhile (rs.next() row = sheet.createRow(counter+);forfor (intint i = 1; i 1) / 容器第一个空间放插入Order的sql语句,其它空间放插入OrderDetail的sql语句 / sqls.size()=1表示只有一张空订单,不予插入intint ans = JOptionPane.showConfirmDialog(dialog, 一共需要支付订金:+ sum + 元nContinue?, We need your money,精选优质文档-倾情为你奉上专

29、心-专注-专业JOptionPane.YES_NO_CANCEL_OPTION);ifif (ans = JOptionPane.YES_OPTION) trytry forfor (intint i = 0; i sqls.size(); i+) / 顺序取出sql语句,完成订单添加插入Utilities.stmt.executeUpdate(sqls.get(i);/ 执行插入更新语句dispose();JOptionPane.showMessageDialog(dialog, 订单添加成功!,Success!,JOptionPane.INFORMATION_MESSAGE); catch

30、catch (SQLException exc) exc.printStackTrace(); elseelse ifif (ans = JOptionPane.NO_OPTION) dispose(); elseelse JOptionPane.showMessageDialog(dialog,订单为空,不能提交,请选择需要订阅的期刊, Check again !,JOptionPane.ERROR_MESSAGE););button_2.setEnabled(falsefalse);button_2.setText(提交订单);panel_1.add(button_2);5.5.系统测试方

31、案和测试报告系统测试方案和测试报告5.15.1 测试方案测试方案由于系统规模较小,所以没有安排单独的白盒测试,而是相应地将这部分测试归并到系统编码过程中。整个测试过程基于自顶向下测试的组装模块的方法,先对主模块进行基本测试,然后在按深度优先策略逐一将子模块组装到主模块上进行测试,最后再对系统进行全面的整体测试。5.25.2 测试过程测试过程(白盒测试过程略(参考代码) ,以下是系统黑盒测试过程:)5.2.1 登陆测试双击可执行文件 Newspaper.jar 打开应用系统,可见登陆界面:精选优质文档-倾情为你奉上专心-专注-专业 系统界面输入错误用户名和密码,用户无法登陆: 登陆错误提示信息输入正确用户名和密码,用户正常登陆。(系统自带用户名和密码有(admin,admin),(santino,santino),(ddt,ddt))5.2.2 目录管理功能测试添加目录:选择“添加目录” ,填写目录信息, “确定”精选优质文档-倾情为你奉上专心-专注-专业 添加目录 结果修改目录:“目录管理” , “修改目录” ,输入待修改目录 ID,锁定目录,修改目录, “更新” 。精选

温馨提示

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

评论

0/150

提交评论