数据库应用操作系统综合实践设计说明书.docx
《数据库应用操作系统综合实践设计说明书.docx》由会员分享,可在线阅读,更多相关《数据库应用操作系统综合实践设计说明书.docx(37页珍藏版)》请在冰豆网上搜索。
数据库应用操作系统综合实践设计说明书
数据库应用操作系统综合实践设计说明书
1.引言
1.1编写目的
详细设计书的编写,是为了搭构整个小项目具体代码实现的框架,说明一个软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑。
面向的读者是具体进行代码实现的程序员们。
1.2项目背景
基于体系的数据库理论知识的学习和实践训练的要求,在运用数据库之前首先实现对数据库的设计管理。
1.3参考资料
1.软酷网的相关资料
例如:
0-ProjectIntroduction.pdf
1-CreateProject.pdf
2-InterfaceDesign.pdf
3-DataStructureDesign.pdf
4-ExceptionHandling.pdf
5-CreateDatabase.pdf
6-CreateTableDescriptionFile.pdf
7-DefineTableStructure.pdf
8-ShowTableStructure.pdf
2.数据库课程资料
3.《深入浅出MFC》第二版(侯俊杰编)
2.总体设计
2.1需求概述
对界面上的各个按钮实现对应功能,最后整体实现数据库、表、属性、记录等的创建、修改和删除。
明确不同功能模块类以及其中包含的成员变量和成员函数,分清各个函数之间的调用。
3.程序详细设计
3.1程序中用到的抽象数据类型:
Global.h全局定义文件
BoolDB,Table,Column,Record;
//用于记录当前数据库或表或属性或记录是否已读入存
intCur_DB,Cur_Table;
//记录当前系统正在使用的数据库和表对应的数组下标
intDBs_NUM,Tables_NUM,Columns_NUM;
//记录数据库、表、属性的数量,以初始化相应的动态数组
CString*DBs,*Tables,*Columns;
//动态数组,用于存储文件中的数据库
3.2函数的调用关系图
3.3类和相关函数的详细介绍
3.3.1Doc类
1.成员变量
类型
名称
说明
无
无
无
2.成员函数
编号
函数
参数
说明
返回值
1
CDBMSDoc();
无
序列化创建
无
2
DECLARE_DYNCREATE(CDBMSDoc)
CDBMSDoc
序列化创建
无
3
virtualBOOLOnNewDocument()
无
重写函数
true/false
4
virtualvoidSerialize(CArchive&ar)
CArchive&ar
重写函数
无
5
virtual~CDBMSDoc();
无
析构函数
无
6
voidSelectDB(CStringDB_Name)
CStringDB_Name
设置数据库名
无
7
intGetNum(CStringFilename)
CStringFilename
读取文件有多少行
行数
8
voidWriteFile(CStringFilename,CStringRecord)
CStringFilename,CStringRecord
将记录写入文件
无
9
voidRefreshWriteFile(CStringFilename,CString*Record,intnum)
CStringFilename,CString*Record,intnum
重新写入文件
无
10
voidWriteLog(CStringszlog,CStringfilename);
CStringszlog,CStringfilename
用于写日志文件
无
3.重要函数介绍
intGetNum(CStringFilename)
功能描述:
读取对应的文件,计算共有多少行。
读取对应的文件,参数i用于函数部调用计算对应的数量,初始化对应数组0代表数据库,1代表表格,2代表属性,3代表记录。
被调用:
调用:
流程图:
voidWriteFile(CStringFilename,CStringRecord)
功能描述:
将记录写入文件
被调用:
调用:
流程图:
voidRefreshWriteFile(CStringFilename,CString*Record,intnum)
功能描述:
重新写入文件
被调用:
调用:
流程图:
voidWriteLog(CStringszlog,CStringfilename)
功能描述:
写日志文件
被调用:
调用:
流程图:
3.3.2DBMSView类
1.成员变量
类型
名称
说明
CTreeCtrl
*treeCtrl
HTREEITEM
hRoot,hSubItem,hSubItem1,tree
CImageList
m_ImageList
Global
Global_Element
CDBMSDoc
*pDoc
2.成员函数
编号
函数
参数
说明
返回值
1
virtualvoidOnInitialUpdate()
无
无
2
afx_msgvoidOnTvnSelchanged(NMHDR*pNMHDR,LRESULT*pResult)
NMHDR*pNMHDR,LRESULT*pResult
无
3
virtualBOOLPreCreateWindow(CREATESTRUCT&cs)
CREATESTRUCT&cs
true/false
4
virtualvoidOnUpdate(CView*/*pSender*/,LPARAM/*lHint*/,CObject*/*pHint*/)
CView*/*pSender*/,LPARAM/*lHint*/,CObject*/*pHint*/
更新树结构
无
5
afx_msgvoidOnNMDblclk(NMHDR*pNMHDR,LRESULT*pResult)
NMHDR*pNMHDR,LRESULT*pResult
更新菜单栏
无
3.重要函数介绍
virtualvoidOnInitialUpdate()
功能描述:
初始化树。
被调用:
无
调用:
流程图:
virtualvoidOnUpdate(CView*/*pSender*/,LPARAM/*lHint*/,CObject*/*pHint*/)
功能描述:
更新树结构。
被调用:
无
调用:
流程图:
afx_msgvoidOnNMDblclk(NMHDR*pNMHDR,LRESULT*pResult)
功能描述:
获取选定的层次,更新菜单栏。
被调用:
无
调用:
流程图:
3.3.3DBlistView类
1.成员变量
类型
名称
说明
CListCtrl
*listCtrl
Global
Global_Element
CDBMSDoc
*pDoc
2.成员函数
编号
函数
参数
说明
返回值
1
CDBlistView()
无
构造函数
无
2
~CDBlistView()
无
析构函数
无
3
virtualvoidOnInitialUpdate()
无
初始化列表
无
4
virtualvoidOnUpdate(CView*/*pSender*/,LPARAM/*lHint*/,CObject*/*pHint*/)
CView*/*pSender*/,LPARAM/*lHint*/,CObject*/*pHint*/
更新列表
无
3.重要函数介绍
virtualvoidOnInitialUpdate()
功能描述:
初始化列表,绘制列表各项显示区域。
被调用:
无
调用:
流程图:
virtualvoidOnUpdate(CView*/*pSender*/,LPARAM/*lHint*/,CObject*/*pHint*/)
功能描述:
更新列表
被调用:
无
调用:
流程图:
3.3.4Logical类
1.成员变量
类型
名称
说明
无
无
无
2.成员函数
编号
函数
参数
说明
返回值
1
boolIs_DB_Repeat(CStringName,intDB_NUM,CDBMSView*pView)
CStringName,intDB_NUM,CDBMSView*pView
判断数据库是否重复
true/false
2
boolIs_Table_Repeat(CStringName,intDB_NUM,CDBMSView*pView)
CStringName,intDB_NUM,CDBMSView*pView)
判断数据表是否重复
true/false
3
boolIs_Field_Repeat(CStringName,intDB_NUM,CDBMSView*pView)
CStringName,intDB_NUM,CDBMSView*pView
判断字段是否重复
true/false
3.重要函数介绍
boolIs_DB_Repeat(CStringName,intDB_NUM,CDBMSView*pView)
功能描述:
判断数据库是否重复
被调用:
调用:
无
流程图:
boolIs_Table_Repeat(CStringName,intDB_NUM,CDBMSView*pView)
功能描述:
判断所给表名是否已经存在
被调用:
调用:
无
流程图:
boolIs_Field_Repeat(CStringName,intDB_NUM,CDBMSView*pView)
功能描述:
判断所给属性名是否已经存在
被调用:
调用:
无
流程图:
3.3.5Global类
1.成员变量
类型
名称
说明
int
DB_NUM
int
TABLE_NUM
CString*
All_DB
保存所有数据库到存
CString*
Cur_DB
记录当前选中的数据库
CString*
All_TABLE
保存所有表格到存
CString*
Cur_TABLE
记录当前选中的表格
CString*
All_FIELD
保存所有字段到存
CString*
Cur_FIELD
记录当前选中的字段
2.成员函数
编号
函数
参数
说明
返回值
1
voidOnInigital_DB(intNum_DB)
IntNum_DB
初始化数据库
2
voidOnInigital_TABLE(intNum_Table,CStringFilename)
intNum_Table
CStringFilename
初始化表格
3
voidOnInigital_FIELD(intNum_Field,CStringFilename)
intNum_Field
CStringFilename
初始化字段
4
voidSetDB_Num(intNum_DB)
intNum_DB
设置数据库数量
5
CStringGetDB_Name(inti)
inti
设置数据库名称
CString
6
voidSetCur_DB(CStringDB);
CStringDB
设置数据库
7
voidSetCur_TABLE(CStringTABLE);
CStringTABLE
设置表格
8
voidSetCur_FIELD(CStringFIELD);
CStringFIELD
设置字段
9
intGetDB_Num();
得到数据库数量
10
intGetTABLE_Num();
得到数量
3.重要函数介绍
voidOnInigital_DB(intNum_DB)
功能描述:
初始化
被调用:
无
调用:
voidCDBMSView:
:
OnInitialUpdate(),
voidCDBMSView:
:
OnUpdate()
voidOnInigital_TABLE(intNum_DB)
功能描述:
初始化
被调用:
无
调用:
voidCDBMSView:
:
OnInitialUpdate(),
voidCDBMSView:
:
OnUpdate()
voidOnInigital_FIELD(intNum_DB)
功能描述:
初始化
被调用:
无
调用:
voidCDBMSView:
:
OnInitialUpdate(),voidCDBMSView:
:
OnUpdate()
3.3.6MainFrm类
1.成员变量
类型
名称
说明
CToolBar
m_wndToolBar
CStatusBar
m_wndStatusBar
CSplitterWnd
m_wndSplitter
CDBMSView
m_wndCTreeView
CDBlistView
m_wndCListView
2.成员函数
编号
函数
参数
说明
返回值
1
afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct);
LPCREATESTRUCTlpCreateStruct
2
afx_msgvoidOnAddfield();
3
afx_msgvoidOnTableNewtable();
4
afx_msgvoidOnDatabaseCreatedatabase();
5
afx_msgvoidOnDatabaseOpendatabase();
6
afx_msgvoidOnDatabaseDeletedatabse();
7
afx_msgvoidOnTableDeletetable();
8
afx_msgvoidOnDatabaseOpenTable();
9
afx_msgvoidOnFieldDeletefield();
3.重要函数介绍
intCMainFrame:
:
OnCreate(LPCREATESTRUCTlpCreateStruct)
功能描述:
初始化工具栏、状态栏
被调用:
无
调用:
3.4对话框
3.4.1databaseoperations(数据库操作)
CreateDatabaseDlg对话框
功能:
创建一个数据库。
程序流程:
用户点击创建数据库按钮,输入数据库名称,如果该数据库已经存在,则无法创建,否则创建一个新的数据库,保存到文件之中,全部操作记录保存到日志文件里。
功能流程图:
OpenDatabaseDlg对话框
功能:
打开一个已经创建好的数据库。
程序流程:
用户点击打开数据库按钮,显示所有数据库名称,用户选择一个数据库,打开,显示所有数据表名称,全部操作记录保存到日志文件里。
功能流程图:
DeleteDatabaseDlg对话框
功能:
删除一个已经创建好的数据库
程序流程:
用户点击删除数据库按钮,读取文件,显示当前所有的数据库名称。
用户根据自己的需要选择一个数据库进行删除,系统将自动删除数据库以及数据库里面的所有数据表和字段信息,将剩余的数据库信息写入到文件中,全部操作记录保存到日志文件里。
功能流程图:
3.4.2tableoperations(表格操作)
NewTableDlg对话框
功能:
创建一个数据表。
程序流程:
用户先选择一个数据库,创建数据表,输入数据表名称,判断是否存在,存在时不能创建数据表,不存在时创建一个数据表,写入到文件中并显示出来,全部操作记录保存到日志文件里。
功能流程图:
OpenTableDlg对话框
功能:
打开一个数据表。
程序流程:
用户选择一个数据库里的数据表,点击打开,读取文件,弹出数据表里的字段信息,全部操作记录保存到日志文件里。
功能流程图:
ModifyTableDlg对话框
功能:
更改一个数据表名称。
程序流程:
用户选择一个数据库里的数据表,读取文件,进行更改操作,输入新的数据表名称,保存写入到文件里,全部操作记录保存到日志文件里。
功能流程图:
DeleteTableDlg对话框
功能:
删除一个数据表。
程序流程:
用户点击删除数据表按钮,读取文件,显示选择的数据库里的所有数据表,用户选择一个待删除的数据表,确认删除,保存,写入到新的文件里,全部操作记录保存到日志文件里。
功能流程图:
3.4.3fieldoperations(字段操作)
AddFieldDlg对话框
功能:
向已有的数据表里加入字段。
程序流程:
用户点击增加字段按钮,向数据表里增加新的字段,首先判断字段在数据表里是否存在,如果存在,则无法输入信息。
如果不存在,向数据表理添加属性信息,包括(数据类型、字段默认值、是否为主键、是否为空),然后加上系统当前时间存入文件,全部操作记录保存到日志文件里。
功能流程图:
DeleteFieldDlg对话框
功能:
删除数据表里的字段信息。
程序流程:
用户点击删除字段信息对话框,首先输入需要删除的字段名称,进行判断,如果不存在这个字段,则无法删除,如果存在这个字段,从文件里读取数据表里的字段信息,然后再将除了需要删除的字段信息写入原文件,达到删除的目的,全部操作记录保存到日志文件里。
功能流程图:
ModifyFieldDlg对话框
功能:
修改数据表字段信息。
程序流程:
用户点击修改数据表字段修改按钮,首先系统提示用户输入需要更改的字段名称,然后进行判断,如果不存在该条字段,则无法修改字段信息。
如果存在该字段信息,则先在对话框上显示原有的字段信息,然后再让用户输入字段新的信息,继而读取文件,再将新的信息写入文件,全部操作记录保存到日志文件里。
功能流程图:
QueryFieldDlg对话框
功能:
查询数据表的字段信息。
程序流程:
用户点击查询按钮,系统提示用户输入需要查询的字段信息,用户输入字段名称,系统进行判断,如果不存在该字段,则无法查询,否则,读取文件保存到动态数组里面,显示需要查询的信息,全部操作记录保存到日志文件里。
功能流程图: