oracle数据库+VC汽配销售管理系统课程设计

数据库编程课程设计

题目:汽配销售管理系统

小组成员:田晴201314070203

宋平心201314070226

刘子仪201314070218

章倩201512070151

系别:软件与通信工程学院

专业、班级:计算机科学与技术1班

年级:2013级

指导老师:陆汝华

设计时间:2016年5月

小组成员分工表:

姓名分工情况完成情况号

1 田晴总体设计、系统登录模块设计、日常业务处理模块设计正常完成

2 宋平心文档设计、需求分析、基础信息查询模块设计正常完成

3 刘子仪数据库实现+数据添加、公共模块设计、调试与测试正常完成

4 章倩数据库实现+连接、主窗体设计、商品信息模块设计正常完成

目录

1需求分析 (1)

1.1系统目标 (1)

1.2 系统处理范围 (1)

2系统设计 (2)

2.1系统功能结构 (2)

2.2系统业务流程图 (2)

2.3系统预览 (3)

3数据库设计 (4)

3.1数据库概要说明 (4)

3.2数据库逻辑设计 (4)

4公共模块设计 (5)

4.1数据库操作类RxADO的设计 (5)

4.1.1功能分析 (5)

4.1.2 开发过程 (6)

4.2功能分析 (7)

4.2.1开发过程 (7)

4.2.2 功能分析 (8)

4.2.3 开发过程 (8)

5主窗体设计 (9)

5.1主窗体模块概述 (9)

5.2创建工程 (10)

5.4对话框设计 (11)

6系统登录模块设计 (12)

6.1系统登录模块概述 (12)

6.2代码设计 (14)

7基础信息查询模块设计 (14)

7.1基础信息查询模块概述 (14)

7.2对话框设计 (15)

8商品信息模块设计 (16)

8.1商品信息模块概述 (16)

8.2窗体设计 (17)

8.3代码设计 (18)

9日常业务处理模块设计 (19)

9.1日常业务处理模块概述 (19)

9.2窗体设计 (20)

9.3代码设计 (21)

10开发常见问题与解决 (22)

10.1用户界面与RxGrid类的连接与使用方法 (22)

10.2其它处理 (23)

11调试与测试 (24)

11.1调试 (24)

11.2测试 (26)

12总结 (28)

1需求分析

湘南科技有限公司开发的汽配管理系统是一套对汽车配件进货、销售、库存、退货、付款和收款进行全面管理的系统。该系统通过对配件经营中所产生的数据进行采集、分析、整理,以及时准确的数据结果反映给经营者,实现了经营管理的计划性。

该系统集配件管理信息的采集、存储、统计等各种处理为一体,各种操作都可以通过菜单进行,部分常用功能还提供了快捷工具条。操作快捷、方便,性能高效、强大;使用易懂、易会。

根据上面系统功能描述,可以定义如下需求分析:

1.1系统目标

使用计算机帮助汽配销售人员快速、准确地完成订单处理、配件销售、库存反馈等日常业务。

1.2 系统处理范围

系统的处理范围包括:日常业务、库存管理、查询统计、基础信息、系统管理。

2系统设计

2.1系统功能结构

图2-1 系统功能结构2.2系统业务流程图

图2-2 管理系统业务流程

2.3系统预览

图2-3 汽配管理系统主界面

图2-4 进货管理

3数据库设计

3.1数据库概要说明

在汽配管理系统中,采用的是Oracle 11g数据库,用来存储商品入库信息、商品销售信息、商品库存信息、操作员信息等。这里将数据库命名为ORCL_SK,共包含20张数据表和15个视图,均位于SK 方案下,如下图所示。

图3-1 数据库结构

3.2数据库逻辑设计

操作员信息表

操作员信息表用于存储登录用户信息,例如,用户名和密码等。操作员信息表结构如下图所示。

图3-2 操作员信息表

商品信息表

商品信息表用于存储商品相关信息,商品信息表的结构如下图所示。

图3-3 商品信息表

4公共模块设计

4.1数据库操作类RxADO的设计

4.1.1功能分析

RxADO类主要实现以下功能:

能够实现连接数据库

获取记录集记录数量

自动生成编号

获取数据库错误

根据数据表名称和查询字段返回指定的字段值等功能

4.1.2 开发过程

下面分析RxADO类的程序代码。

RxADO类数据成员和成员函数声明如下:

class RxADO

