收藏 分销(赏)

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

上传人:天**** 文档编号:3309898 上传时间:2024-07-01 格式:DOC 页数:34 大小:576.54KB
下载 相关 举报
课程设计报刊订阅管理系统.doc_第1页
第1页 / 共34页
课程设计报刊订阅管理系统.doc_第2页
第2页 / 共34页
课程设计报刊订阅管理系统.doc_第3页
第3页 / 共34页
课程设计报刊订阅管理系统.doc_第4页
第4页 / 共34页
课程设计报刊订阅管理系统.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、软件工程课程设计报告目 录1.开发环境和相关技术介绍1.1开发环境31.2相关技术介绍32.需求分析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.1数据库创建84.1.1各数据表说明84.1.2数据库创建94.2数据库备份和恢复方案104.2.1应用辅助工具进行备份和恢复104.2.2分离数据库法104.3用户界面设计和应用程序编码104.3.1用户界面设计104.3.2类文献功能描述114.3.3重要代码分析115

2、.系统测试方案和测试报告5.1测试方案165.2测试过程165.2.1登陆测试165.2.2目录管理功能测试175.2.3订户管理功能测试205.2.4订单管理功能测试215.2.5记录查询测试236.完毕情况和总结6.1完毕情况246.2总结247.参考文献1.开发环境和相关技术介绍1.1开发环境系统结构:C/S结构数据库系统:Microsoft SQL Server 2023 sp3宿主语言:JAVA数据库连接方式:JDBC连接方式开发工具:Eclipse 3.21.2相关技术介绍Microsoft SQL Server 2023数据库管理系统是微软公司研制开发的关系型数据库管理系统。该系

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

4、API使Java程序与具体数据库系统独立开来,保证了Java程序高度的可移植性。2.需求分析2.1系统需求和功能设计一个报刊订阅应用系统,使系统满足以下功能和需求:1)a一个订户可订多种报刊;一种报刊可被多个用户订阅;订单只能订阅现有报刊目录内容;b投递时,必须根据订单的情况进行投递,不得超过订单的订阅品种、数量;2)、系统功能涉及:a订户管理:订户添加、修改、删除;b目录管理:目录添加、修改、删除;c订单管理:完毕订户订阅数据的管理(涉及添加、修改、删除);d订单查询:按订户或者订单号查询订单具体情况;e记录查询:按报刊目录记录各类报刊的订阅数量及金额;f表单生成:根据记录查询结果导出记录信

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

6、char20Customer订户名5PhoneVarchar15Customer联系电话6AddressVarchar50Customer联系地址7DidVarchar10Diretory,OrderDetail目录编号8DnameVarchar20Diretory目录名9UnitPriceFloat8DiretoryOrderDetail目录单价,下订时目录单价10IfoVarchar50Diretory批注信息11OnoVarchar10Order,OrderDetail订单编号12OdateDatetime8Order下订日期13Quantity, Int4OrderDetail订阅数量

7、14QiShu,Int4OrderDetail订阅期数15TotalFloat8OrderDetail订单项总价2.2.3数据流表2.2 数据流表编号名称来源去向组成1身份信息系统管理员应用系统管理员帐户+密码2授权信息应用系统系统管理员3错误身份信息应用系统系统管理员4查询请求系统管理员应用系统待查询对象辨认符(如Cid,Ono)5查询结果应用系统系统管理员被查询对象具体信息6管理请求系统管理员应用系统辨认符(Cid,Ono等)+管理类型7管理结果信息应用系统系统管理员被管理对象解决结果8非法请求应用系统系统管理员非法请求提醒信息 2.3安全性规定访问数据库时需要输入登陆帐号和密码。在数据库

8、内设有管理员表,登陆系统时会规定输入管理员帐号和密码。登陆模块根据输入帐号和密码查管理员表,查到匹配记录则允许其登陆系统。管理员帐号和密码可以在系统中添加和修改。2.4一致性规定在管理系统相关的表之间,有较强的关联性。为了实现一致性的需求,各个表之间均建立起了相应的一致性约束。2.5完整性规定根据报刊订阅管理系统的规定,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障引起的数据不一致。3面向对象分析3.1 面向对象分析 设计报刊订阅系统,重要的目的是使得用户在订阅是能跟回家的方便快捷同时也使得报刊提供商能更加有效的管理公司的销售状况。同时面向对象分析使得人员关注理解系统需要建立的内

