论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > VC >

B(VC)Vc物资毕业论文

第三章       数据库结构的实现 copyright paper51.com

Access2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。经前面的系统需求分析和概念结构设计以后,得到数据库逻辑结构。现在就可以在access 2000,实现上面设计的数据库逻辑结构,然后转化为access97.下面给出创建这些表格的清单。

copyright paper51.com

3.1 创建系统用户表格 user_info copyright paper51.com

 用户名称 用户密码 内容来自www.paper51.com

3.2 创建物资基本信息表格 material

copyright paper51.com

 物资编号 物资名称 物资规格 类别 计量单位 paper51.com

3.3创建入库物资信息表格 msave

内容来自论文无忧网 www.paper51.com

  入库编号 入库物资编号物资名称 规格型号 种类 单位 数量 单价 金额 入库时间 经办人 保管人 仓库 备注

copyright paper51.com

3.4 创建出库物资信息表格 muse

内容来自论文无忧网 www.paper51.com

 出库编号 出库物资编号 物资名称 规格型号 种类 单位 数量 单价 金额 入库时间 领用人 经办人 仓库 备注 内容来自www.paper51.com

3.5创建物资余额信息表格 msurplus

paper51.com

物资编号 物资名称 规格型号 类别 计量单位 数量 金额 仓库 备注 http://www.paper51.com

第四章 物资管理信息系统主窗体的创建

内容来自论文无忧网 www.paper51.com

    microsoft visual c++6.0提供了良好的集成开发环境,在这一环境下用户可以输入自己的程序,调试并运行.为了方便用户快速开发程序,  visual c++不仅编译代码,而且产生代码.可以在几分钟之内就可以生成一个windows应用程序,所要做的只是告诉appwizard生成一个具有模板代码的"起始应用程序".appwizard是一个非常有效的辅助开发工具,能生成许多种应用程序,但对于大多数的人来说,想要的是可执行程序.appwizard不仅能够生成可执行程序,而且它还生成了每个程序所必要的模板代码-类,对象和函数.(1)appwizard提供了三种可选择的应用程序类型,并为每一种类型生成不同的代码和类.三种可选择的程序类型如下:1,单文档界面应用程序逻辑  这种应用程序一次只能打开一个文档:当选择file菜单的open或new时,当前打开的文件在新文件打开或建立前被关闭.在windows中notepad应用程序就是这种文档的典型代表.2 多文档界应用程序  多文档应用程序一次可以打开多个文档(通常是多个文件),在菜单栏上有Windows菜单并且在File菜单上有close先项.同时打开的多个文档可以通过close命令进行有选择地关闭.在Windows中如果希望一个文档有多个视图,则必须建立多文档视图.Windows中的Word或Excel都是多文档的例子.3基于对话框的应用程序 在这一种应用程序中,它没有文档也没有菜单,整个程序看起来就是一个对话框.Windows的磁盘扫描应用程序就是一个基于对话框的应用程序例子.(2)AppWizard允许用户选择是否需要文档/视图结构支持.如果需要AppWizard就在应用程序中自动生成了基于CDocument类的文档/视图结构,否则生成没有文档/视图结构的应用程序(在这种情况下,多一个磁盘文件打开一个文档视图时将不包含MFC支持). (3)AppWizard生成可执行应用程序允许用户选择是否支持数据库(在后面的任务中将详细介绍对数据库的支持).有关数据库支持的选项一共有四个. 4 None 不是编写数据库应用程序. 5 Header files only 不从CForm View 派生自己的视图或有一个Record菜单. 6 Database iew without file support 从CFormView 派生自己的视图并有一个Record菜单,但不需要对文档进行序列化,从而可以借助CRecordset类更新数据库记录.7 Database iew with file support 从CFormView 派生自己的视图并有一个Record菜单,同时又需要对文档进行序列化.(4)AppWizard提供了确定应用程序界面外观的选项.影响界面外观的选项有:8 Docking Toolbar AppWizard为用户创建了工具栏,用户在以后可以利用Resource View 对它进行编辑.如:删除不要的按钮,增加新的按钮.9Initial status bar AppWizard生成了初始状态栏以显示菜单提示和其它消息,用户可以在以后对状态栏进行编程以显示自己所需要显示的信息.用户要以在状态栏上增加指示器或其它组件.                                                                                                                                                                                                                                                        下面开始使用visual c++6.0来编写数据库系统的客户端程序。 http://www.paper51.com

