课程设计-报刊订阅管理系统.doc

上传人:苏美尔 文档编号:5708006 上传时间:2020-07-23 格式:DOC 页数:25 大小:577.50KB
返回 下载 相关 举报
课程设计-报刊订阅管理系统.doc_第1页
第1页 / 共25页
课程设计-报刊订阅管理系统.doc_第2页
第2页 / 共25页
课程设计-报刊订阅管理系统.doc_第3页
第3页 / 共25页
课程设计-报刊订阅管理系统.doc_第4页
第4页 / 共25页
课程设计-报刊订阅管理系统.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《课程设计-报刊订阅管理系统.doc》由会员分享,可在线阅读,更多相关《课程设计-报刊订阅管理系统.doc(25页珍藏版)》请在三一文库上搜索。

1、软件工程课程设计报告 目目 录录 1.1.开发环境和相关技术介绍开发环境和相关技术介绍 1.1 开发环境 .3 1.2 相关技术介绍 .3 2.2.需求分析需求分析 2.1 系统需求和功能 .3 2.2 数据字典 .4 2.2.1 数据结构.4 2.2.2 数据项.4 2.2.3 数据流.5 2.3 安全性要求 .5 2.4 一致性要求 .5 2.5 完整性要求 .5 3 面向对象分析面向对象分析 3.1 面向对象分析.5 3.2 系统的结构图 .8 4 4. .数据库实施数据库实施 4.1 数据库创建 .8 4.1.1 各数据表说明.8 4.1.2 数据库创建.9 4.2 数据库备份和恢复方

2、案 .10 4.2.1 应用辅助工具进行备份和恢复 .10 4.2.2 分离数据库法.10 4.3 用户界面设计和应用程序编码 .10 4.3.1 用户界面设计.10 4.3.2 类文件功能描述.11 4.3.3 主要代码分析.11 5 5. .系统测试方案和测试报告系统测试方案和测试报告 5.1 测试方案 .16 5.2 测试过程 .16 5.2.1 登陆测试.16 5.2.2 目录管理功能测试.17 5.2.3 订户管理功能测试.20 5.2.4 订单管理功能测试.21 5.2.5 统计查询测试.23 6 6. .完成情况和总结完成情况和总结 6.1 完成情况 .24 6.2 总结 .24

3、 7.7.参考文献参考文献 1 1. .开发环境和相关技术介绍开发环境和相关技术介绍 1.11.1 开发环境开发环境 系统结构:C/S 结构 数据库系统:Microsoft SQL Server 2000 sp3 宿主语言:JAVA 数据库连接方式:JDBC 连接方式 开发工具:Eclipse 3.2 1.21.2 相关技术介绍相关技术介绍 Microsoft SQL Server 2000 数据库管理系统是微软公司研制开发的关系 型数据库管理系统。该系统支持并扩展了 SQL 语言标准,可以运用标准 SQL 语 句对数据进行操作,也可以使用功能强大的 GUI 工具进行灵活的数据管理。同 时,系

4、统还提供功能完善的 API,可以在应用程序中调用这些 API 来实现与数 据库系统的连接以及相关数据的操作。sp3 是该系统的一个版本号,只有 sp3 以上的 SQL 2000 系统才能够支持纯 JDBC 连接方式。 Eclipse:功能强大的应用程序开发工具,主要支持基于 Java 语言的各种 开发项目。灵活的 Plun-in 功能,可以根据具体需要安装各种插件。 JDBC 连接方式:Java 与数据库系统的一种连接方式,Java 程序使用 JDBC API 与数据库进行通信,并用它操作数据库中的数据。JDBC API 使 Java 程序与 具体数据库系统独立开来,保证了 Java 程序高度

5、的可移植性。 2.2.需求分析需求分析 2.12.1 系统需求和功能 设计一个报刊订阅应用系统,使系统满足以下功能和需求: 1) a 一个订户可订多种报刊;一种报刊可被多个用户订阅;订单只能订阅现有报 刊目录内容; b 投递时,必须根据订单的情况进行投递,不得超出订单的订阅品种、数量; 2) 、系统功能包括: a 订户管理:订户添加、修改、删除; b 目录管理:目录添加、修改、删除; c 订单管理:完成订户订阅数据的管理(包括添加、修改、删除) ; d 订单查询:按订户或者订单号查询订单详细情况; e 统计查询:按报刊目录统计各类报刊的订阅数量及金额; f 表单生成:根据统计查询结果导出统计信

