出版社图书管理系统
- 格式:doc
- 大小:197.50 KB
- 文档页数:19
某某大学
数据库课程设计报告
设计题目:出版社图书管理系统学生姓名:xxx
系别:理学院
专业:信息与计算科学
学号:xxx
指导教师:xxx
一、需求分析
根据出版社图书的规模日益扩增,图书类别的日益繁琐,经销商与出版社频繁交易,行业竞争日益激烈,面对诸多问题时:一款优秀的出版社图书管理软件是每一个从事出版社图书销售与管理的必备的工具。出版社图书出版管理是一个庞大的任务,传统方式的图书管理将会造成巨大的人力和物力的浪费,本系统的设计可以使工作人员实现计算机管理。减轻工作量,实现图书出版管理的高效化。
功能需求:
系统管理员可以通过该应用程序对书籍全部信息进行管理
客户和系统管理员可以通过应用程序查询图书的全部信息
客户可以通过应用程序产生购书订单
系统管理员可以通过应用程序对订单信息进行管理
系统管理员可以通过应用程序对客户进行管理
内部功能需要通过SQL语言,对数据库的查询,修改,插入和删除等操作。
二、系统功能分析根据需求分析,给出模块图
三、E-R图
(1)用户ER图:
(2)图书ER图:
(3)产品分类ER图:
(4)订单基本信息ER图:
(5)订单详细信息ER图:
综合ER图
出版社图书管理ER图
四、数据库设计
用户表(用户ID号,登录名,地址,密码,电话,电子邮件,注册时间),主码为ID号,符合三范式。
图书表(图书ID,书名,图书类别,作者,出版社,价格,销售价格,内容和目录,图书简介,入库时间),主码为图书ID,符合三范式。
图书分类信息表(图书分类ID,图书分类名称)主码为图书分类ID,符合三范式。
订单基本信息表(订单ID,提交时间,总金额,用户ID,订单备注,是否发货,是否付款)主码为订单ID,符合三范式。
订单详细信息表(唯一编号,订单ID,图书ID,数量)主码为唯一编号,符合三范式
表4-1 用户表(User)
表4-2 图书表(Book)
表4-3 图书分类信息表(BookCategory)
表4-4 订单详细信息表(
OrderInfo)
表4-5 订单基本信息表(Order)
五、详细设计
部分设计代码如下:
// 图书出版管理系统View.cpp : implementation of the CMyView class #include "stdafx.h"
#include "图书出版管理系统.h"
//开始声明
#include "MyDlg1.h"
#include "MyDlg2.h"
//结束声明
#include "图书出版管理系统Set.h"
#include "图书出版管理系统Doc.h"
#include "图书出版管理系统View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CMyView::CMyView()
: CRecordView(CMyView::IDD)
{
//{{AFX_DATA_INIT(CMyView)
m_pSet = NULL;
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CMyView::~CMyView()
{
}
// CMyView message handlers
//增加记录按钮代码
void CMyView::OnButtonaddnew()
{
// TODO: Add your control notification handler code here
m_pSet->AddNew();
UpdateData(FALSE);
}
//删除记录按钮代码
void CMyView::OnButtondeldte()
{
// TODO: Add your control notification handler code here m_pSet->Delete();
m_pSet->MoveNext();
if(m_pSet->IsEOF())
m_pSet->MoveLast();
if(m_pSet->IsBOF())
m_pSet->SetFieldNull(NULL);
UpdateData(FALSE);
}
//刷新按钮代码
void CMyView::OnButtonupdate()
{
// TODO: Add your control notification handler code here UpdateData();
m_pSet->Update();
m_pSet->Requery();
// m_pSet->CancelUpdate();
}
//第一条按钮代码
void CMyView::OnButtonfirst()
{
// TODO: Add your control notification handler code here m_pSet->MoveFirst();
if(m_pSet->IsBOF())
{
MessageBox("记录已经在第一条");
m_pSet->MoveNext();
UpdateData(FALSE);
return;
}
UpdateData(FALSE);
}
//下一条按钮代码