平面设计公司业务管理及数据库系统课程.docx

上传人:牧羊曲112 文档编号:1980794 上传时间:2022-12-29 格式:DOCX 页数:17 大小:223.46KB
返回 下载 相关 举报
平面设计公司业务管理及数据库系统课程.docx_第1页
第1页 / 共17页
平面设计公司业务管理及数据库系统课程.docx_第2页
第2页 / 共17页
平面设计公司业务管理及数据库系统课程.docx_第3页
第3页 / 共17页
平面设计公司业务管理及数据库系统课程.docx_第4页
第4页 / 共17页
平面设计公司业务管理及数据库系统课程.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《平面设计公司业务管理及数据库系统课程.docx》由会员分享,可在线阅读,更多相关《平面设计公司业务管理及数据库系统课程.docx(17页珍藏版)》请在三一办公上搜索。

1、16数据库系统原理课程设计报告-平面设计公司业务管理系统姓 名: 学 号: 指导教师: 起始时间: 截止时间: 目录概述2第一章需求分析31.1信息要求3第二章结构设计42.1概念结构设计42.2逻辑结构设计6第三章主要模块设计及代码73.1数据库连接模块73.2认证登录模块93.3查询显示模块93.4添加,修改,删除模块12第四章总结14第五章参考文献15 概述 编写目的 本报告作为软件使用的重要指南,可以方便用户使用。同时,也是一份重要的技术文档,方便开发人员继续完善各项功能,更新软件。为了更好地管理平面设计公司的各项工作,撰写此文档。项目背景订单管理是每所公司或工厂必须面对的工作,大量的

2、订单管理给企业带来了沉重的负担。传统人手方式管理文件档案,已经无法满足当前业务量的正常需求。这种管理方式存在许多缺点:效率低,保密性差,另外随着进货数量的增加,这必然增加了订单管理者的工作量和劳动强度。同时,将产生大量的文件和数据,这给订单信息的查找,更新和维护都带来了不少困难。管理机制已经不能适应时代发展的需求,其管理方法将浪费人力物力。随着科技的不断提高,计算机科学与技术日渐成熟,这种传统的手工管理模式必然被以计算机为物质基础的信息管理方式所取代。软件定义图形化界面:人性化的界面,方便了员工的使用,对操作员技术要求不高。数据存取:系统地保存数据,可以加快数据处理,提高工作量。可以同时进行多

3、人对数据的操作,保证数据存取不出错。开发环境在Windows XP SP3 操作系统下,使用Visual C+进行开发。数据存取使用SQL Server 2000平台。第一章 需求分析1.1信息要求通过软件,可以查看,添加,保存,修改,删除各种业务信息。如登录账户的信息,员工的信息,客户的信息,订单信息,送货单信息,历史单信息。1.2处理要求软件要灵活实现各种管理功能间的切换,减少麻烦的操作。对于数据的修改,保证不会出错,确保数据的正确性。在必要的地方,给予一定的提示,以防止误操作导致的数据异常。图 1.1 功能模块图1.3安全性与完整性要求登录安全:采用用户名,密码方式登录系统。不同职工具有

4、的使用权限不同,管理员拥有最高权限。其他员工根据职务需要规定所需权限。完整性要求:对于一些必须的信息,不能留空值。如编号,名称,日期等信息第二章 结构设计2.1概念结构设计账户ID职工编号登录账户用户名密码员工职工编号员工姓名性别月薪职位各实体E-R图:图2.3稿件稿件编号长度宽度规格色数客户名称输出机型页数单价小计稿件名称图 2.2图2.1历史单送货单编号编号送货单编号订单编号送货日期图 2.4客户客户名称公司地址联系人邮箱传真联系人电话客户编号联系业务员图 2.5订单订单编号业务员客户名设计员下单日期送货员图 2.6账户职工历史单客户订单送货单稿件拥有决定制定联系生成生成2.2逻辑结构设计

5、图2.7 实体联系图图2.7 数据关系表第三章 主要模块设计及代码3.1数据库连接模块为连接模块独自建立一个类,方便每次访问数据库时可以调用。类命名为ADOConn。采用ADO技术实现程序与数据库的连接。用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用#import引用它既可。直接在Stdafx.h文件中加入下面语句来实现: #import c:programfilescommonfilessystemadomsado15.dll

6、 no_namespace rename (EOF, adoEOF) /实际上两行代码是在同一行显示,由于排版原因,分行显示/以下为ADOConn类里重要成员函数的代码:/函数名称:ADOConn/功能:初始化COM环境 /void C ADOConn:ADOConn():CoInitialize(NULL); trypConn.CreateInstance(ADODB.Connection); / 创建Connection对象/设置字符连接字符串,必须是BSTR型或者_bstr_t类型_bstr_t strConnect=Provider=SQLOLEDB.1;Integrated Secu

