报刊订阅管理系统的设计与实现.docx
《报刊订阅管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《报刊订阅管理系统的设计与实现.docx(15页珍藏版)》请在冰豆网上搜索。
![报刊订阅管理系统的设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-2/25/04248eb3-c28e-4673-8f57-82d47448804f/04248eb3-c28e-4673-8f57-82d47448804f1.gif)
报刊订阅管理系统的设计与实现
课程设计(论文)任务书
软件学院网络工程专业2006-3班
一、课程设计(论文)题目报刊订阅管理系统的设计与实现
二、课程设计(论文)工作自2008年6月30日起至2008年7月4日止
三、课程设计(论文)地点:
信息学院机房
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)使学生理论联系实际,巩固和加深对数据库基础理论和基本知识的理解;
(2)掌握使用数据库进行软件设计的基本思想和方法;
(3)提高学生运用数据库理论解决实际问题的能力;
(4)培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
2.课程设计的任务及要求
1)基本要求:
(1)能熟练应用SQLServer数据库管理系统软件进行数据库开发;
(2)能熟练应用某一面向对象程序设计语言进行程序开发;
(3)能编写某一高级语言程序调用SQLServer数据库的接口模块。
(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技术并结合MicrosoftSQLServer2000进行有效的操作。
所以这次试验对我和搭档黄应微来说是个挑战。
我们找了一些关于java的书籍和网上的一些资料,由于没学过,所以大部分还不是很懂。
我们通过MicrosoftSQLServer2000共同建立数据库,而我主要找关于java方面的资料,共同完成这次课程设计。
在做课设的过程中由于不是很顺利,所以做的不是很好,在很多问题上,尤其是上机操作,总是错误不断,但我们通过SQL最终还是解决了各种难题。
二、概要设计
1.系统需求分析:
随着社会的发展,我们知道报刊订阅管理工作是报社管理工作的重要组成部分,现在相当一部分报社的报刊订阅管理工作仍沿用手工方式,随着报社的知名度扩大,订阅人员的增加效率低下,容易出错的手工方式越来越不适应实际管理工作的需要。
按照软件工程原理和数据库技术开发报刊订阅管理系统已成为报社的迫切需要,该系统主要实现以下功能:
①录入功能:
录入订阅人员信息、报刊基本信息;
②订阅功能:
订阅人员订阅报刊(并计算出其金额);
③查询功能:
按人员查询、按报刊查询、按部门查询有关订阅信息,对查询结果能进行预览和打印;
④统计功能:
按报刊统计、按人员统计、按部门统计,对统计结果能进行预览和打印;
⑤系统维护:
如数据安全管理(含备份与恢复)、操作员管理、权限设置等;
2.功能模块设计
(1)系统总体设计
本系统采用java做为开发工具,采用SQLServer2000作为数据库管理系统。
按照功能划分以下几个模块:
登录操作(包括管理员的登录与注册)、录入功能(包括报刊录入,个人信息录入,部门信息录入)、订阅功能(包括部门订阅,个人订阅)、查询功能(包括按人员查询,按报刊查询,按部门查询)、统计与预览功能(包括部门定购信息统计预览,已有部门信息预览统计,已有报刊统计预览,个人定购信息预览统计,个人基本信息统计预览)、系统维护(包括数据库的备份,数据库的还原)、帮助(包括使用说明,关于作者)
功能的模块图如下图所示:
三、详细设计
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(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Framef=newFrame();
f.setLayout(newBorderLayout());
Panelf4=newPanel();
Buttonf1=newButton("修改公司内容");
Buttonf2=newButton("删除公司");
Buttonf3=newButton("插入公司");
f4.setLayout(newGridLayout(3,3));
f4.add(f1);
f4.add(f2);
f4.add(f3);
f.add("East",f4);
f3.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Framef=newFrame();
Labela1=newLabel("公司号");
finalTextFieldb1=newTextField(30);
Labela2=newLabel("公司名");
finalTextFieldb2=newTextField(30);
Labela3=newLabel("公司地址");
finalTextFieldb3=newTextField(30);
finalButtonm=newButton("确定");
finalButtonn=newButton("取消");
f.setLayout(newFlowLayout(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(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringurl="jdbc:
odbc:
B9BCFA12F1DE44A";/*连接数据源*/
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(java.lang.ClassNotFoundExceptionf){}
try{
Connectioncon=DriverManager.getConnection(url,"",null);
Statementstmt=con.createStatement();
Stringsql="INSERTINTOCompanyVALUES(?
?
?
)";/*插入数据*/
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(SQLExceptionex){
System.out.println(ex.getMessage());
}
}
});
n.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
System.exit(0);
}
});
f.setSize(300,300);
f.setVisible(true);
}
});
f.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
Framefrm=(Frame)(e.getSource());
frm.dispose();
}
});
f.setSize(300,300);
f.setVisible(true);
}
});
四、调试与运行结果
1.进入界面显示:
2.输入姓名及密码:
3.报刊订阅管理系统界面:
4.查询结果:
5.查看报刊情况
6.得到查阅结果:
7.订阅:
8.订阅结果查阅:
五、课程设计小结
本次课程设计对我来说比较非常有挑战性,同样觉得也是课设以来比较难的一次。
尽管老师允许两个人一组,从而互相帮组,共同解决问题,但觉得还是很有难度。
首先我们用到了JAVA语言。
这种语言我们暂时还没开始学习,但觉得很有用,于是开始阅读有关JAVA方面的课本教材,总最开始的模糊,到现在能基本理解,尽管不是懂的很多,但自己还是很高兴能运用另一种语言来解决问题。
然后我们又在相关网站查阅了关于这个课题的文章,尤其是用JAVA语言实现的,更是特别注意,想去借鉴和弄懂它的原理。
最开始我们都是打算用C或者C++来实现,模块再用VB或者Dephi来做一下,但最终还是想尝试一下JAVA,因为下学期就要开始学习JAVA语言,所以想提前了解一点,尽管自己还是不怎么熟悉,但切觉得受益匪浅。
谢谢老师和同学们对我的帮助!
课程设计遇到的最大的问题就是代码和与创建的数据库想结合,在计算机上利用界面运行出来。
一个界面相对来说比较容易弄出来,但有时候想实现它的功能切不是很容易。
有时总是加有些数据能,而加其他一些记录切总是出错。
有时功能一点都不全面,弄个特殊的数据系统就会报错或者无法运行。
所以我们在代码和程序之间有过很多的不理解和无从下手。
有时候根本不能和界面连接起来,而自己也不知所措。
但通过同学的帮助我还是慢慢解决了问题,通过这次课设我深深的体会到动手能力与想象的差距,相信以后会加强实践动手能力。
将各个功能做得更完善,更人性化.
六、参考文献
[1]丁振凡.Java语言使用教程.北京:
北京邮电大学出版社,2005
[2]王珊.数据库系统概论.北京:
高等教育出版社,2007
[3]耿祥义.Java课程设计.北京:
清华大学出版社,2004
[4]BainT等.SQLServer2000数据仓库.北京:
中国电力出版社,2003