数据库课程设计模版Word文档格式.docx
- 文档编号:7066910
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:29
- 大小:188.50KB
数据库课程设计模版Word文档格式.docx
《数据库课程设计模版Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计模版Word文档格式.docx(29页珍藏版)》请在冰点文库上搜索。
版面要求
1.题目用黑体三号,段后距18磅(或1行),居中对齐;
2.标题用黑体四号,段前、段后距6磅(或0.3行);
3.正文用小四号宋体,行距为1.25倍行距;
4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。
指导时间安排
星期
周次
一
二
三
四
五
六
日
17
下午7、8节
上午3、4节
18
附加要求
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
哲学类
2
社会科学类
3
政制法律类
4
经济类
5
文化类
6
教育类
7
体育类
8
外语类
9
文学艺术类
10
历史地理类
11
数理化学类
12
计算机类
13
医药卫生类
14
综合类
15
各类教材
31
测试
图书库存数据表:
表名“BookInfo”
BookID
BookName
Author
Publisher
PubleshDate
Purchase
Price
Stock
Discount
BarCode
ATL开发指南
RonPatton
电子工业出版社
2000-11-1
48
56
100
978750536298700
WindowsNT技术内幕
HelenCuster
清华大学出版社
1993-7-1
30
35
730201229600000
图书销售数据表:
表名“BookSale”
SalePrice
SaleDate
41
2005-12-7
42
80
43
45
根据系统功能模块结构图和典型的图书销售系统的需求,总结如下数据字典:
●系统用户数据:
管理员使用图书销售系统的身份数据,包含的数据项有用户编号和用户登录密码
●图书类别数据:
图书管理员选择图书的类别的数据,包含的数据项有类别的编号和类别名称。
●图书库存数据:
图书进货和销售后形成的图书书目数据,包含的数据项有图书编号,书名,类型,作者,出版社,出版日期,进价,售价,数量,折扣,条形码。
●销售数据:
图书销售时形成的数据,包含的数据项有销售编号,图书的编号,售价,出售日期。
用户登陆页面
该页面用于用户登陆,包括用户和管理员。
成功登陆则取得用户的session用于以后的操作权限认定。
程序执行时首先判断用户类型,如果是游客则对session赋值为游客类型,然后直接进入主页;
如果不是游客则执行查询语句,看数据库中是否存在这样的用户名和密码,根据选择用户类型的不同在不同的表中进行操作,成功则进入主页,否则提示输入错误
系统界面
图书录入
数据库更新
销售管理
查询统计功能
查询库存
源代码
MAIN函数
//MainFrm.cpp:
implementationoftheCMainFrameclass
//
#include"
stdafx.h"
RBookSale.h"
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()
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"
);
//failtocreate
}
m_wndStatusBar.Create(this)||
m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
Failedtocreatestatusbar\n"
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;
ModifytheWindowclassorstylesherebymodifying
//theCREATESTRUCTcs
cs.style&
=~FWS_ADDTOTITLE;
//FWS_ADDTOTITLE属性使MFC自动加文档标题,现不需要
CRBookSaleApp*pApp=(CRBookSaleApp*)AfxGetApp();
if(pApp->
m_iUser==0)
cs.lpszName="
用户浏览模式"
;
else
书店管理模式"
returnTRUE;
//CMainFramediagnostics
voidCMainFrame:
AssertValid()const
CFrameWnd:
AssertValid();
Dump(CDumpContext&
dc)const
Dump(dc);
#endif//_DEBUG
//CMainFramemessagehandlers
主体
//RAddBookDlg.cpp:
implementationfile
rbooksale.h"
RAddBookDlg.h"
//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)
//RAddBookDlgmessagehandlers
GetBookGategory()
intnum=0;
CStringstrSql;
_variant_tvar;
m_ctrlBookCategory.ResetContent();
//清空组合框中原有数据
//生成SQL查询语句,在数据苦中查找图书类型
strSql.Format("
SELECTCategoryNameFROMBookCategory"
try
pApp->
m_pRecordset->
Open(strSql.AllocSysString(),
pApp->
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
//遍历数据库中BookCategory表,获取全部图书类型
while(!
(pApp->
adoEOF))
{
var=pApp->
GetCollect("
CategoryName"
if(var.vt!
=NULL)
m_ctrlBookCategory.AddString((LPCSTR)_bstr_t(var));
pApp->
MoveNext();
num++;
}
Close();
catch(_com_error*e)
AfxMessageBox(e->
ErrorMessage());
BOOLRAddBookDlg:
OnInitDialog()
OnInitDialog();
Addextrainitializationhere
GetBookGategory();
//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
OnOK()
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())
书名不能为空。
GetDlgItem(IDC_BK_NAME)->
if(m_strAuthor.IsEmpty()||m_strAuthor.FindOneOf(str)!
作者名称不能为空或包含数字。
GetDlgItem(IDC_BK_AUTHOR)->
if(m_strPublisher.IsEmpty()||m_strPublisher.FindOneOf(str)!
出版社名称不能为空或包含数字。
GetDlgItem(IDC_BK_PUBLISHER)->
if(m_dPurchase<
=0)
图书进价应为正值!
GetDlgItem(IDC_BK_PURCHASE)->
if(m_dPrice<
=0)
图书售价应为正值!
GetDlgItem(IDC_BK_PRICE)->
if(m_lDiscount<
0||m_lDiscount>
100)
图书折扣应为0-100之间正值!
GetDlgItem(IDC_BK_DISCOUNT)->
if(m_lStock<
1)
图书数量应为正值!
GetDlgItem(IDC_BK_STOCK)->
if(m_strBarcode.IsEmpty()||m_s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 模版