{

public:

void Close();

_ConnectionPtr cnn; //定义ADO连接对象

_ConnectionPtr GetConnection(); //获取ADO连接对象

RxRecordset record; //定义记录集对象

//自动生成编号

CString AutoNumber(CString sTable, CString sFieldName, CString sCode, int nStyle=1);

int GetRecordCount(_RecordsetPtr pRst); //获取记录集数量

void GetADOErrors(_com_error eErrors) ;//获取错误信息

CString FieldToOtherField(CString cDataBaseName, CString cFieldName, CString cValue,

CString cReturnField, int nStale); //返回指定字段的查询结果

bool SetConnection(CString LinkString); //连接数据库

RxADO(); //构造函数

virtual ~RxADO(); //析构函数

};

按钮是程序开发中最常使用的控件之一,它的好坏,可直接影响界面的美观。笔者考虑至此,所以制作了CBaseButton 按钮类,用它声明的对象实例,可以有非常漂亮的外观。如图所示。 没有按下状态的

CBaseButton 类对象 处于按下状态的CBaseButton 类对象 选择用户名及密码

图4-1 CBaseButton 类对象实例

4.2功能分析

按钮可以有几种状态,包括鼠标按下、鼠标没按下、获得焦点、失效等,当按钮处于不同的状态时做不同的动作,便可以实现特色按钮。例如,在本程序中,当按钮没被按下时,显示图片IDC_BUT_NUMAL ;当鼠标被按下时,显示IDC_BUT_DOWN ;当按钮失效时,显示IDC_BUT_ENABLED ;如果按钮获得焦点,就在按钮上绘制一个红色的虚线矩形。原理就这么简单!

4.2.1开发过程

CButton 类提供了重新绘制按钮的虚函数DrawItem(),通过

它,读者可以将按钮绘制成任意形状,DrawItem函数的参数是LPDRAWITEMSTRUCT类型,这个指针包含了按钮的相关信息。

根据需要制作按钮类的实际情况,读者需要考虑以下问题:

1.除了默认为按钮指定3张图片外(鼠标按下、鼠标没有按下和按钮失效),还应该提供使用其它图片的接口。

2.按钮不一定是矩形的,可能是其它任何形状。

4.2.2 功能分析

CBaseComboBox类派生于CComboBox,在CComboBox原有功能的基础上,增加下列功能:

1.建立与数据表连接

2.按回车时将焦点移动到下一个控件上

3.如果在列表中添加的是字段名,当选中列表中某项时,m_CurrentFieldType成员变量将返回所选项在数据表中的数据类型

4.2.3 开发过程

CBaseComboBox抽象原型如下:

class CBaseComboBox : public CComboBox

{

public:

CBaseComboBox();

public:

CString m_CurrentFieldType; //记录所选字段类型的变量

void SetRecordset(RxRecordset rs, CString Field="_BASECOMBOBOX_ALL");

virtual ~CBaseComboBox();

private:

RxRecordset rst;

};

5主窗体设计

5.1主窗体模块概述

汽配管理系统主界面由菜单栏、工具栏、客户区和状态栏4部分组成。其中,菜单栏部分列出汽配管理系统的所有功能,它主要起到导航的作用。工具栏部分用于对系统的主要功能进行快速导航。客户区部分由一幅图片填充,用于美化界面。状态栏部分用于显示用户企业的名称、当前登录的操作员等信息。汽配管理系统主界面效果如图所示。

图5-1 汽配管理系统主界面

5.2创建工程

(1)创建一个单文档视图结构的应用程序,工程名称为“qpglxt”。

(2)在应用程序向导步骤6中,选中视图类,修改Class name 为“CMyView”;修改Header file为“MyView.h”;修改Base class 为“CScrollView”;修改implementation file为“MyView.cpp”,如下图所示。

图5-2 修改视图类

(3)在上图中选择文档类,修改Class name为“CMyDoc”;修改Header file为“MyDoc.h”;;修改implementation file为“MyDoc.cpp”,如图所示。

图5-3 修改文档类

(4)单击“Finish”按钮完成工程的创建。

5.4对话框设计

(1)在工作区的类视图窗口中创建一个对话框类CDMain,基类为CDialog。

(2)选中对话框,去除对话框中的按钮,按“回车”键打开对话框属性窗口。

图5-4 对话框通用属性窗口

1.菜单设计

在工作区的资源视图窗口中创建一个菜单资源,资源ID为“IDR_MAIN”,效果如图所示。

图5-5 汽配管理系统菜单

2.代码设计

实现工具栏和状态栏的创建。

6系统登录模块设计

6.1系统登录模块概述

