




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1软件工程课程设计报告2目目 录录1.1.开发环境和相关技术介绍开发环境和相关技术介绍1.1 开发环境 .31.2 相关技术介绍 .32.2.需求分析需求分析2.1 系统需求和功能 .32.2 数据字典 .42.2.1 数据结构.42.2.2 数据项.42.2.3 数据流.52.3 安全性要求 .52.4 一致性要求 .52.5 完整性要求 .53 面向对象分析面向对象分析 3.1 面向对象分析.5 3.2 系统的结构图 .84 4. .数据库实施数据库实施4.1 数据库创建 .84.1.1 各数据表说明.84.1.2 数据库创建.94.2 数据库备份和恢复方案 .104.2.1 应用辅助工具
2、进行备份和恢复 .104.2.2 分离数据库法.104.3 用户界面设计和应用程序编码 .104.3.1 用户界面设计.104.3.2 类文件功能描述.114.3.3 主要代码分析.115 5. .系统测试方案和测试报告系统测试方案和测试报告5.1 测试方案 .165.2 测试过程 .165.2.1 登陆测试.165.2.2 目录管理功能测试.175.2.3 订户管理功能测试.205.2.4 订单管理功能测试.215.2.5 统计查询测试.236 6. .完成情况和总结完成情况和总结6.1 完成情况 .246.2 总结 .247.7.参考文献参考文献31 1. .开发环境和相关技术介绍开发环境
3、和相关技术介绍1.11.1 开发环境开发环境系统结构:C/S 结构数据库系统:Microsoft SQL Server 2000 sp3宿主语言:JAVA数据库连接方式:JDBC 连接方式开发工具:Eclipse 相关技术介绍相关技术介绍Microsoft SQL Server 2000 数据库管理系统是微软公司研制开发的关系型数据库管理系统。该系统支持并扩展了 SQL 语言标准,可以运用标准 SQL 语句对数据进行操作,也可以使用功能强大的 GUI 工具进行灵活的数据管理。同时,系统还提供功能完善的 API,可以在应用程序中调用这些 API 来实现与数据库系统的连接以及相
4、关数据的操作。sp3 是该系统的一个版本号,只有 sp3以上的 SQL 2000 系统才能够支持纯 JDBC 连接方式。Eclipse:功能强大的应用程序开发工具,主要支持基于 Java 语言的各种开发项目。灵活的 Plun-in 功能,可以根据具体需要安装各种插件。JDBC 连接方式:Java 与数据库系统的一种连接方式,Java 程序使用 JDBC API 与数据库进行通信,并用它操作数据库中的数据。JDBC API 使 Java 程序与具体数据库系统独立开来,保证了 Java 程序高度的可移植性。2.2.需求分析需求分析2.12.1 系统需求和功能设计一个报刊订阅应用系统,使系统满足以下
5、功能和需求:1)a 一个订户可订多种报刊;一种报刊可被多个用户订阅;订单只能订阅现有报刊目录内容;b 投递时,必须根据订单的情况进行投递,不得超出订单的订阅品种、数量;2) 、系统功能包括:a 订户管理:订户添加、修改、删除;b 目录管理:目录添加、修改、删除;c 订单管理:完成订户订阅数据的管理(包括添加、修改、删除) ;d 订单查询:按订户或者订单号查询订单详细情况;e 统计查询:按报刊目录统计各类报刊的订阅数量及金额;f 表单生成:根据统计查询结果导出统计信息到文件(.xl42.22.2 数据字典数据字典.1 数据结构数据结构管理员用户=管理员帐户+管理员密码订户=订户编
6、号+订户名+联系电话+联系地址目录=目录编号+目录名+单价+批注信息订单=订单号+订户编号+下订日期订单细节=订单号+目录编号+订阅数量+订阅期数+单价+总价(注:为保证订单确定后价格不随目录单价变动,订单细节中应该有独立的单价来记录下订时目录的单价).2 数据项数据项表 2.1 数据项表编号标识符类型长度所属表名同义名1UNameVarchar20Login管理员帐户2UPasswordVarchar20Login管理员密码3CidVarchar10Customer,Order订户编号4CnameVarchar20Customer订户名5PhoneVarchar15Custo
7、mer联系电话6AddressVarchar50Customer联系地址7DidVarchar10Diretory,OrderDetail目录编号8DnameVarchar20Diretory目录名9UnitPriceFloat8DiretoryOrderDetail目录单价,下订时目录单价10IfoVarchar50Diretory批注信息11OnoVarchar10Order,OrderDetail订单编号12OdateDatetime8Order下订日期13Quantity, Int4OrderDetail订阅数量14QiShu,Int4OrderDetail订阅期数15TotalFlo
8、at8OrderDetail订单项总价.3 数据流数据流表 2.2 数据流表编号名称来源去向组成1身份信息系统管理员应用系统管理员帐户+密码2授权信息应用系统系统管理员3错误身份信息应用系统系统管理员4查询请求系统管理员应用系统待查询对象识别符(如Cid,Ono)5查询结果应用系统系统管理员被查询对象具体信息6管理请求系统管理员应用系统识别符(Cid,Ono 等)+管理类型7管理结果信息应用系统系统管理员被管理对象处理结果8非法请求应用系统系统管理员非法请求提示信息 2.32.3 安全性要求安全性要求访问数据库时需要输入登陆帐号和密码。在数据库内设有管理员表,登陆系统时会要求
9、输入管理员帐号和密码。登陆模块根据输入帐号和密码查管理员表,查到匹配记录则允许其登陆系统。管理员帐号和密码可以在系统中添加和修改。2.42.4 一致性要求一致性要求在管理系统相关的表之间,有较强的关联性。为了实现一致性的需求,各个表之间均建立起了相应的一致性约束。2.52.5 完整性要求完整性要求根据报刊订阅管理系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障引起的数据不一致。3 3 面向对象分析面向对象分析3.1 面向对象分析面向对象分析 设计报刊订阅系统,主要的目的是使得用户在订阅是能跟回家的方便快捷同时也使得报刊提供商能更加有效的管理企业的销售状况。同时面向对象分
10、析使得人员关注理解系统需要建立的内容,从而产生一个准确的完整的一致的和可验证的系统模型。6管理员表管理员表(Administrator):用于存放管理员的数据记录,包括数据项:管理员名、密码。部门表部门表(Department):用来存放部门的相关记录,包括数据项:部门号,部门名。用户表用户表(Consumer):用于存放注册用户的记录,包括数据项:用户账号、密码、真实姓名、身份证号、联系电话,联系地址,部门号(和部门表部门表有关)等。报刊信息表报刊信息表(magazine):用于存放报刊记录,包括数据项:报刊代号、报刊名称、出版报社、出版周期、季度报价、内容介绍、分类编号(和报报刊类别表刊类
11、别表有关)等。订单表(订单表(subscribe):用于存放用户下达的订阅报刊的基本信息,包括数据项:订单编号用户编号(用户表的主码) 、报刊代号(报刊信息表的主码) 、订阅份数、订阅月数等。用例图:用例图:由上面的分析需能够确定系统用例图:7类图:类图:在根据已定义的对象类及其联系,以及对象类的多重性、角色、导航等性质,可以画出对象类图 ,使用对象图的目的是分析系统的瞬间状态,以便进一步了解系统的结构和行为。分析对象模型:也同时可以确定所有实体之间的 E-R 图:处理管理员订单用户订制拥有订阅包含部门报刊报刊类别用户帐号真实姓名密码身份证号联系电话联系地址部门号部门号部门名称管理员名密码分类
12、编号分类名称报刊代号报刊名称出版报社出版周期内容介绍季度订价分类编号订单编号用户账号报刊代号订阅份数订阅月数1 M1M1MMNM1图 3.1 报刊订阅管理系统 E-R 图83.23.2 系统结构图系统结构图报报刊刊订订阅阅管管理理系系统统登登陆陆模模块块登登陆陆验验证证修修改改管管理理员员添添加加管管理理员员订订户户管管理理增增加加订订户户修修改改订订户户删删除除订订户户目目录录管管理理增增加加目目录录修修改改目目录录删删除除目目录录订订单单管管理理增增加加订订单单删删除除订订单单修修改改订订单单查查询询功功能能目目录录查查询询订订单单查查询询统统计计查查询询报报表表导导出出管管理理功功能能用
13、用户户查查询询结结果果导导出出到到文文件件图 4.1 系统结构图4.4.数据库实施数据库实施4.14.1 数据库创建数据库创建4.1.1 各数据表说明表 4.1 数据表描述表编号数据表名称类型内容01Login辅助表记录管理员帐号,密码02Customer主表记录订户信息03Diretory主表记录目录信息04Order主表记录订单基本信息05OrderDetail主表记录详细订单项信息94.1.2 数据库创建在 Microsoft SQL Server 2000 的企业管理器中完成数据库和数据表的创建CREATE TABLE dbo.Customer (Cid varchar (10) CO
14、LLATE 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 PRIMARYGOCREATE TABLE dbo.Login (UName varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,UPassword varch
15、ar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ) 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 (
16、Ono varchar (10) COLLATE Chinese_PRC_CI_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 ,Q
17、iShu int NOT NULL ,UnitPrice float NOT NULL ,Total float NULL ) ON PRIMARYGO104.24.2 数据库备份和恢复方案数据库备份和恢复方案4.2.1 应用辅助工具进行备份和恢复应用数据库辅助工具(如 sqlbackuptools)进行备份,选择所需要备份的数据库和目标地址即可进行数据备份,恢复数据库只需要指定备份文件和需要恢复的数据库即可进行数据恢复。4.2.2 分离数据库法在企业管理器中右击需要备份的数据库,选择“所有任务” , “分离数据库” ,执行分析操作,拷贝数据库 MDF 文件和 LDF 文件。恢复方案:在企业管
18、理器的控制台树中选择“数据库”节点,右击, “所有任务” , “附加数据库” ,找到待恢复数据库的 MDF 文件,确定。4.34.3 用户界面设计和应用程序编码用户界面设计和应用程序编码4.3.1 用户界面设计本系统的用户界面用 Java Swing 编写,主要由 1 个主界面Newspaper.java 和 10 个辅助对话框组成。主界面集合系统主要基本功能按键,辅助对话框负责采集用户输入信息和做基本的信息处理。 用户界面114.3.2 类文件功能描述NO.类名类型功能01NewspaperFrame主窗口类,提供系统主要功能的调用接口02Utilities辅助类封装系统主要数据和方法,为其
19、它类提供信息处理功能03AdminCreateDlgDialog管理员创建对话框,提供管理员创建功能04AdminModifyDlgDialog管理员信息修改对话框,修改管理员密码,删除管理员05UserCreateDlgDialog订户新建对话框,采集订户信息,创建新订户06UserModifyDlgDialog订户修改对话框,提供订户修改、删除操作07DirCreateDlgDialog目录新建对话框,采集目录信息,创建新目录08DirModifyDlgDialog目录修改对话框,提供目录修改、删除操作09BookingDlgDialog添加订单对话框,提供新订单添加功能10OrderSe
20、archDlgDialog订单查找对话框,提供按 Ono 或 Cid 查找订单操作11OrderDetailDlgDialog订单细节对话框,显示订单细节,提供订单和订单项删除操作,并能通过调用 DetailModifyDlg 对话框完成订单项修改。12DetailModifyDialog订单项修改对话框,提供订单项修改操作13LoginDlgDialog管理员登陆对话框,提供登陆界面,检查登陆信息表 4 类文件描述表4.3.3 主要代码分析/-/所属类:Utilities/功能:取得应用程序与数据库系统的连接publicpublic staticstatic voidvoid getConn
21、ection() 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.c
22、reateStatement(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 display
23、ResultSet(JTable table, ResultSet rs)12throwsthrows SQLException rs.beforeFirst();/ 指针移到结果集第一条记录前面booleanboolean moreRecords = rs.next();ifif (!moreRecords) / 如果没有记录,则提示一条消息JOptionPane.showMessageDialog(table, 无相关记录, Check your input!,JOptionPane.ERROR_MESSAGE);returnreturn;Vector columnHeads = newn
24、ew 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.next();/ 建立相应的Table
25、Model,并将TableModel应用到table中显示出来DefaultTableModel model = newnew DefaultTableModel(rows, columnHeads);table.setModel(model);returnreturn; catchcatch (SQLException sqlex) sqlex.printStackTrace();/-/所属类:Utilities/功能:被displayResultSet(JTable table, ResultSet rs)调用, 返回一个记录行privateprivate staticstatic Vec
26、tor 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文件,并将统计查询结果导出到该EXCEL文件/说明:使用到org.a
27、pache的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);ResultSetMetaData metadata = rs
28、.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);13/ 按行填写记录rs.beforeFirst();shortshort counter = 1;whilewhile
29、 (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,16JOptionPane.YES_NO_CANCEL_OPTION);ifif (ans = JOp
30、tionPane.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); catchcatch (SQLException exc) exc.printStackTrace(); elseelse
31、 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.系统测试方案和测试报告系统测试方案和测试报告5.15.1 测试方案测试方案由于系统规模较小,所以没有安排单独的白盒测试,而是相应地将这部分测试归并到系统编码过程中。整个测试过程基于自顶向下测试的组装模块的方法,先对主模块进行基本测试,然后在按深度优先策略逐一将子模块组装到主模块上进行测试,最后再对系统进行全面的整体测试。5.25.2 测试过程测试过程(白盒测试过程略(参考代码) ,以下是系统黑盒测试过程:)5.2.1 登陆测试双击可执行文件 Newspaper.jar 打开应用系统,可见登陆界面:17 系统界面输入错误用户名和密码,用户无法登陆: 登陆错误提示信息输入正确用户名和密码,用户正常登陆。(系统自带用户名和密码有(adm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医用超声诊断设备项目建议书
- 情绪智力与职场竞争力的提升
- 数字教育在商业竞争中的战略价值探讨
- 智慧办公楼宇的能源消耗监测与控制
- 教育资源转化策略如何打造教育地产的商业生态圈
- 企业智慧化进程中的安全风险管理
- 施工图预算的编制流程考点
- 中职数学向量课件
- 政策引领教育变革国际视野下的策略探讨
- 教育技术革新对教育政策的挑战与应对策略
- 贵阳小升初分班全真模拟测A卷
- GB/T 77-2007内六角平端紧定螺钉
- 中华人民共和国安全生产法
- 九年一贯制学校教育教学管理制度汇编
- GA/T 1105-2013信息安全技术终端接入控制产品安全技术要求
- 《C++语言基础》全套课件(完整版)
- 钢筋混凝土框架结构设计讲义
- 《材料成型装备及自动化》课程大纲
- 保温材料进场质量检验表
- DG-TJ 08-2122-2021 保温装饰复合板墙体保温系统应用技术标准
- GB∕T 23937-2020 工业硫氢化钠
评论
0/150
提交评论