4.1创建工程项目-material_mis paper51.com

      启动visual c++6.0后,从“file”菜单中选“new”命令,然后,单击“new”对话框中的“projects”选项卡,选择工程模板中的“mfc appwizard(exe)”选项,并在“project_name”中输入工程的名称:material_mis,在location中选择保存这个工程的位置:c:\vc,其他使用系统提供的默认选项,单击“OK”按钮,就会进入mfc appwizard,这个向导一共有6步,step1对话框中选中“single document”选项。单击“next”按钮,进入step 2 of 6对话框,这一步要选择需要的数据库,因为涉及到数据库的使用,所以在这里选中“header files only”选项,意思是在这个实例中只使用头文件种类所包含的数据库。单击“next”按钮,进入step 3 of 6对话框,这里保持系统给定的默认值。单击“next”按钮,进入 step 4 of 6对话框,在这里选中“3dcontrols”和“initial status bar”选项,其他选项都不需要选中。单击“next”按钮进入下一步,这里保持系统给定的默认值. 单击“next”按钮进入下一步,进入mfc向导的最后一步,在该对话框中,保证base class的下拉列表中选择的是cview,其他的保持系统提供的默认值。单击“finish”按钮,会出现一个“new project information”对话框,确认信息无误后,单击“ok”按钮,完成创建material_mis工程。

内容来自www.paper51.com

4.2创建主窗体菜单

http://www.paper51.com

完成上面的工作后,在“workspace”中选择“recourceview”命令,然后双击menu文件夹,再双击“idr_mainframe”项目,单击右边窗口中的“文件”菜单,双击“文件”或者敲enter键,就会出现“menuitem properties”对话框,在这个对话框中更改菜单项的内容,更改后的内容如图2示,第一级菜单的设置都和图3中的设置方法相同,二级菜单的设置方法如图3. copyright paper51.com

                                         图2

http://www.paper51.com

                                         图3

paper51.com

使用上面所讲述的设置方法,最终创建出如表4的菜单结构。

内容来自论文无忧网 www.paper51.com

表4

paper51.com

                             菜单结构 内容来自www.paper51.com

菜单名称                                 id

http://www.paper51.com

系统 内容来自论文无忧网 www.paper51.com

修改密码                                    ID_MAINMENU_CHANGEPWD paper51.com

添加用户                                    ID_MAINMENU_APPENDACCOUNT 内容来自www.paper51.com

退出系统                                    ID_APP_EXIT 内容来自www.paper51.com

物资基本信息管理                                

http://www.paper51.com

添加物资基本信息管理                        ID_MENU_ADDBASICINFO

copyright paper51.com

修改物资基本信息管理                        ID_MENU_ALTERBASICINFO

paper51.com

删除物资基本信息管理                        ID_MENU_DELBASICINFO copyright paper51.com

查询物资基本信息管理                        ID_MENU_SEARCHBASICINFO

内容来自论文无忧网 www.paper51.com

物资入库信息管理 http://www.paper51.com

添加物资入库信息                            ID_MENU_ADDININFO

paper51.com

修改物资入库信息                            ID_MENU_ALTERININFO http://www.paper51.com

删除物资入库信息                            ID_MENU_DELININFO 内容来自论文无忧网 www.paper51.com

查询物资入库信息                            ID_MENU_SEARCHININFO

copyright paper51.com

物资出库信息管理

内容来自论文无忧网 www.paper51.com

添加物资出库信息                            ID_MENU_ADDOUTINFO     copyright paper51.com

修改物资出库信息                            ID_MENU_ALTEROUTINFO

内容来自www.paper51.com

删除物资出库信息                            ID_MENU_DELOUTINFO

内容来自论文无忧网 www.paper51.com

查询物资出库信息                            ID_MENU_SEARCHOUTINFO

paper51.com

物资余额信息管理 内容来自论文无忧网 www.paper51.com

查询物资余额信息                              ID_MENU_SEARCHSURPLUSINFO

内容来自www.paper51.com

帮助 paper51.com

关于

http://www.paper51.com

4.3创建公用模块 内容来自论文无忧网 www.paper51.com

在这个系统中,频繁地使用到了对数据库的访问,修改等操作,所以把针对数据库的一些公共操作集中起来,可以使代码更加规范和容易维护。在classview中,利用鼠标右键单击“cmaterial_misapp”项目,选择“add member variable”选项,然后依次添加这个工程中要使用到的变量: http://www.paper51.com

public:

内容来自www.paper51.com

CString m_sCurrentUser; copyright paper51.com

int m_iLoginCount; 内容来自论文无忧网 www.paper51.com

_RecordsetPtr m_pADOSet;

内容来自论文无忧网 www.paper51.com

private: http://www.paper51.com

      _ConnectionPtr ADOConn;                  //定义ado数据库连接对象指针

copyright paper51.com

选择 add member function添加函数

内容来自论文无忧网 www.paper51.com

    bool ADOExecute(_RecordsetPtr&ADOSet,_variant_&strSQL); 内容来自论文无忧网 www.paper51.com

最后手工添加一个外部变量的声明:

http://www.paper51.com