为了防止非法用户进入系统,在汽配管理系统启动时会首先显示一个登录窗口。让用户输出用户名和密码,只有用户名和密码通过验证后才能够进入主窗口。系统登录窗口运行效果如图所示。

图6-1 系统登录窗体

系统登录模块主要涉及“操作员信息表”一张数据表。实现逻辑比较简单。根据用户输出的用户名从“操作员信息表”中查询用户密码,比较用户输入的密码和程序返回的密码是否一致,如果一致则验证成功,进入主窗口,否则验证失败,记录验证失败的次数,如果验证失败次数超过3次,则退出系统。

1.对话框设计

系统登录模块的窗体设计步骤如下:

(1)创建一个对话框类,类名为“CDLOGIN”。

(2)向对话框中添加按钮、组合框、图像和静态文本控件。

(3)设置控件属性如表所示。

Member Variables

ID Properties

Type Member

Type:Icon

IDC_STATIC

Image:IDI_LOG_PEO

Type:Icon

IDC_STATIC

Image:IDI_LOG_LOGIN

ID_LOG_COMNAME Type:Drop List CBaseComboBox m_ComName

Caption:登录(&L)

ID_LOG_BUTLOGIN

CBaseButton m_ButLogin

Owner draw:true

Caption:退出(&E)

ID_LOG_BUTEXIT

CBaseButton m_ButExit

Owner draw:true

6.2代码设计

(1)在对话框的OnInitDialog方法中将“操作员信息表”中的用户名添加到组合框中。

(2)处理“登录”按钮的单击事件,验证用户名和密码。

(3)处理“退出”按钮的单击事件,如果用户单击“退出”按钮,将关闭对话框,进而结束应用程序。

7基础信息查询模块设计

7.1基础信息查询模块概述

在汽配管理系统中,多个基础信息模块(商品信息、往来单位信息、操作员信息等)都需要先查询出相关数据,待用户双击某条记录时,再调用适当的模块进行编辑。基础信息查询就是为这些基础信息模块提供一个查询平台。

基础信息查询的主要功能列举如下:

可以将指定数据库的数据显示在表格中

可以按照不同字段、不同条件进行查询

可以通过双击某条记录打开对应的对话框

支持打印功能

图7-1 商品信息查询模块

7.2对话框设计

(1)向项目中添加一个新Dialog资源,资源ID为IDD_DIAQUERY。在IDD_DIAQUERY对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择General选项卡,单击“Font”按钮,将Dialog资源字体更改为宋体、9号。

(2)从Controls面板上向Dialog资源中添加静态文本、组合框、编辑框、按钮和列表控件,更改资源的属性,并为资源设置相对应的变量,如表7-2所示。

ID Properties

Member Variables

Type Member

IDC_COMFIELD Sort FALSE CBaseComboBo

x

m_ComField

IDC_COMEMBLEM Sort FALSE CBaseComboBo

x

m_ComEmboem

IDC_EDTCONDITION默认CBaseEdit m_EdtCondition

IDC_BUTQUERY Caption 查询CBaseButton m_ButQuery

IDC_BUTPRINT Caption 打印CBaseButton m_ButPrint

IDC_GRID默认RxGrid m_Grid

图7-2 资源设置相对应的变量

(3)代码设计

由于对话框类CBaseQuery是通用的,需要修改构造函数,为数据成员赋值。

8商品信息模块设计

8.1商品信息模块概述

在上面中,介绍了基础信息查询模块,但其只实现了查询功能及调用相关类对象的功能,而这些相关类才是实现信息管理的关键。以商品信息模块为例,商品信息模块可以对商品信息进行添加、修改、删除等工作,而且还支持打印功能。商品信息管理模块运行结果如图所示。

图8-1 品信息管理模块运行结果

1商品信息模块数据表分析

商品信息模块主要实现商品信息的添加、修改和删除操作。该模块主要涉及“商品信息表”和“计量单位表”两张数据表。这两张数据表之间存在关联关系,如下图所示。

图8-2 商品信息模块数据表关系图

8.2窗体设计

(1)向项目中添加一个新Dialog资源,资源ID为IDD_DIA_MERCHANDISE。在IDD_DIA_MERCHANDISE对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择General 选项卡,更改其“Caption”文本框内容为“商品信息管理”;单击“Font”按钮,将Dialog资源字体更改为宋体、9号。

(2)从Controls面板上向Dialog资源中添加编辑框、静态文本、组合框和按钮等控件,更改资源的属性,并为资源设置相对应的变量。

(3)调整控件资源在Dialog中的位置。最终设计结果如图所示。

相关文档
最新文档