数据库课程设计报告

更新时间:2024-06-21 18:35:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

成 绩

课 程 设 计

课程名称_ 数据库课程设计___ 题目名称____小型记账系统______ 学生学院______ 专业班级____ 学 号__________ 学生姓名___________ 指导教师_________

2011 年 6 月

论文 评价标准 分数比例(%) 论文结构包含:相关技术介绍、需求分析、概念结构设计、逻辑结 构设计、数据库物理设计、数据库实施、系统测试方案和测试报告、 系统的主要功能和使用说明、系统安装说明。 40 要求论文完整、内容详细,格式规范。 系统运行正确; 功能完善:有增、删、改、查功能,有基本的报表、查询、统计和输入、输出功能; 工作量充分; 系统实现技术的难度。 数据 库设 计

E-R图设计正确; 数据库逻辑结构设计规范化; 数据库物理设计合理。 中 及格 不及格 30 总分 30 成绩 程序 总评成绩 优 良

目录

相关技术介绍...........................................................................................4

1.1 Visual Studio 2008的简介 ..................................................................................... 4 1.2 Microsoft Access 2007的简介................................................................................ 4 1.3 C/S结构的简介.................................................................................................... 4

需求分析...................................................................................................5

2.1需求简介 ............................................................................................................. 5 2.2数据字典 ............................................................................................................. 5

2.2.1数据项 ....................................................................................................... 5 2.2.2数据结构.................................................................................................... 6 2.3用例图 ................................................................................................................. 6

总体设计...................................................................................................7

3.1系统总体功能模块图 ............................................................................................ 7

数据库设计...............................................................................................7

4.1 ER图设计............................................................................................................ 8 4.2关系模式 ............................................................................................................. 8 4.3逻辑模型 ............................................................................................................. 9 4.4物理设计 ............................................................................................................. 9

4.4.1 数据库建立 ............................................................................................... 9 4.4.2 数据库备份和恢复 ................................................................................... 10

用户界面的设计和实现和应用程序编码.............................................10

5.1用户界面设计 .................................................................................................... 10

系统测试方案和测试报告.....................................................................18

6.1系统测试 ........................................................................................................... 19

6.1.1错误数据.................................................................................................. 19 6.1.2正确数据.................................................................................................. 22

安装和使用说明.....................................................................................25

7.1 安装 ................................................................................................................. 25 7.2 使用说明 .......................................................................................................... 25

参考文献.................................................................................................26

相关技术介绍

1.1 Visual Studio 2008的简介

对于应用程序开发工具的选择,很多人都听过这句经典的说法:聪明的程序员使用Delphi,真正的程序员使用Visual C++ 。Visual Studio是微软公司推出的开发Win32应用程序(Windows 95/98/2000/XP/NT)的、面向对象的可视化集成开发工具。它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。

1.2 Microsoft Access 2007的简介

Microsoft Access 数据库管理系统是Microsoft Office 套件的重要组成部分,先后出现了Access 97、Access 2000 和Access 2007。其中Access 2007是最新版本。Access适用于小型商务活动,用以存贮和管理商务活动所需要的数据。Access不仅是一个数据库,而且它具有强大的数据管理功能,它可以方便地利用各种数据源,生成窗体(表单),查询,报表和应用程序等。

Access 2007数据库由七种对象组成:表、查询、窗体、报表、页、宏和模块。

表(Table) ——表是数据库的基本对象,是创建其他6种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。

查询(Query)——查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。

窗体(Form)——窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。

报表(Report)——报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。 页(Page) ——也叫数据访问页。是连接到数据库的 Web 页,在数据访问页中,可以查看、添加、编辑和操作存储在数据库中的数据。数据访问页还可以包括其他来源的数据,例如 Microsoft Excel。

宏(Macro)——宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。

模块(Module)——模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用Visual Basic编程。

1.3 C/S结构的简介

随着网络的发展,出现了C/S模式,应用被分为前端(客户机部分)和后端(服务器部分)。C/S结构的系统有三个基本组成部分:客户机、服务器、客户机与服务器的连接件。客户机一般运行在微机上,而服务器一般运行在大型机或高性能微机上。这种模式的最大特

点就在于利用客户机和服务器双方的资源来共同执行一个特定的任务,也就是一个应用由客户机和服务器共同承担完成。C/S结构的优点有:交互性强,运行效率高,开放性强,可扩充性好,应用服务器运行负荷较轻,提供了更安全的存储模式。由于C/S模式在逻辑结构上比B/S模式少一层,对于相同的任务,C/S完成的速度总比B/S快。