7、rity=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=DsnCompany;Data Source=BEN-PC;/连接数据库的代码语句pConn-Open(strConnect,adConnectUnspecified);catch(_com_error e) /捕捉异常信息AfxMessageBox(e.ErrorMessage();/名称:OpenRecordset/功能:打开记录集/_RecordsetPtr& CDataSource:OpenRecordset(CString sql)ASSERT(!sql.

8、IsEmpty();/判断是否为空集trypRs.CreateInstance(ADODB.Recordset); / 创建Recordset对象pRs-Open(_bstr_t(sql),_variant_t(pConn,true),adOpenStatic,adLockOptimistic,adCmdText);catch(_com_error e)AfxMessageBox(e.ErrorMessage();return pRs;void CADOConn:FreeData()/释放空间if(pConn)pConn-Close();pRs.Release();pConn.Release(

9、);CoUninitialize();3.2认证登录模块void CGraphicDsnDlg:OnOK() /确定按钮事件/ TODO: Add extra validation hereUpdateData();CMainMngDlg dlg;CString sql=select * from LogUser where UserName=+m_strUsername+ and PassWord=+m_strPassword+ ;a.pRs=a.OpenRecordset(sql);/将记录加入到记录集int n=a.pRs-RecordCount;/计算符合条目if (n0)CDialo

10、g:OnOK();/登陆成功dlg.DoModal();else:AfxMessageBox(用户名或密码不正确!);/登陆失败return;3.3查询显示模块BOOL CTickets:OnInitDialog() /订单管理类初始化函数CDialog:OnInitDialog();/ TODO: Add extra initialization herecn.ADOConn();/连接数据库Display();/设置列表框控件的扩展风格/整行选择/有表格线/表头/单击激活DWORD dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX

11、_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE;/报表风格/单行选择/高亮显示选择行m_List.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS);m_List.SetExtendedStyle(dwExStyle);/设置列表框控件的颜色/m_List.SetTextColor(RGB(200,200,0);/m_List.SetBkColor(RGB(240,247,233);/初始化列表,插入11列m_ListDoc.InsertColumn(0,LVCFMT_CENTER,0,0);m_L

12、istDoc.InsertColumn(1,稿件名称,LVCFMT_CENTER,120,0);m_ListDoc.InsertColumn(2,长度*宽度,LVCFMT_CENTER,90,0);m_ListDoc.InsertColumn(3,规格,LVCFMT_CENTER,65,0);m_ListDoc.InsertColumn(4,色数,LVCFMT_CENTER,65,0);m_ListDoc.InsertColumn(5,规格,LVCFMT_CENTER,65,0);m_ListDoc.InsertColumn(7,输出机型,LVCFMT_CENTER,90,0);m_ListD

13、oc.InsertColumn(8,页数,LVCFMT_CENTER,65,0);m_ListDoc.InsertColumn(9,单价,LVCFMT_CENTER,70,0);m_ListDoc.InsertColumn(10,小计,LVCFMT_CENTER,80,0);m_ListDoc.InsertColumn(11,客户名称,LVCFMT_CENTER,137,0);return TRUE; / return TRUE unless you set the focus to a control/ EXCEPTION: OCX Property Pages should return

14、FALSEreturn TRUE; / return TRUE unless you set the focus to a control/ EXCEPTION: OCX Property Pages should return FALSEvoid CTicketsMngDlg:Show() /输出单据信息到列表控件框CString DocName;int index=m_oddno.GetCurSel();if (index=CB_ERR)AfxMessageBox(_T(出错!);return;m_oddno.GetLBText(index,coursename);CString s=se

15、lect * from Documents where DocName=+DocName+;a.pRs=a.OpenRecordset(s);/把数据加到记录集UpdateData();CString sql=select * from Documents where CustomerName=+CustomerName+;a.pRs=a.OpenRecordset(sql);/打开数据到记录集_variant_t DocNo,DocName,Length,Format,Color,OutputMacMac,Pagess,Price,CustomerName;/定义列表名变量int i=0;a

16、.pRs=a.OpenRecordset(s);int nIndex=m_List.GetItemCount();LV_ITEM lvItem;lvItem.mask=LVIF_TEXT;lvItem.iItem=nIndex;lvItem.iSubItem=0; /第nIndex行lvItem.pszText=(char*)(LPCTSTR)DocName1; /第一列参数for (a.pRs-MoveFirst();!a.pRs-adoEOF;a.pRs-MoveNext()m_List.InsertItem(&lvItem);DocName=a.pRs-GetCollect(DocNam

17、e);/取数据Length=a.pRs-GetCollect(Length);Format=a.pRs-GetCollect(Format);Color=a.pRs-GetCollect(Color);Pages=a.pRs-GetCollect(Pages);Price=a.pRs-GetCollect(Price);Subtotal=a.pRs-GetCollect(Subtotal);Color=a.pRs-GetCollect(Color);design=a.pRs-GetCollect(design);CustomerName=a.pRs-GetCollect(CustomerNam

18、e);OutputMac=a.pRs-GetCollect(OutputMac);DocName.ChangeType(VT_BSTR);/改变类型Length.ChangeType(VT_BSTR);Format.ChangeType(VT_BSTR);Color.ChangeType(VT_BSTR);Pages.ChangeType(VT_BSTR);Price.ChangeType(VT_BSTR);Subtotal.ChangeType(VT_BSTR);Color.ChangeType(VT_BSTR);CustomerName.ChangeType(VT_BSTR);Output

19、Mac.ChangeType(VT_BSTR);DocName=DocName.bstrVal;/调用bstrvalLength=Length.bstrVal;Format=Format.bstrVal;Color=Color.bstrVal;OutputMac1=OutputMac.bstrVal;Pages=Pages.bstrVal;Price=Price.bstrVal;Color=Color.bstrVal;CustomerName=CustomerName.bstrVal;3.4添加,修改,删除模块:/ 打开修改订单void CTicketsManDlg:OnItemmanButt

20、on() / TODO: Add your control notification handler code hereUpdateData(TRUE);if (m_Adodc.GetRecordset().GetEof() MessageBox(请选择要修改的订单);return;/ 设置ListItemManDlg对话框中的变量CListItemManDlg dlg;dlg.cRegId = m_Datagrid.GetItem(0);/ 打开ListItemManDlg对话框if (dlg.DoModal() = IDOK)RefreshData();elseRefreshData();

21、/删除订单void CTicketsManDlg:OnDelButton() / TODO: Add your control notification handler code hereUpdateData(TRUE);if (m_Adodc.GetRecordset().GetEof()MessageBox(请选择要删除的订单!);return;if (MessageBox(是否删除当前记录?,请确认, MB_YESNO + MB_ICONQUESTION) = IDYES)CTickets reg;reg.SqlDelete(m_Datagrid.GetItem(0);RefreshDa

22、ta();第四章 总结通过本次设计,初步掌握了通过Visual C+ 中的MFC功能实现程序的开发。Visual C+提供了大量的控件功能,方便初学者设计程序。阅读了大量的C+编程的相关书籍,对这次设计起到了很大的帮助。尤其是C+语言不熟悉的地方,通过阅读,加深了理解。对于面向对象编程有了更深切的理解。模块化的代码,增加了程序的可移植性。熟悉了程序通过API来与SQL数据库连接的代码。多种数据库连接技术各有各的优缺点。对于初学者,ADO技术相对简单一点,因为查询语句是可以直接通过函数使用的。这对于熟悉数据库操作的人是很方便的。在本次试验中,也遇到了各种各样的问题:由于MFC编程是通过控件的方法

23、生成类代码,所以一个类添加完后,不能继续对其重命名,相关的变量,函数名的改变,将很容易使程序出错。导致编译无法通过,排解问题比较困难。所以,无论是对数据库的设计,还是程序的设计,都需要先做全局考虑以减少不必要的出错。在这一点看了,需求分析就显得很重要。它直接明确了设计的目标,要求,使得设计进度大大加快。由于个人经验跟技术的不足,在开发的过程中遇到困难是很正常的。鉴于此原因,必须要对某些问题进行讨论,或请教别人。有时,请教别人的效率很高的,如果自己苦苦地看书,也不一定能完全解决问题。要勇于提问,积极交流,才能做出好的程序。第五章 参考文献程序设计基础C+数据库系统概论Visual C+ 权威剖析

24、Visual C+ 数据库通用模块VisualC+SQLServer应用实例.(.)成立于2004年,专注于企业管理培训。提供60万企业管理资料下载,详情查看:./map.htm提供5万集管理视频课程下载,详情查看:./zz/提供2万GB高清管理视频课程硬盘拷贝,详情查看:./shop/2万GB高清管理视频课程目录下载:./12000GB.rar高清课程可提供免费体验,如有需要请于我们联系。咨询电话:020-.值班手机:.网站网址:.12.29.202213:0313:03:0422.12.291时3分1时3分4秒12月. 29, 2229 十二月 20221:03:04 下午13:03:042022年12月29日星期四13:03:04

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号