课程设计(论文)任务书软件学院网络工程专业2006-3 班一、课程设计(论文)题目报刊订阅管理系统的设计与实现二、课程设计(论文)工作自2008年6月30日起至2008年7月4日止三、课程设计(论文) 地点: 信息学院机房四、课程设计(论文)容要求:1.本课程设计的目的(1)使学生理论联系实际,巩固和加深对数据库基础理论和基本知识的理解;(2)掌握使用数据库进行软件设计的基本思想和方法;(3)提高学生运用数据库理论解决实际问题的能力;(4)培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
2.课程设计的任务及要求1)基本要求:(1)能熟练应用SQL Server 数据库管理系统软件进行数据库开发;(2)能熟练应用某一面向对象程序设计语言进行程序开发;(3)能编写某一高级语言程序调用SQL Server 数据库的接口模块。
(4)初步掌握数据库系统的开发步骤和技术。
2)课程设计论文编写要求(1)理论设计部分以课程设计论文的形式提交,格式必须按照课程设计论文标准格式进行书写和装订。
(2)课程设计报告(论文)包括:封面—任务书—中文摘要—目录—正文—附录(3)其中正文包括:引言、概要设计、详细设计、调试与运行结果及存在的主要问题、课程设计小结、参考文献等容。
(每一部分的详细说明请参看数据库原理课程设计任务书。
)3)课程设计评分标准:(1)考勤与学习态度:20分(2)理论理解与论文撰写:20分;(3)动手操作与系统设计:20分;(4)系统检查与答辩:40分。
4)课程设计进度安排1.准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关理论资料2.系统设计阶段(8学时):应用程序和数据库系统的概要设计、详细设计3.代码编写和调试阶段(20学时):应用程序和数据库模块的代码编写、调试、测试4.撰写论文阶段(8学时):总结课程设计任务和设计步骤,撰写课程设计论文学生签名:2008 年7 月 4 日5)选择课程设计题目的具体要求:选择的题目是:报刊订阅管理系统的实现与设计具体要求如下:通过对某企业的报刊订阅业务进行分析、调查,设计该企业的报刊订阅管理系统。
主要实现以下功能:1.录入功能:录入订阅人员信息、报刊基本信息;2. 订阅功能:订阅人员订阅报刊(并计算出其金额);3. 查询功能:按人员查询、按报刊查询、按部门查询有关订阅信息,对查询结果能进行预览和打印;4. 统计功能:按报刊统计、按人员统计、按部门统计,对统计结果能进行预览和打印;5. 系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等;课程设计(论文)评审意见(1)考勤与学习态度(20分):优()、良()、中()、一般()、差();(2)理论理解与论文撰写(20分):优()、良()、中()、一般()、差();(3)动手操作与系统设计(20分):优()、良()、中()、一般()、差();(4)系统检查与答辩(40分):优()、良()、中()、一般()、差();(5)格式规性及考勤是否降等级:是()、否()评阅人:职称:讲师2008 年7 月4 日目录一.引言 (4)二.概要设计 (5)三.详细设计 (7)四.调试与运行结果 (11)五.课程设计小结 (15)六.参考文献 (16)一、引言本次课程设计我选择的题目是:报刊订阅管理系统的设计与实现。
通过对某企业的报刊订阅业务进行分析、调查,设计该企业的报刊订阅管理系统。
主要实现以下功能:①录入功能:录入订阅人员信息、报刊基本信息;②订阅功能:订阅人员订阅报刊(并计算出其金额);③查询功能:按人员查询、按报刊查询、按部门查询有关订阅信息,对查询结果能进行预览和打印;④统计功能:按报刊统计、按人员统计、按部门统计,对统计结果能进行预览和打印;⑤系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等.这次课设我们借用了java技术并结合Microsoft SQL Server 2000进行有效的操作。
所以这次试验对我和搭档黄应微来说是个挑战。
我们找了一些关于java的书籍和网上的一些资料,由于没学过,所以大部分还不是很懂。
我们通过Microsoft SQL Server 2000共同建立数据库,而我主要找关于java方面的资料,共同完成这次课程设计。
在做课设的过程中由于不是很顺利,所以做的不是很好,在很多问题上,尤其是上机操作,总是错误不断,但我们通过SQL最终还是解决了各种难题。
二、概要设计1.系统需求分析:随着社会的发展,我们知道报刊订阅管理工作是报社管理工作的重要组成部分,现在相当一部分报社的报刊订阅管理工作仍沿用手工方式,随着报社的知名度扩大,订阅人员的增加效率低下,容易出错的手工方式越来越不适应实际管理工作的需要。
按照软件工程原理和数据库技术开发报刊订阅管理系统已成为报社的迫切需要,该系统主要实现以下功能:①录入功能:录入订阅人员信息、报刊基本信息;②订阅功能:订阅人员订阅报刊(并计算出其金额);③查询功能:按人员查询、按报刊查询、按部门查询有关订阅信息,对查询结果能进行预览和打印;④统计功能:按报刊统计、按人员统计、按部门统计,对统计结果能进行预览和打印;⑤系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等;2.功能模块设计(1)系统总体设计本系统采用java做为开发工具,采用SQL Server 2000作为数据库管理系统。
按照功能划分以下几个模块:登录操作(包括管理员的登录与注册)、录入功能(包括报刊录入,个人信息录入,部门信息录入)、订阅功能(包括部门订阅,个人订阅)、查询功能(包括按人员查询,按报刊查询,按部门查询)、统计与预览功能(包括部门定购信息统计预览,已有部门信息预览统计,已有报刊统计预览,个人定购信息预览统计,个人基本信息统计预览)、系统维护(包括数据库的备份,数据库的还原)、帮助(包括使用说明,关于作者)功能的模块图如下图所示:三、详细设计1.本系统的E-R图如下:本系统主要有报纸,部门、个人、公司和操作员5个实体集,两大模块。
一人可以定购若干种报纸,一种报纸可以被多个人订阅,报纸与个人这两个实体集间是多对多联系,联系上有个人订阅,以报刊号与订单号连接。
一个公司下面有多个部门,一个部门可以有多个地址办公,所以,公司与部门之间是一对多的关系,两者由公司编号连接。
一个部门可以订阅多份报纸,一份报纸可以被多个部门订阅,报纸与部门之间是多对多的联系,联系上有部门订阅,以报刊号与订阅号连接。
为了保证系统的安全性,设置了操作人员这一实体集,用来存放合法用户用户名与密码。
2.逻辑结构设计:根据关系模型的转换原则,上面E-R图可以转换为如下所示的关系模型:Paper(Pnumber ,pname,pclass,total,price)其中各项含义分别为:报纸(报刊号,报刊名,报刊类别,总量,单价)Person(userNum ,pname,address,tel,sex)其中各项含义分别为:个人(订单号,姓名,地址,,性别)Company(companyNum,companyName,comaddress)其中各项含义分别为:公司(公司号,公司名,公司地址)Department(companyNum,Dname,Daddress,bookNum,Dtel)其中各项含义分别为:部门(公司号,部门名,部门地址,订单号,)Dbook(bookNum,Pnumber,amount,booktime ,btime)其中各项含义分别为:部门订阅(公司订单号,报刊名,订阅数量,订阅时间,订阅期限)Pbook(userNum,Pnumber,amount,booktime ,btime)其中各项含义分别为:个人订阅(个人订单号,报刊号,订阅数量,订阅时间,订阅期限)User1(name,password)其中各项含义分别为:管理员(姓名,密码)3.代码分析:下面已在处理表“Company”时,连接界面于数据库的代码如下:c.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){Frame f=new Frame();f.setLayout(new BorderLayout());Panel f4=new Panel();Button f1=new Button("修改公司容");Button f2=new Button("删除公司");Button f3=new Button("插入公司");f4.setLayout(new GridLayout(3,3));f4.add(f1);f4.add(f2);f4.add(f3);f.add("East",f4);f3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){Frame f=new Frame();Label a1=new Label("公司号");final TextField b1=new TextField(30);Label a2=new Label("公司名");final TextField b2=new TextField(30);Label a3=new Label("公司地址");final TextField b3=new TextField(30);final Button m=new Button("确定");final Button n=new Button("取消");f.setLayout(new FlowLayout(FlowLayout.LEFT));f.add(a1);f.add(b1);f.add(a2);f.add(b2);f.add(a3);f.add(b3);f.add(m);f.add(n);m.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String url="jdbc:odbc:B9BCFA12F1DE44A" ;/*连接数据源*/try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ng.ClassNotFoundException f){}try{Connectioncon=DriverManager.getConnection(url,"",null);Statement stmt=con.createStatement();String sql="INSERT INTO Company VALUES(?,?,?)";/*插入数据*/PreparedStatementps=con.prepareStatement(sql);ps.setString(1,b1.getText());ps.setString(2,b2.getText());ps.setString(3,b3.getText());ps.executeUpdate();stmt.close();con.close();}catch(SQLException ex){System.out.println(ex.getMessage());}}});n.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.exit(0);}});f.setSize(300,300);f.setVisible(true);}});f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){Frame frm=(Frame)(e.getSource());frm.dispose();}});f.setSize(300,300);f.setVisible(true);}});四、调试与运行结果1.进入界面显示:2.输入姓名及密码:3.报刊订阅管理系统界面:4.查询结果:5.查看报刊情况6.得到查阅结果:7.订阅:8.订阅结果查阅:五、课程设计小结本次课程设计对我来说比较非常有挑战性,同样觉得也是课设以来比较难的一次。