报刊订阅管理系统
目 录
一.设计目的...................................................................................................3二.系统需求分析..........................................................................................3
2.1 用户需求....................................................................................................3
2.2 业务流程分析............................................................................................3
2.3 信息需求分析............................................................................................4
2.4 系统功能分析............................................................................................4
2.5 功能分析图................................................................................................4
三.数据库概念模型设计.................................................................................5
3.1数据库需求分析........................................................................................................53.2设计ER图…................................................................................................................5四.数据库逻辑模型设计............................................................................................64.1数据库初步的关系框架..........................................................................................64.2具体逻辑模型设计...................................................................................................6 五.数据库物理设计模型............................................................................................8 5.1物理模型.....................................................................................................................8六.总体功能设计.................................. ...........................................................................8 6.1主控模块设计............................................................................................................86.2子模块设计................................................................ ................................................9七.数据库应用系统的实现....................................................................................107.1数据库及其表结构的建立...................................................................................107.2模块实现...................................................................................................................107.21报刊订阅管理系统功能菜单设计.......................................................................... 11 7.22报刊管理表单设计..................................................................................................... 13 7.23订阅管理界面设计................................................................................................... .167.24员工管理界面设计................................................................................................... .167.25订阅查询界面设计.................................................................................................... 177.25录入界面设计............................................................................................................ 17八.数据库应用系统运行..................................................................................... 17 九.个人心得....................... ............................................................................................ 20参考文献............................................................................................................................. 20一.设计目的
通过本课程设计,能使学生较好地巩固数据库的基本概念、基本原理、关系数据库的设计理论和设计方法等主要相关知识点,针对实际问题设计概念模型,并应用现有的工具完成小型数据库应用系统的设计与实现。
通过本实践性教学环节进一步培养学生分析问题,解决问题的能力,提高自己实际动手能力和创新能力。 通过完成一个报刊管理系统课程设计,掌握数据库的创建步骤和能力。二.系统需求分析2.1用户需求:现今,许多公司企业为了让员工能了解多一点社会的变化,订购不同的报纸,为了方便订阅和查询有关的订阅信息,因此引进了报刊管理系统。系统总体结构如下图:
报刊订阅管理系统功能菜单 |
图1.1
2.2业务流程分析:系统的业务初步定为:员工可以通过查询功能查询出自己所订阅的报刊的具体情况,也可以了解到部门里的订阅情况.
员工订阅查询 |
初步的流程图如下:
订阅查询 |
部门订阅查询 |
员工登陆 |
订阅统计 |
员工订阅总价 |
部门订阅总价 |
图 1.2
2.3信息需求分析: 从原始资料中抽出各栏目名称等系统要保存使用的相关事项,就是所要的组织数据库基表中的信息。具体信息如下:员工号,员工名,所在部门,部门号,部门名,报刊名,报刊号,报刊价格,订阅时间,订阅数量。2.4系统功能分析:报刊订阅查询系统由两方面组成:员工查询功能、管理员查询功能. (1)员工查询 ①员工登陆 ②订阅查询 ③订阅统计(2)管理员查询管理①管理员登录 ②部门管理 ③报刊管理 ④人员管理 ⑤订阅管理2.5功能分析图根据对系统功能的分析,建立了系统功能分析图,系统功能分析如图1.3所示。该图反映了系统功能模块之间的层次关系。
员工登陆 |
管理员登陆 |
订阅查询 |
订阅统计 |
部门管理 |
人员管理 |
订阅管理 |
报刊管理 |
删除、修改、添加信息 |
订阅报刊 |
报刊管理系统 |
退出 |
图1.3
三.数据库概念模型设计3.1数据库需求分析分析调查有关报刊管理系统信息需求的基础上得本系统所处理的数据流程,然后针对一般订阅查询系统的需求,通过对订阅查询管理过程的内容和流程分析,设计如下面所示的数据项和数据结构: 部门管理:部门号,部门名 报刊管理:报刊号,报刊名,报刊价格 员工管理:员工号,姓名,所在部门号,登陆密码,是否为管理员 订阅管理:订阅号,员工号,部门号,报刊号,订阅日期,订阅年限3.2 设计E-R图为了设计数据库过程对设计有比较具体的理解过程,能够比较客观的看到各个数据表之间的关系,设计了E-R图,具体的设计图如下:
部门名 |
部门号 |
部门 |
从属 |
员工 |
报刊 |
报刊名 |
价格 |
订阅 |
订阅日期 |
订阅号 |
年限 |
订购 |
选报 |
订购 |
报刊号 |
员工号 |
姓名 |
登录密码 |
图 2.3四.数据库逻辑模型设计4.1数据库初步的关系框架 部门管理(部门号,部门名) 报刊管理(报刊号,报刊名,报刊价格) 员工管理(员工号,姓名,所在部门号,登陆密码,是否为管理员) 订阅管理(订阅号,员工号,部门号,报刊号,订阅日期,订阅年限)4.2具体逻辑模型设计:
表4.21部门管理表
字段名 | 部门号 | 部门名 |
类型 | INT | VARCHAR |
宽度 | 4 | 50 |
允许空 | 否 | 否 |
主键 | 是 | 否 |
表4.22报刊管理表
字段名 | 报刊号 | 报刊名 | 报刊价格 |
类型 | INT | VARCHAR | VARCHAR |
宽度 | 4 | 50 | 50 |
Null | 否 | 否 | 否 |
主键 | 是 | 否 | 否 |
表4.23员工管理表
字段名 | 员工号 | 员工姓名 | 所在部门号 | 登录密码 |
类型 | INT | VARCHAR | INT | VARCHAR |
宽度 | 4 | 50 | 4 | 50 |
Null | 否 | 否 | 否 | 否 |
主键 | 是 | 否 | 否 | 否 |
表4.24订阅管理表
字段名 | 订阅号 | 部门号 | 员工号 | 订阅日期 | 订阅年限 |
类型 | INT | INT | INT | DATETIME | INT |
宽度 | 4 | 4 | 4 | 8 | 4 |
Null | 否 | 否 | 否 | 否 | 否 |
主键 | 是 | 否 | 否 | 否 | 否 |
五.数据库物理设计模型5.1物理模型数据库的设计的物理模型如下图:六.总体功能设计6.1主控模块设计:(1)登陆界面包括:①用户名输入框②密码输入框③登陆按钮(2)部门管理包括:① 录入按钮② 查询按钮 (3)报刊管理包括:①录入按钮②查询按钮(4)人员管理包括:①录入按钮②查询按钮(5订阅管理包括:①录入按钮②查询按钮(6订阅查询包括:订阅查询按钮(7订阅统计包括:订阅统计按钮6.2子模块设计:6.21设计输入:(1)部门管理表单界面中分为4列:部门号、部门名、删除、修改其中删除修改列为按钮,可以修改删除对应行数据(2)报刊管理表单界面中分为4列:报刊号、报刊名、删除、修改其中删除修改列为按钮,可以修改删除对应行数据(3)员工管理表单界面中分为5列:员工号、员工姓名、所在部门、删除、修改其中删除修改列为按钮,可以修改删除对应行数据(4)订阅管理界面表单界面中分为7列:订阅号、报刊号、员工号、订阅时间部门号、数量、删除其中删除列为按钮,可以删除对应行数据(5)订阅查询界面表单界面中包括:一个输入文本框、搜索按钮、按姓名、按部门号单选按钮(6)订阅统计界面表单界面中包括:一个输入文本框、搜索按钮、按姓名、按部门号单选按钮七.数据库应用系统的实现7.1 数据库及其表结构的建立:
图7.11 部门管理表
图7.12 报刊管理表
图 7.13 员工管理表
图7.14 订阅管理表
7.2 模块实现:7.21报刊订阅管理系统功能菜单设计使用软件,其中部分设计过程界面及代码如下:
图7.21 报刊订阅管理系统功能菜单设计
程序代码如下:glxtGongNengCaiDan模块:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*,com.tong.bkglxtdb.*"%>
<html>
<head>
<title>报刊订阅管理系统功能菜单</title>
<style>
body {
margin: 0;
padding: 0;
background: #f1f1f1;
font: 130% Arial, Helvetica, sans-serif;
color: #555;
line-height: 150%;
text-align: left;
}
a {
text-decoration: none;
color:#ffffff;
}
a:hover {
text-decoration: none;
color: #999;
}
h1 {
<table cellspacing="0" cellpadding="0">
<tr>
<th><br>
部门管理<br><br>
<a href="departmentinput.jsp">录入</a><br><br>
<a href="department.jsp">查看</a><br><br>
</th>
<th><br>
报刊管理<br><br>
<a href="magazineinput.jsp">录入</a><br><br>
<a href="magazine.jsp">查看</a><br><br>
</th>
<th><br>
人员管理<br><br>
<a href="workerinput.jsp">录入</a><br><br>
<a href="worker.jsp">查看</a><br><br>
</th>
<th><br>
订阅管理<br><br>
<a href="dingyueinput.jsp">录入</a><br><br>
<a href="dingyue.jsp">查看</a><br><br>
</th>
<th><br>
<a href="dingyueSearch.jsp">订阅查询</a><br><br>
</th>
<th><br>
<a href="dingyueTongJiSearch.jsp">订阅统计</a><br><br>
</th>
<th><br>
<a href="About.jsp">关于系统</a><br><br>
</th>
</tr>
</table>
</fieldset>
</body>
</html>7.22报刊管理表单设计:
图7.22报刊管理表单设计界面
程序代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*,com.tong.bkglxtdb.*"%>
<html>
<head>
<title>报刊订阅管理系统</title>
<style>
body {margin: 0;
padding: 0;
</style>
<!-- paste this code into your webpage -->
<link href="tablecloth/tablecloth.css" rel="stylesheet"
media="screen" />
<script src="tablecloth/tablecloth.js"></script>
<!-- end -->
</head>
<%
final int PAGE_SIZE = 10;
int pageNo = 1;
String strPageNo = request.getParameter("pageNo");
if (strPageNo != null && !strPageNo.trim().equals("")) {
try {
pageNo = Integer.parseInt(strPageNo);
} catch (NumberFormatException e) {
pageNo = 1;
}
}
if (pageNo <= 0)
pageNo = 1;
int totalPages = 0;
Connection conn = DB.getConn();
Statement stmtCount = DB.createStmt(conn);
ResultSet rsCount = DB.executeQuery(stmtCount,
"select count(*) from mag_magazine");
rsCount.next();
int totalRecords = rsCount.getInt(1);
totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE;
if (pageNo > totalPages)
pageNo = totalPages;
Statement stmt = DB.createStmt(conn);
int startPos = (pageNo - 1) * PAGE_SIZE;
String sql = "select * from mag_magazine order by M_id desc limit "
+ startPos + "," + PAGE_SIZE;
System.out.println(sql);
ResultSet rs = DB.executeQuery(stmt, sql);
%>
<body>
<fieldset><legend> 报刊管理表 </legend> <br>
<table cellspacing="0" cellpadding="0">
</table>
<table cellspacing="0" cellpadding="0">
<tr>
<th>报刊号</th>
<th>报刊名</th>
<th>报刊价格</th>
<%
if (logined) {
%>
<th>删除</th>
<th>修改</th>
<%
}
%>
</tr>
<%
while (rs.next()) {
%>
<tr>
<td><%=rs.getInt(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td>
<%
if (logined == true) {
%>
<td><a href="magazineDel.jsp?M_id=<%=rs.getInt(1)%>">删除</a></td>
<td><a href="magazineChange.jsp?M_id=<%=rs.getInt(1)%>">修改</a></td>
<%
}
%>
</tr>
<%
}
%>
</table>
<%
rs.close();
stmt.close();
conn.close();
%>
</fieldset>
<div align="center"><a href="glxtGongNengCaiDan.jsp">报刊订阅管理系统功能菜单</a>
</div>
<div align="center"></div>
</body>
</html>
7.23 订阅管理界面设计:
图7.23订阅管理表单设计
7.24员工管理界面设计:
图7.24员工管理界面设计
7.25订阅查询界面设计:
图7.25 订阅查询界面设计
7.26录入界面设计
图7.26 录入界面设计
八.数据库应用系统运行①打开程序,运行网页,将打开用户登陆界面,如下:
图8.1 登陆界面
②登陆成功,打开如下页面:
图8.2 报刊订阅管理系统功能菜单
③点击按钮”部门管理”,打开如下页面:
图8.3 部门管理界面
④报刊管理菜单如下:
图8.4 报刊管理菜单
⑤订阅管理菜单如下:
图8.5 报刊订阅管理菜单
⑥员工管理菜单如下:
图8.6 员工管理菜单
⑦报刊查询管理菜单如下:九.个人心得本次的课程设计为本学期的数据库画上了圆满的句号,数据库技术是一门实践性很强的一门课程,课程设计正好是这个学期学的数据库知识的体现,只有理论与实际相结合才是最好的学习方法,要是老师们能带大家搞项目的话,学生就学的更好,就业前途也越光明。总而言之一切都要靠自己的勤奋,老师已经带入门了,修炼考自己了。课程设计其实也是一个很好的教学方案,学生亲手做的一定收获很大。