需求分析

2.1需求简介

在生活节奏非常快的当今社会,人们需要对日常的开支有一个明确的但是简单的记录方式,迷你一个记账系统就是提供这样一种方式的小型管理系统。它可以用来管理日常生活的支出,可以对消费进行分类、统计、查询,使支出更加清晰明确,你可以根据时间段进行统计出消费的情况,打印出消费单。

因为是面向实用的,所以功能不需要太过于复杂,只需要实用就可以了,考虑到用户的需求,界面需要比较简洁和美观,操作尽量简单。

2.2数据字典 2.2.1数据项

数据项名称:用户名

简述:用户的名称,用于登录系统 类型:字符串 长度:20

数据项之间的联系:用户名→密码

数据项名称:条目编号 简述:消费的条目编号 类型:字符串 长度:7

取值范围:0000000~9999999

数据项之间的联系:条目编号→条目名称,条目编号→消费类型,条目编号→单价,条目编号→数量,条目编号→消费时间

数据项名称:消费类型 简述:消费的类型 类型:字符串 长度:20

2.2.2数据结构

数据结构名称:用户信息

含义说明:使用系统的用户的具体信息 组成:用户名 + 密码

数据结构名称:消费信息

含义说明:消费的条目的具体信息

组成:条目编号 + 条目名称 + 消费类型 + 单价 + 数量 + 消费时间

数据结构名称:类型信息 含义说明:消费类型的具体信息 组成:消费类型

2.3用例图

系统修改登录名<>修改登录密码<><>删除类别<>用户<><>删除消费修改消费<>添加消费添加类别

总体设计

3.1系统总体功能模块图

迷你记账系统用户管理消费管理类型管理统计查询修改用户名修改用户密码添加消费修改类型删除消费添加类型删除类型统计导出统计信息设置查询条件查询

数据库设计

4.1 ER图设计

用户用户名密码单价数量消费时间消费n消费类型1消费类型条目编号条目名称消费类型消费类型

4.2关系模式

用户(用户名,密码) 消费类型(消费类型)

消费(条目编号,条目名称,消费类型,单价,数量,消费时间)

关系模式对应的基本表

关系模型 用户 消费类型 消费 基本表 users class entry

4.3逻辑模型

用户#用户名Variable characters (20)o密码Variable characters (20)消费Variable characters (7)Variable characters (15)Variable characters (20)Money (7,2)IntegerDate消费类型*消费类型Variable characters (20)消费类型#o*ooo条目编号条目名称消费类型单价数量消费时间

4.4物理设计 4.4.1 数据库建立

Access数据库本身就是一个文件,创建一个文件就创建一个数据库,所以不需要再建立数据库。 建立表users

CREATE TABLE users (

u_name VARCHAR(20) PRIMARY KEY, u_password VARCHAR(20) );

建立表class

CREATE TABLE class

(

c_name VARCHAR(20) PRIMARY KEY );

建立表entry

CREATE TABLE entry (

e_no VARCHAR(7) PRIMARY KEY, e_tag VARCHAR(15), e_class VARCHAR(20), e_price MONEY, e_quantity INT, e_date DATE,

e_description TEXT,

FOREIGN KEY (e_class) REFERENCES class(c_name) );

4.4.2 数据库备份和恢复

因为Access数据库本身就是一个数据文件,所以可以直接对这个文件进行备份,如果数据遭到破坏需要恢复,那么将备份文件覆盖到原来的数据文件就可以恢复数据了,非常方便。

用户界面的设计和实现和应用程序编码

5.1用户界面设计

用户界面使用MFC(微软基础类库)进行开发,其中的界面元素主要用的是BCG Control Bar框架,这个框架是BCG Soft公司的界面库产品,后来被微软收购,并在后续发布的VS2008 SP版本中将其嵌入到MFC中作为MFC的一部分。用该框架可以开发出类似于office2007的界面。 登录界面

关键代码

void CLoginDlg::OnBnClickedBnLogin() {

// TODO: 在此添加控件通知处理程序代码 UpdateData(); CString strSQL;

strSQL = _T(\); CAdoRecordSet rs;

if (CPayoutManagerApp::OpenRecordSet(rs, strSQL))

}

{ }

if (rs.GetRecordCount() > 0) { } else { }

AfxMessageBox(_T(\用户表为空!\)); CString strUsername; CString strPassword;