extern Cmaterial_MISApp theApp; copyright paper51.com

在visual  c++中进行数据库操作一定要引进ado类,所在把下面这段代码添加到这个工程中的stdafx.h中,才能对记录集进行操作。 内容来自论文无忧网 www.paper51.com

#import "C:\Program files\commonfiles\System\ado\msado15.dll" no_namespace \

copyright paper51.com

rename("EOF","EndOfFile") \ paper51.com

rename("LockTypeEnum","newLockTypeEnum")\

http://www.paper51.com

rename("DataTypeEnum","newDataTypeEnum")\ 内容来自www.paper51.com

rename("FieldAttributeEnum","newFieldAttributeEnum")\

内容来自www.paper51.com

rename("EditModeEnum","newEditModeEnum")\ copyright paper51.com

rename("RecordStatusEnum","newRecordStatusEnum")\

paper51.com

rename("ParameterDirectionEnum","newParameterDirectionEnum")在cmaterial_misapp类的initistance()函数中添加如下代码: 内容来自论文无忧网 www.paper51.com

  m_iLoginCount= 0;

内容来自www.paper51.com

  // 创建ADO连接对象 copyright paper51.com

  if(FAILED(::CoInitialize(NULL)) ) 内容来自论文无忧网 www.paper51.com

  {

paper51.com

      AfxMessageBox("ADO Initfailed");

paper51.com

      returnfalse; copyright paper51.com

  }

内容来自论文无忧网 www.paper51.com

  try http://www.paper51.com

  { copyright paper51.com

  {

http://www.paper51.com

      ADOConn.CreateInstance(__uuidof(Connection)); paper51.com

  ADOConn->Open(_bstr_t("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+GetCurDir()+"ylz.mdb"),_bstr_t(""),_bstr_t(""),adModeUnknown); 内容来自www.paper51.com

  }

内容来自论文无忧网 www.paper51.com

  // 捕捉例外 paper51.com

  catch(_com_error&e)

paper51.com

  {

paper51.com

      CStringerr; copyright paper51.com

      err.Format("%s",(char*)(e.Description()) );

paper51.com

      AfxMessageBox(err);

copyright paper51.com

  }

内容来自www.paper51.com

  catch(...)

paper51.com

  { copyright paper51.com

      AfxMessageBox("UnknownError..."); 内容来自www.paper51.com

  }

copyright paper51.com

  // 初始化ADO记录集 copyright paper51.com

添加以上代码后,就完成了打开数据库的工作,同时添加下面的代码,来设置窗口的名称: paper51.com

m_pMainWnd->SetWindowText(_T("物资管理信息系统")); copyright paper51.com

在函数中bool ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)中添加如下代码: http://www.paper51.com

bool CMaterial_MISApp::ADOExecute(_RecordsetPtr&ADOSet, _variant_t &strSQL)

copyright paper51.com

{ 内容来自www.paper51.com

  if (ADOSet->State == adStateOpen)  ADOSet->Close(); paper51.com

  try http://www.paper51.com

  {

内容来自www.paper51.com

          ADOSet->Open(strSQL,ADOConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);

内容来自论文无忧网 www.paper51.com

      return true;

内容来自论文无忧网 www.paper51.com

  } paper51.com

  catch(_com_error&e) copyright paper51.com

  { copyright paper51.com

       CStringerr; copyright paper51.com

     err.Format("ADO Error:%s",(char*)e.Description()); paper51.com

     AfxMessageBox(err);

copyright paper51.com

     return false;

copyright paper51.com

  }

内容来自论文无忧网 www.paper51.com

}

内容来自论文无忧网 www.paper51.com

最后添加关闭数据库连接的函数。选择ADD Virtual Function添加一个虚函数,重载系统提供的ExitInstance()函数,填写代码如下: copyright paper51.com

int CMaterial_MISApp::ExitInstance() 内容来自www.paper51.com

{

http://www.paper51.com

  // TODO: Addyour specialized code here and/or call the base class 内容来自www.paper51.com

  //释放ADO连接对象

paper51.com

  if(adStateOpen == ADOConn->State ) ADOConn->Close();

copyright paper51.com

  ADOConn.Release();

http://www.paper51.com

   

内容来自www.paper51.com

  // 释放ADO记录集 内容来自论文无忧网 www.paper51.com

  if(adStateOpen==m_pADOSet->State)   m_pADOSet->Close(); copyright paper51.com

  m_pADOSet.Release(); 内容来自www.paper51.com

  returnCWinApp::ExitInstance();

内容来自论文无忧网 www.paper51.com

} copyright paper51.com

通过以上的编写,完成了对数据库的基本操作,为下面的工作提供了最基本的功能。

内容来自论文无忧网 www.paper51.com

  copyright paper51.com

------分隔线----------------------------
联系方式