9、容,从而产生一个准确的完整的一致的和可验证的系统模型。l 管理员表(Administrator):用于存放管理员的数据记录,涉及数据项:管理员名、密码。l 部门表(Department):用来存放部门的相关记录,涉及数据项:部门号,部门名。l 用户表(Consumer):用于存放注册用户的记录,涉及数据项:用户账号、密码、真实姓名、身份证号、联系电话,联系地址,部门号(和部门表有关)等。l 报刊信息表(magazine):用于存放报刊记录,涉及数据项:报刊代号、报刊名称、出版报社、出版周期、季度报价、内容介绍、分类编号(和报刊类别表有关)等。订单表(subscribe):用于存放用户下达的订阅

10、报刊的基本信息,涉及数据项:订单编号用户编号(用户表的主码)、报刊代号(报刊信息表的主码)、订阅份数、订阅月数等。用例图:由上面的分析需可以拟定系统用例图:类图:在根据已定义的对象类及其联系,以及对象类的多重性、角色、导航等性质,可以画出对象类图 ,使用对象图的目的是分析系统的瞬间状态,以便进一步了解系统的结构和行为。分析对象模型:也同时可以拟定所有实体之间的E-R图:图3.1 报刊订阅管理系统E-R图3.2系统结构图图4.1 系统结构图4.数据库实行4.1数据库创建4.1.1各数据表说明表4.1 数据表描述表编号数据表名称类型内容01Login辅助表记录管理员帐号,密码02Customer主

11、表记录订户信息03Diretory主表记录目录信息04Order主表记录订单基本信息05OrderDetail主表记录具体订单项信息4.1.2数据库创建在Microsoft SQL Server 2023的公司管理器中完毕数据库和数据表的创建CREATE TABLE dbo.Customer (Cid varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Cname varchar (20) COLLATE Chinese_PRC_CI_AS NULL ,Phone varchar (15) COLLATE Chinese_PRC_CI_AS NUL

12、L ,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 NULL ) ON PRIMARYGOCREATE TABLE dbo.Diretory (Did varchar (10) COLLATE Chinese_PRC_CI_AS NOT NU

13、LL ,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_AS NOT NULL ,Cid varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,Odate datetime NULL ) ON PR

14、IMARYGOCREATE 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 NULL ,Total float NULL ) ON PRIMARYGO4.2数据库备份和恢复方案4.2.1应用辅助工具进行备份和恢复应用数据库辅助工具(如sqlbackuptools)

15、进行备份,选择所需要备份的数据库和目的地址即可进行数据备份,恢复数据库只需要指定备份文献和需要恢复的数据库即可进行数据恢复。4.2.2分离数据库法在公司管理器中右击需要备份的数据库,选择“所有任务”,“分离数据库”,执行分析操作,拷贝数据库MDF文献和LDF文献。恢复方案:在公司管理器的控制台树中选择“数据库”节点,右击,“所有任务”,“附加数据库”,找到待恢复数据库的MDF文献,拟定。4.3用户界面设计和应用程序编码4.3.1用户界面设计本系统的用户界面用Java Swing编写,重要由1个主界面Newspaper.java和10个辅助对话框组成。主界面集合系统重要基本功能按键,辅助对话框负

16、责采集用户输入信息和做基本的信息解决。 用户界面4.3.2类文献功能描述NO.类名类型功能01NewspaperFrame主窗口类,提供系统重要功能的调用接口02Utilities辅助类封装系统重要数据和方法,为其它类提供信息解决功能03AdminCreateDlgDialog管理员创建对话框,提供管理员创建功能04AdminModifyDlgDialog管理员信息修改对话框,修改管理员密码,删除管理员05UserCreateDlgDialog订户新建对话框,采集订户信息,创建新订户06UserModifyDlgDialog订户修改对话框,提供订户修改、删除操作07DirCreateDlgDi