rs.GetCollect(_T(\), strUsername); rs.GetCollect(_T(\), strPassword); if (strUsername.Compare(m_strUsername) == 0) { } else { }

AfxMessageBox(_T(\用户名错误!\));

if (strPassword.Compare(m_strPassword) == 0) { } else { }

AfxMessageBox(_T(\密码错误!\)); EndDialog(TRUE);

主界面

面板

////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////

// 添加搜索主面板

bNameValid = strTemp.LoadString(IDS_RIBBON_SEARCH); ASSERT(bNameValid);

CMFCRibbonCategory* pSearchCategory = m_wndRibbonBar.AddCategory(strTemp, IDB_WRITESMALL, // 利用面板工厂创建条目面板

m_pEntryPanel = new CEntryPanel(IDS_RIBBON_ENTRY, managerFactory); // 初始化面板内容

m_pEntryPanel->InitializeContainer(); // 利用面板工厂创建类别面板

m_pClassPanel = new CClassPanel(IDS_RIBBON_CLASS, managerFactory); // 初始化面板内容

m_pClassPanel->InitializeContainer(); // 面板工厂(管理)

CPanelFactory managerFactory(pManagerCategory); // 添加管理主面板

bNameValid = strTemp.LoadString(IDS_RIBBON_MANAGER); ASSERT(bNameValid);

CMFCRibbonCategory* pManagerCategory = m_wndRibbonBar.AddCategory(strTemp, IDB_WRITESMALL,

IDB_WRITELARGE);

IDB_WRITELARGE);

////////////////////////////////////////////////////////////////////////////////////

// 添加统计主面板

bNameValid = strTemp.LoadString(IDS_RIBBON_STAT); ASSERT(bNameValid);

CMFCRibbonCategory* pStatCategory = m_wndRibbonBar.AddCategory(strTemp, IDB_WRITESMALL, // 利用面板工厂创建搜索面板

m_pSearchPanel = new CSearchPanel(IDS_RIBBON_SEARCH, searchFactory); // 初始化面板内容

m_pSearchPanel->InitializeContainer(); // 面板工厂(搜索)

CPanelFactory searchFactory(pSearchCategory);

IDB_WRITELARGE);

// 利用面板工厂创建统计面板

m_pStatPanel = new CStatPanel(IDS_RIBBON_STAT, statFactory); // 初始化面板内容

m_pStatPanel->InitializeContainer(); // 面板工厂(统计)

CPanelFactory statFactory(pStatCategory);

列表视图

void CEntryGrid::OnInitialUpdate() {

CAdoRecordSet rs; CString strSQL;

strSQL = _T(\条目编号, e_tag AS 条目名称, e_class AS 消费类型, e_price AS // TODO: 在此添加专用代码和/或调用基类 // 设定列表样式

DWORD dwStyle = ::GetWindowLong(m_hWnd, GWL_STYLE); dwStyle |= LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL; ::SetWindowLong(m_hWnd, GWL_STYLE, dwStyle); dwStyle = m_listCtrl.GetExtendedStyle();

dwStyle |= LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT; m_listCtrl.SetExtendedStyle(dwStyle); CListView::OnInitialUpdate();

单价, e_quantity AS 数量, e_date AS 购买时间, e_description AS 备注FROM entry\);

}

CPayoutManagerApp::OpenRecordSet(rs, strSQL + _T(\), adCmdText); long colCount = rs.GetFieldsCount(); // 插入列名

for (long i = 0; i < colCount; i++) { }

ListData(&rs);

CString columnName = rs.GetFieldName(i);

m_listCtrl.InsertColumn((int)i, columnName, 0, 100);

void CEntryGrid::ListData(CAdoRecordSet* pRs) {

BOOL bCreated(FALSE); if (pRs == NULL) {

bCreated = TRUE;

pRs = new CAdoRecordSet(); CString strSQL;

strSQL = _T(\条目编号, e_tag AS 条目名称, e_class AS 消费类型, e_price

AS 单价, e_quantity AS 数量, e_date AS 购买时间, e_description AS 备注FROM entry\);

for (long i = 0; i < rowCount; i++) {

CString item; long j = 0; // 插入条目编号

pRs->GetCollect(j, item); m_listCtrl.InsertItem(i, item); // 插入内容

for (j = 1; j < colCount; j++) {

if (j == (colCount - 2)) {

COleDateTime dtDate;

pRs->GetCollect(_T(\购买时间\), dtDate); item = dtDate.Format(_T(\));

}

m_listCtrl.DeleteAllItems();

long colCount = pRs->GetFieldsCount(); long rowCount = pRs->GetRecordCount(); m_listCtrl.SetColumnWidth(colCount - 1, 200); pRs->MoveFirst();

CPayoutManagerApp::OpenRecordSet(*pRs, strSQL + _T(\), adCmdText);

}

}

}

} else { }

