数据库课程设计模版.docx
- 文档编号:4959444
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:29
- 大小:188.50KB
数据库课程设计模版.docx
《数据库课程设计模版.docx》由会员分享,可在线阅读,更多相关《数据库课程设计模版.docx(29页珍藏版)》请在冰点文库上搜索。
数据库课程设计模版
重庆交通大学
学生实验报告
班级:
2011级计软1班
姓名:
唐历旭
学号:
631106050104
实验项目名称:
图书销售管理
实验项目性质:
综合型
实验室(中心):
语音大楼3楼
指 导 教 师:
王家伟
开课时间2013至2014学年第1学期
重庆交通大学计算机科学与技术学院课程设计任务书
课程
数据库及应用课程设计
班级
计算机科学与技术2011级1班
指导教师
王家伟
题目
教材管理系统、人事管理系统、图书销售管理系
完成时间
2013年12月23日至
2013年1月3日
主要内容
题目具体内容见附件
设计报告要求
1、每个题目的需求;wzybq123@
2、分析每个题目的软件功能模块;
3、分析每个题目的数据库结构;
4、软件代码设计;
5、根据以上要求完成课程设计报告。
每个题目要求代码以附件的方式打印出来。
版面要求
1.题目用黑体三号,段后距18磅(或1行),居中对齐;
2.标题用黑体四号,段前、段后距6磅(或0.3行);
3.正文用小四号宋体,行距为1.25倍行距;
4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。
指导时间安排
星期
周次
一
二
三
四
五
六
日
17
下午7、8节
上午3、4节
18
上午3、4节
上午3、4节
附加要求
1、题目可以从给定的题目中选择,也可以自选。
2、每个题目可以独立完成,也可以分组完成,但每个小组的人数不能超过3人。
3、设计工具自选,但每个题目必须用高级语言实现。
4、每位同学都必须有独立的设计报告且相同的内容不能超过20%。
5、上交设计内容时,包含设计报告(打印件)和设计成果的内容。
6、最终成绩评定:
见评分标准。
7、于18周星期五交设计内容。
指导
地点
语音楼3楼计算机学院机房
目录
摘要02
一、前言
二、系统分析
三、数据库表
四、功能模块
五、执行界面
六、源码
七、总结04
MicrosoftSQLServer
SQL是英文(Structured QueryLanguage)的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。
SQL语言有以下几个优点:
1非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。
SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。
SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。
2.统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。
基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。
3.所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。
系统分析
一般的图书销售管理系统包括系统管理,图书管理,销售管理,销售统计,库存管理等功能。
以下介绍一下销售管理系统的一些必备功能,每个功能具有若干相关的子模块构成。
本系统总共划分以下几个模块:
A.图书信息
B.图书查找
C.图书录入用户状态管理
D.零售购买
E.图书销售
F.系统设置
实体-关系图
数据表
根据实体-关系图和数据字典,设计出图书销售系统数据库中的各个数据表。
根据用户使用要求得到系统用户数据表,根据图书类别得到图书类别数据表,根据图书实体得到图书库存数据表,根据售卖关系得到图书销售数据表。
系统用户数据表:
表名“Pwd”
ID
Password
1
123
图书类别数据表:
表名“BookCategory”
CategoryID
CategoryName
1
哲学类
2
社会科学类
3
政制法律类
4
经济类
5
文化类
6
教育类
7
体育类
8
外语类
9
文学艺术类
10
历史地理类
11
数理化学类
12
计算机类
13
医药卫生类
14
综合类
15
各类教材
31
测试
图书库存数据表:
表名“BookInfo”
BookID
BookName
CategoryID
Author
Publisher
PubleshDate
Purchase
Price
Stock
Discount
BarCode
2
ATL开发指南
计算机类
RonPatton
电子工业出版社
2000-11-1
48
56
5
100
978750536298700
3
WindowsNT技术内幕
计算机类
HelenCuster
清华大学出版社
1993-7-1
30
35
2
100
730201229600000
图书销售数据表:
表名“BookSale”
ID
BookID
SalePrice
SaleDate
41
2
100
2005-12-7
42
2
80
2005-12-7
43
1
45
2005-12-7
根据系统功能模块结构图和典型的图书销售系统的需求,总结如下数据字典:
●系统用户数据:
管理员使用图书销售系统的身份数据,包含的数据项有用户编号和用户登录密码
●图书类别数据:
图书管理员选择图书的类别的数据,包含的数据项有类别的编号和类别名称。
●图书库存数据:
图书进货和销售后形成的图书书目数据,包含的数据项有图书编号,书名,类型,作者,出版社,出版日期,进价,售价,数量,折扣,条形码。
●销售数据:
图书销售时形成的数据,包含的数据项有销售编号,图书的编号,售价,出售日期。
用户登陆页面
该页面用于用户登陆,包括用户和管理员。
成功登陆则取得用户的session用于以后的操作权限认定。
程序执行时首先判断用户类型,如果是游客则对session赋值为游客类型,然后直接进入主页;如果不是游客则执行查询语句,看数据库中是否存在这样的用户名和密码,根据选择用户类型的不同在不同的表中进行操作,成功则进入主页,否则提示输入错误
系统界面
图书录入
数据库更新
销售管理
查询统计功能
查询库存
源代码
MAIN函数
//MainFrm.cpp:
implementationoftheCMainFrameclass
//
#include"stdafx.h"
#include"RBookSale.h"
#include"MainFrm.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame,CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
staticUINTindicators[]=
{
ID_SEPARATOR,//statuslineindicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
//CMainFrameconstruction/destruction
CMainFrame:
:
CMainFrame()
{
//TODO:
addmemberinitializationcodehere
}
CMainFrame:
:
~CMainFrame()
{
}
intCMainFrame:
:
OnCreate(LPCREATESTRUCTlpCreateStruct)
{
if(CFrameWnd:
:
OnCreate(lpCreateStruct)==-1)
return-1;
if(!
m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP
|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||
!
m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failedtocreatetoolbar\n");
return-1;//failtocreate
}
if(!
m_wndStatusBar.Create(this)||
!
m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failedtocreatestatusbar\n");
return-1;//failtocreate
}
//TODO:
Deletethesethreelinesifyoudon'twantthetoolbarto
//bedockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
return0;
}
BOOLCMainFrame:
:
PreCreateWindow(CREATESTRUCT&cs)
{
if(!
CFrameWnd:
:
PreCreateWindow(cs))
returnFALSE;
//TODO:
ModifytheWindowclassorstylesherebymodifying
//theCREATESTRUCTcs
cs.style&=~FWS_ADDTOTITLE;//FWS_ADDTOTITLE属性使MFC自动加文档标题,现不需要
CRBookSaleApp*pApp=(CRBookSaleApp*)AfxGetApp();
if(pApp->m_iUser==0)
cs.lpszName="用户浏览模式";
else
cs.lpszName="书店管理模式";
returnTRUE;
}
/////////////////////////////////////////////////////////////////////////////
//CMainFramediagnostics
#ifdef_DEBUG
voidCMainFrame:
:
AssertValid()const
{
CFrameWnd:
:
AssertValid();
}
voidCMainFrame:
:
Dump(CDumpContext&dc)const
{
CFrameWnd:
:
Dump(dc);
}
#endif//_DEBUG
/////////////////////////////////////////////////////////////////////////////
//CMainFramemessagehandlers
主体
//RAddBookDlg.cpp:
implementationfile
//
#include"stdafx.h"
#include"rbooksale.h"
#include"RAddBookDlg.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//RAddBookDlgdialog
RAddBookDlg:
:
RAddBookDlg(CWnd*pParent/*=NULL*/)
:
CDialog(RAddBookDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(RAddBookDlg)
m_lDiscount=0;
//}}AFX_DATA_INIT
m_bHasNewBook=false;
Init();
}
voidRAddBookDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(RAddBookDlg)
DDX_Control(pDX,IDC_BK_CATEGORY,m_ctrlBookCategory);
DDX_Text(pDX,IDC_BK_AUTHOR,m_strAuthor);
DDX_Text(pDX,IDC_BK_BARCODE,m_strBarcode);
DDX_DateTimeCtrl(pDX,IDC_BK_DATE,m_tPublishDate);
DDX_Text(pDX,IDC_BK_NAME,m_strBookName);
DDX_Text(pDX,IDC_BK_PAYOFF,m_dPayoff);
DDX_Text(pDX,IDC_BK_PRICE,m_dPrice);
DDX_Text(pDX,IDC_BK_PUBLISHER,m_strPublisher);
DDX_Text(pDX,IDC_BK_PURCHASE,m_dPurchase);
DDX_Text(pDX,IDC_BK_STOCK,m_lStock);
DDX_CBString(pDX,IDC_BK_CATEGORY,m_strBookCategory);
DDX_Text(pDX,IDC_BK_DISCOUNT,m_lDiscount);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(RAddBookDlg,CDialog)
//{{AFX_MSG_MAP(RAddBookDlg)
ON_EN_CHANGE(IDC_BK_PURCHASE,OnChangeBkPurchase)
ON_EN_CHANGE(IDC_BK_PRICE,OnChangeBkPrice)
ON_EN_CHANGE(IDC_BK_DISCOUNT,OnChangeBkDiscount)
ON_BN_CLICKED(IDC_SAVE,OnSave)
ON_BN_CLICKED(IDC_RESET,OnReset)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//RAddBookDlgmessagehandlers
voidRAddBookDlg:
:
GetBookGategory()
{
intnum=0;
CStringstrSql;
_variant_tvar;
m_ctrlBookCategory.ResetContent();//清空组合框中原有数据
//生成SQL查询语句,在数据苦中查找图书类型
strSql.Format("SELECTCategoryNameFROMBookCategory");
CRBookSaleApp*pApp=(CRBookSaleApp*)AfxGetApp();
try
{
pApp->m_pRecordset->Open(strSql.AllocSysString(),
pApp->m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
//遍历数据库中BookCategory表,获取全部图书类型
while(!
(pApp->m_pRecordset->adoEOF))
{
var=pApp->m_pRecordset->GetCollect("CategoryName");
if(var.vt!
=NULL)
m_ctrlBookCategory.AddString((LPCSTR)_bstr_t(var));
pApp->m_pRecordset->MoveNext();
num++;
}
pApp->m_pRecordset->Close();
}
catch(_com_error*e)
{
AfxMessageBox(e->ErrorMessage());
}
}
BOOLRAddBookDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//TODO:
Addextrainitializationhere
GetBookGategory();
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
voidRAddBookDlg:
:
OnOK()
{
//TODO:
Addextravalidationhere
//UpdateData(TRUE);
//if(IsValidInput())
//CDialog:
:
OnOK();
}
boolRAddBookDlg:
:
IsValidInput()
{
CStringstr="0123456789";
if(m_strBookCategory.IsEmpty()||m_strBookCategory.FindOneOf(str)!
=-1)
{
AfxMessageBox("输入有误!
图书类型不能为空或包含数字。
");
GetDlgItem(IDC_BK_CATEGORY)->SetFocus();
returnfalse;
}
if(m_strBookName.IsEmpty())
{
AfxMessageBox("输入有误!
书名不能为空。
");
GetDlgItem(IDC_BK_NAME)->SetFocus();
returnfalse;
}
if(m_strAuthor.IsEmpty()||m_strAuthor.FindOneOf(str)!
=-1)
{
AfxMessageBox("输入有误!
作者名称不能为空或包含数字。
");
GetDlgItem(IDC_BK_AUTHOR)->SetFocus();
returnfalse;
}
if(m_strPublisher.IsEmpty()||m_strPublisher.FindOneOf(str)!
=-1)
{
AfxMessageBox("输入有误!
出版社名称不能为空或包含数字。
");
GetDlgItem(IDC_BK_PUBLISHER)->SetFocus();
returnfalse;
}
if(m_dPurchase<=0)
{
AfxMessageBox("图书进价应为正值!
");
GetDlgItem(IDC_BK_PURCHASE)->SetFocus();
returnfalse;
}
if(m_dPrice<=0)
{
AfxMessageBox("图书售价应为正值!
");
GetDlgItem(IDC_BK_PRICE)->SetFocus();
returnfalse;
}
if(m_lDiscount<0||m_lDiscount>100)
{
AfxMessageBox("图书折扣应为0-100之间正值!
");
GetDlgItem(IDC_BK_DISCOUNT)->SetFocus();
returnfalse;
}
if(m_lStock<1)
{
AfxMessageBox("图书数量应为正值!
");
GetDlgItem(IDC_BK_STOCK)->SetFocus();
returnfalse;
}
if(m_strBarcode.IsEmpty()||m_s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 模版