17、alog目录新建对话框,采集目录信息,创建新目录08DirModifyDlgDialog目录修改对话框,提供目录修改、删除操作09BookingDlgDialog添加订单对话框,提供新订单添加功能10OrderSearchDlgDialog订单查找对话框,提供按Ono或Cid查找订单操作11OrderDetailDlgDialog订单细节对话框,显示订单细节,提供订单和订单项删除操作,并能通过调用DetailModifyDlg对话框完毕订单项修改。12DetailModifyDialog订单项修改对话框,提供订单项修改操作13LoginDlgDialog管理员登陆对话框,提供登陆界面,检查登陆

18、信息表4 类文献描述表4.3.3重要代码分析/-/所属类:Utilities/功能:取得应用程序与数据库系统的连接public static void getConnection() throws Exception Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance();/加载驱动程序String url = jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=Newspaper;String user = sa;String password

19、= ;conn = 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_UPDATAB

20、LE);/-/所属类:Utilities/功能:完毕查询结果的表格显示public static void displayResultSet(JTable table, ResultSet rs)throws SQLException rs.beforeFirst();/ 指针移到结果集第一条记录前面boolean moreRecords = rs.next();if (!moreRecords) / 假如没有记录,则提醒一条消息JOptionPane.showMessageDialog(table, 无相关记录, Check your input!,JOptionPane.ERROR_MES

21、SAGE);return;Vector columnHeads = new Vector();/ 用于存储表格字段Vector rows = new Vector();/ 用于存储记录行try / 获取字段的名称ResultSetMetaData rsmd = rs.getMetaData();for (int i = 1; i = rsmd.getColumnCount(); +i)columnHeads.addElement(rsmd.getColumnName(i);do / 获取记录集rows.addElement(getNextRow(rs, rsmd); while (rs.nex

22、t();/ 建立相应的TableModel,并将TableModel应用到table中显示出来DefaultTableModel model = new DefaultTableModel(rows, columnHeads);table.setModel(model);return; catch (SQLException sqlex) sqlex.printStackTrace();/-/所属类:Utilities/功能:被displayResultSet(JTable table, ResultSet rs)调用, 返回一个记录行private static Vector getNext

23、Row(ResultSet rs, ResultSetMetaData rsmd)throws SQLException Vector currentRow = new Vector();for (int i = 1; i = rsmd.getColumnCount(); +i)currentRow.addElement(rs.getString(i);return currentRow; / 返回一条记录/-/所属类:Utilities/功能:创建空白EXCEL文献,并将记录查询结果导出到该EXCEL文献/说明:使用到org.apache的POI包,表达感谢public static boo

24、lean outPut(ResultSet rs, File file) if (rs = null)return false;try HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet(first sheet);sheet.setDefaultColumnWidth(short) 20);ResultSetMetaData metadata = rs.getMetaData();int columnCount = metadata.getColumnCount();/ 获取属性列数HSSFRow row

25、= sheet.createRow(short) 0);for (int i = 1; i = columnCount; i+) / 填写表格列名row.createCell(short) (i - 1).setCellValue(metadata.getColumnName(i);/ 按行填写记录rs.beforeFirst();short counter = 1;while (rs.next() row = sheet.createRow(counter+);for (int i = 1; i 1) / 容器第一个空间放插入Order的sql语句,其它空间放插入OrderDetail的sq

26、l语句 / sqls.size()=1表达只有一张空订单,不予插入int ans = JOptionPane.showConfirmDialog(dialog, 一共需要支付订金:+ sum + 元nContinue?, We need your money,JOptionPane.YES_NO_CANCEL_OPTION);if (ans = JOptionPane.YES_OPTION) try for (int i = 0; i sqls.size(); i+) / 顺序取出sql语句,完毕订单添加插入Utilities.stmt.executeUpdate(sqls.get(i);/ 执行插入更新语句dispose();JOptionPane.showMessageDialog(dialog, 订单添加成功!,Success!,JOptionPane.INFORMATION_MESSAGE); catch (SQLException exc) exc.printStackTrace(); else if (ans = JOptionPane.NO_OPTION) dispose();

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服