m_listCtrl.SetItemText(i, j, item);

pRs->GetCollect(j, item);

pRs->MoveNext();

if (bCreated == TRUE) { }

delete pRs;

管理面板

void CEntryPanel::OnClickedBnAdd(void) {

UpdateData();

CEntry entry(m_strNo, m_strTag, m_strClass, m_strPrice, m_strQuantity, m_strDate,

m_strDescription); }

void CEntryPanel::OnClickedBnMod(void) {

UpdateData(); CEntry entry; MakeEntry(entry); if (entry.Add()) { } else { }

AfxMessageBox(_T(\添加失败\)); AfxMessageBox(_T(\添加成功\)); NotifyOthersToUpdate();

价格非数字

数量非数字

类别重复

6.1.2正确数据

添加类别

添加消费

结果图

搜索测试(精确搜索)

搜索测试(模糊搜索)

统计测试

安装和使用说明

7.1 安装

该程序为绿色程序,不需要安装,附带Access数据库文件放在同级目录下,就可以直接运行。

7.2 使用说明

打开程序后出现登陆提示框,输入用户名:admin,密码:admin,之后进入主界面,如下图所示

编辑类别

在类别编辑框里输入类别,点击“添加类别”,就完成添加类别的操作,相应的,你可以在这个面板中删除一个选中的类别。

编辑消费

在条目区域填写消费的信息,然后点击添加条目,就完成添加消费的操作,也可以在下列列表中选择一个条目进行编辑

搜索

点击顶部的选项卡切换到搜索面板,选择进行搜索的字段,然后输入搜索关键字,再点击“精确搜索”就可以进行精确搜索了,如果需要进行模糊搜索,点击搜索按钮的下拉箭头,切换到模糊搜索模式,点击搜索就可以进行模糊搜索了。

统计

点击顶部的选项卡切换到统计面板,选择需要统计的时间段,然后点击统计,就会将时间段内的消费统计出来,这时候用户可以点击下面的“导出统计表”,将会弹出保存对话框,用户选定路径后,将统计结果导出。

使用技巧

用户可以搜索指定的消费出来(参考搜索),然后切换到统计面板,点击“导出统计表”也可以将搜索的结果导出。

修改用户资料

点击主菜单按钮,选择修改用户资料,进入修改用户资料界面,输入旧用户的资料和新用户资料,验证成功后就修改了用户信息。

参考文献

1、王珊 主编 数据库系统概论(第四版) 高等教育出版社 2、李代平 主编 软件工程(第二版) 冶金工业出版社 3、姚领田 编著 精通MFC程序设计 人民邮电出版社

编辑类别

在类别编辑框里输入类别,点击“添加类别”,就完成添加类别的操作,相应的,你可以在这个面板中删除一个选中的类别。

编辑消费

在条目区域填写消费的信息,然后点击添加条目,就完成添加消费的操作,也可以在下列列表中选择一个条目进行编辑

搜索

点击顶部的选项卡切换到搜索面板,选择进行搜索的字段,然后输入搜索关键字,再点击“精确搜索”就可以进行精确搜索了,如果需要进行模糊搜索,点击搜索按钮的下拉箭头,切换到模糊搜索模式,点击搜索就可以进行模糊搜索了。

统计

点击顶部的选项卡切换到统计面板,选择需要统计的时间段,然后点击统计,就会将时间段内的消费统计出来,这时候用户可以点击下面的“导出统计表”,将会弹出保存对话框,用户选定路径后,将统计结果导出。

使用技巧

用户可以搜索指定的消费出来(参考搜索),然后切换到统计面板,点击“导出统计表”也可以将搜索的结果导出。

修改用户资料

点击主菜单按钮,选择修改用户资料,进入修改用户资料界面,输入旧用户的资料和新用户资料,验证成功后就修改了用户信息。

参考文献

1、王珊 主编 数据库系统概论(第四版) 高等教育出版社 2、李代平 主编 软件工程(第二版) 冶金工业出版社 3、姚领田 编著 精通MFC程序设计 人民邮电出版社

本文来源:https://www.bwwdw.com/article/ygi3.html

Top