6、息到文件(.xl 2.22.2 数据字典数据字典 2.22.2.1.1 数据结构数据结构 管理员用户=管理员帐户+管理员密码 订户=订户编号+订户名+联系电话+联系地址 目录=目录编号+目录名+单价+批注信息 订单=订单号+订户编号+下订日期 订单细节=订单号+目录编号+订阅数量+订阅期数+单价+总价 (注:为保证订单确定后价格不随目录单价变动,订单细节中应该有独立的单 价来记录下订时目录的单价) 2.2.22.2.2 数据项数据项 表 2.1 数据项表 编号标识符类型长度所属表名同义名 1UNameVarchar20Login 管理员帐户 2UPasswordVarchar20Login 管

7、理员密码 3CidVarchar10 Customer,Order订户编号 4CnameVarchar20Customer 订户名 5PhoneVarchar15Customer 联系电话 6AddressVarchar50Customer 联系地址 7DidVarchar10 Diretory,OrderDetai l 目录编号 8DnameVarchar20Diretory 目录名 9UnitPriceFloat8Diretory OrderDetail 目录单价, 下订时目录单价 10IfoVarchar50Diretory 批注信息 11OnoVarchar10 Order,Order

8、Detail订单编号 12OdateDatetime8Order 下订日期 13Quantity, Int4OrderDetail 订阅数量 14QiShu,Int4OrderDetail 订阅期数 15TotalFloat8OrderDetail 订单项总价 2.2.32.2.3 数据流数据流 表 2.2 数据流表 编号名称来源去向组成 1 身份信息系统管理员应用系统管理员帐户+密码 2 授权信息应用系统系统管理员 3 错误身份信息应用系统系统管理员 4 查询请求系统管理员应用系统待查询对象识别符(如 Cid,Ono) 5 查询结果应用系统系统管理员被查询对象具体信息 6 管理请求系统管理员

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

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

11、sumer):用于存放注册用户的记录,包括数据项:用户账号、 密码、真实姓名、身份证号、联系电话,联系地址,部门号(和部门表部门表有 关)等。 报刊信息表报刊信息表(magazine):用于存放报刊记录,包括数据项:报刊代号、 报刊名称、出版报社、出版周期、季度报价、内容介绍、分类编号(和报报 刊类别表刊类别表有关)等。 订单表(订单表(subscribe):用于存放用户下达的订阅报刊的基本信息,包括数据项:订单编 号用户编号(用户表的主码) 、报刊代号(报刊信息表的主码) 、订阅份数、订阅月数等。 用例图:用例图:由上面的分析需能够确定系统用例图: 类图:类图:在根据已定义的对象类及其联系,

12、以及对象类的多重性、角色、导航等性质,可以 画出对象类图 ,使用对象图的目的是分析系统的瞬间状态,以便进一步了解系统的结构和 行为。分析对象模型: 也同时可以确定所有实体之间的 E-R 图: 处理 管理员 订单 用户 订制 拥有订阅 包含 部门报刊 报刊类别 用户帐号 真实姓名 密码 身份证号 联系电话 联系地址 部门号 部门号部门名称 管理员名 密码 分类编号分类名称 报刊代号 报刊名称 出版报社 出版周期 内容介绍季度订价 分类编号 订单编号 用户账号 报刊代号 订阅份数 订阅月数 1 M 1 M 1 M MN M 1 图 3.1 报刊订阅管理系统 E-R 图 3.23.2 系统结构图系统

13、结构图 报报刊刊订订阅阅管管理理系系统统 登登陆陆模模块块 登登 陆陆 验验 证证 修修 改改 管管 理理 员员 添添 加加 管管 理理 员员 订订 户户 管管 理理 增增 加加 订订 户户 修修 改改 订订 户户 删删 除除 订订 户户 目目 录录 管管 理理 增增 加加 目目 录录 修修 改改 目目 录录 删删 除除 目目 录录 订订 单单 管管 理理 增增 加加 订订 单单 删删 除除 订订 单单 修修 改改 订订 单单 查查询询功功能能 目目 录录 查查 询询 订订 单单 查查 询询 统统 计计 查查 询询 报报表表导导出出管管理理功功能能 用用 户户 查查 询询 结结果果 导导 出出

14、 到到 文文 件件 图 4.1 系统结构图 4.4.数据库实施数据库实施 4.14.1 数据库创建数据库创建 4.1.1 各数据表说明 表 4.1 数据表描述表 编号数据表名称类型内容 01Login辅助表记录管理员帐号,密码 02Customer主表记录订户信息 03Diretory主表记录目录信息 04Order主表记录订单基本信息 05OrderDetail主表记录详细订单项信息 4.1.2 数据库创建 在 Microsoft SQL Server 2000 的企业管理器中完成数据库和数据表的创建 CREATE TABLE dbo.Customer ( Cid varchar (10)

15、COLLATE Chinese_PRC_CI_AS NOT NULL , Cname 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 PRIMARY GO CREATE TABLE dbo.Login ( UName varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL , UPassw

16、ord varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARY GO CREATE 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 PRIMARY GO CREATE

17、TABLE dbo.Order ( Ono varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL , Cid varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL , Odate datetime NULL ) ON PRIMARY GO CREATE TABLE dbo.OrderDetail ( Ono varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL , Did varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

18、 Quantity int NOT NULL , QiShu int NOT NULL , UnitPrice float NOT NULL , Total float NULL ) ON PRIMARY GO 4.24.2 数据库备份和恢复方案数据库备份和恢复方案 4.2.1 应用辅助工具进行备份和恢复 应用数据库辅助工具(如 sqlbackuptools)进行备份,选择所需要备份 的数据库和目标地址即可进行数据备份,恢复数据库只需要指定备份文件和需 要恢复的数据库即可进行数据恢复。 4.2.2 分离数据库法 在企业管理器中右击需要备份的数据库,选择“所有任务” , “分离数据库” , 执行

19、分析操作,拷贝数据库 MDF 文件和 LDF 文件。 恢复方案:在企业管理器的控制台树中选择“数据库”节点,右击, “所有 任务” , “附加数据库” ,找到待恢复数据库的 MDF 文件,确定。 4.34.3 用户界面设计和应用程序编码用户界面设计和应用程序编码 4.3.1 用户界面设计 本系统的用户界面用 Java Swing 编写,主要由 1 个主界面 Newspaper.java 和 10 个辅助对话框组成。主界面集合系统主要基本功能按键, 辅助对话框负责采集用户输入信息和做基本的信息处理。 用户界面 4.3.2 类文件功能描述 NO.类名类型功能 01NewspaperFrame主窗口

20、类,提供系统主要功能的调用接口 02Utilities辅助类封装系统主要数据和方法,为其它类提供信息处理功 能 03AdminCreateDlgDialog管理员创建对话框,提供管理员创建功能 04AdminModifyDlgDialog管理员信息修改对话框,修改管理员密码,删除管理 员 05UserCreateDlgDialog订户新建对话框,采集订户信息,创建新订户 06UserModifyDlgDialog订户修改对话框,提供订户修改、删除操作 07DirCreateDlgDialog目录新建对话框,采集目录信息,创建新目录 08DirModifyDlgDialog目录修改对话框,提供目

21、录修改、删除操作 09BookingDlgDialog添加订单对话框,提供新订单添加功能 10OrderSearchDlgDialog订单查找对话框,提供按 Ono 或 Cid 查找订单操作 11OrderDetailDlgDialog订单细节对话框,显示订单细节,提供订单和订单项删除操作, 并能通过调用 DetailModifyDlg 对话框完成订单项修改。 12DetailModifyDialog订单项修改对话框,提供订单项修改操作 13LoginDlgDialog管理员登陆对话框,提供登陆界面,检查登陆信息 表 4 类文件描述表 4.3.3 主要代码分析 /- /所属类:Utilitie

22、s /功能:取得应用程序与数据库系统的连接 publicpublic staticstatic voidvoid getConnection() 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

23、= DriverManager.getConnection(url, user, password);/取得连接 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);/创建语句 conn2 = DriverManager.getConnection(url, user, password); stmt2 = conn2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE)

24、; /- /所属类:Utilities /功能:完成查询结果的表格显示 publicpublic staticstatic voidvoid displayResultSet(JTable table, ResultSet rs) throwsthrows SQLException rs.beforeFirst();/ 指针移到结果集第一条记录前面 booleanboolean moreRecords = rs.next(); ifif (!moreRecords) / 如果没有记录,则提示一条消息 JOptionPane.showMessageDialog(table, 无相关记录, Che

25、ck your input!, JOptionPane.ERROR_MESSAGE); returnreturn; Vector columnHeads = newnew Vector();/ 用于存储表格字段 Vector rows = newnew Vector();/ 用于存储记录行 trytry / 获取字段的名称 ResultSetMetaData rsmd = rs.getMetaData(); forfor (intint i = 1; i = rsmd.getColumnCount(); +i) columnHeads.addElement(rsmd.getColumnName

26、(i); dodo / 获取记录集 rows.addElement(getNextRow(rs, rsmd); whilewhile (rs.next(); / 建立相应的TableModel,并将TableModel应用到table中显示出来 DefaultTableModel model = newnew DefaultTableModel(rows, columnHeads); table.setModel(model); returnreturn; catchcatch (SQLException sqlex) sqlex.printStackTrace(); /- /所属类:Util

27、ities /功能:被displayResultSet(JTable table, ResultSet rs)调用, 返回一个记录行 privateprivate staticstatic Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd) throwsthrows SQLException Vector currentRow = newnew Vector(); forfor (intint i = 1; i = rsmd.getColumnCount(); +i) currentRow.addElement(rs.getStrin

28、g(i); returnreturn currentRow; / 返回一条记录 /- /所属类:Utilities /功能:创建空白EXCEL文件,并将统计查询结果导出到该EXCEL文件 /说明:使用到org.apache的POI包,表示感谢 publicpublic staticstatic booleanboolean outPut(ResultSet rs, File file) ifif (rs = nullnull) returnreturn falsefalse; trytry HSSFWorkbook wb = newnew HSSFWorkbook(); HSSFSheet s

29、heet = wb.createSheet(first sheet); sheet.setDefaultColumnWidth(shortshort) 20); ResultSetMetaData metadata = rs.getMetaData(); intint columnCount = metadata.getColumnCount();/ 获取属性列数 HSSFRow row = sheet.createRow(shortshort) 0); forfor (intint i = 1; i = columnCount; i+) / 填写表格列名 row.createCell(sho

30、rtshort) (i - 1).setCellValue( metadata.getColumnName(i); / 按行填写记录 rs.beforeFirst(); 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.showC

31、onfirmDialog(dialog, 一共需要支付订金: + sum + 元nContinue?, We need your money, 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 .showMessage

32、Dialog(dialog, 订单添加成功!, Success!, JOptionPane.INFORMATION_MESSAGE); catchcatch (SQLException exc) exc.printStackTrace(); elseelse ifif (ans = JOptionPane.NO_OPTION) dispose(); elseelse JOptionPane.showMessageDialog(dialog, 订单为空,不能提交,请选择需要订阅的期刊, Check again !, JOptionPane.ERROR_MESSAGE); ); button_2.

33、setEnabled(falsefalse); button_2.setText(提交订单); panel_1.add(button_2); 5.5.系统测试方案和测试报告系统测试方案和测试报告 5.15.1 测试方案测试方案 由于系统规模较小,所以没有安排单独的白盒测试,而是相应地将这部分 测试归并到系统编码过程中。整个测试过程基于自顶向下测试的组装模块的方 法,先对主模块进行基本测试,然后在按深度优先策略逐一将子模块组装到主 模块上进行测试,最后再对系统进行全面的整体测试。 5.25.2 测试过程测试过程 (白盒测试过程略(参考代码) ,以下是系统黑盒测试过程:) 5.2.1 登陆测试 双

34、击可执行文件 Newspaper.jar 打开应用系统,可见登陆界面: 系统界面 输入错误用户名和密码,用户无法登陆: 登陆错误提示信息 输入正确用户名和密码,用户正常登陆。 (系统自带用户名和密码有(admin,admin),(santino,santino), (ddt,ddt)) 5.2.2 目录管理功能测试 添加目录:选择“添加目录” ,填写目录信息, “确定” 添加目录 结果 修改目录:“目录管理” , “修改目录” ,输入待修改目录 ID,锁定目录,修改 目录, “更新” 。 修改目录 结果 删除目录:“目录管理” , “修改目录” ,输入待修改目录 ID,锁定目录, “删除” 删

35、除目录 结果 5.2.3 订户管理功能测试 添加订户 添加订户 结果 修改订户: 删除订户:(参考“目录管理” ,操作基本类似,略) 5.2.4 订单管理功能测试 添加订单:点击“添加订单”按钮,填入有效用户 ID,检测用户,输入目录 ID 和订阅数量、期数,点击“添加订单项”为订单添加订单项,点击“提交订单” 可以向系统提交订单。 添加订单 订单管理:“订单管理” , “订单查询” ,输入用户 ID 查询订单 查询结果 选中订单项, “订单管理” , “打开订单” 订单详细内容 选择具体订单项可进行相应修改操作: 订单项修改 5.2.5 统计查询测试 统计查询:“数据统计” 统计查询 导出查询数据 选择“数据统计”“结果导出”选择路径“保存” 图 26 结果导出 结果演示 6.6.完成情况和总结完成情况和总结 6.16.1 完成情况完成情况 本系统完成了任务书中要求的所有内容,包括:a 订户管理:订户添加、 修改、删除;b 目录管理:目录添加、修改、删除;c 订单管理:完成订户订 阅数据的管理(包括添加、修改、删除) ;d 订单查询:按订户或者订单号查询 订单详细情况;e 统计查询:按报刊目录统计各类报刊的订阅数量及金额;另 外,系统还具有表单生成功能,能将统计查询结果导出到 Ex

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1