《数据库系统原理》课程设计——平面设计公司业务管理系统
更新时间:2023-09-03 06:21:01 阅读量: 教育文库 文档下载
数据库系统设计
《数据库系统原理》课程设计报告
-----平面设计公司业务管理系统
姓 名:
学 号:
指导教师:
起始时间:
截止时间:
数据库系统设计
目录
概述 ................................................................................................................................................... 2 第一章 需求分析 ........................................................................................................................... 3 §1.1信息要求 ...................................................................................................................................... 3 第二章 结构设计 ........................................................................................................................... 4 §2.1概念结构设计 .............................................................................................................................. 4 §2.2逻辑结构设计 .............................................................................................................................. 6 第三章 主要模块设计及代码 ........................................................................................................ 7 §3.1数据库连接模块 .......................................................................................................................... 7 §3.2认证登录模块 .............................................................................................................................. 9 §3.3查询显示模块 .............................................................................................................................. 9 §3.4添加,修改,删除模块 ............................................................................................................ 12 第四章 总结 ................................................................................................................................. 14 第五章 参考文献 ......................................................................................................................... 15
数据库系统设计
概述
编写目的
本报告作为软件使用的重要指南,可以方便用户使用。同时,也是一份重要的技术文档,方便开发人员继续完善各项功能,更新软件。为了更好地管理平面设计公司的各项工作,撰写此文档。
项目背景
订单管理是每所公司或工厂必须面对的工作,大量的订单管理给企业带来了沉重的负担。传统人手方式管理文件档案,已经无法满足当前业务量的正常需求。这种管理方式存在许多缺点:效率低,保密性差,另外随着进货数量的增加,这必然增加了订单管理者的工作量和劳动强度。同时,将产生大量的文件和数据,这给订单信息的查找,更新和维护都带来了不少困难。管理机制已经不能适应时代发展的需求,其管理方法将浪费人力物力。随着科技的不断提高,计算机科学与技术日渐成熟,这种传统的手工管理模式必然被以计算机为物质基础的信息管理方式所取代。
软件定义
图形化界面:人性化的界面,方便了员工的使用,对操作员技术要求不高。
数据存取:系统地保存数据,可以加快数据处理,提高工作量。可以同时进行多人对数据的操作,保证数据存取不出错。
开发环境
在Windows XP SP3 操作系统下,使用Visual C++进行开发。数据存取使用SQL Server 2000平台。
数据库系统设计
第一章 需求分析
§1.1信息要求
通过软件,可以查看,添加,保存,修改,删除各种业务信息。如登录账户的信息,员工的信息,客户的信息,订单信息,送货单信息,历史单信息。
§1.2处理要求
软件要灵活实现各种管理功能间的切换,减少麻烦的操作。对于数据的修改,保证不会出错,确保数据的正确性。在必要的地方,给予一定的提示,以防止误操作导致的数据异常。
数据库系统设计
图 1.1 功能模块图
§1.3安全性与完整性要求
登录安全:采用用户名,密码方式登录系统。不同职工具有的使用权限不同,管理员拥有最高权限。其他员工根据职务需要规定所需权限。
完整性要求:对于一些必须的信息,不能留空值。如编号,名称,日期等信息
第二章 结构设计
§2.1概念结构设计
各实体E-R图:
图 2.2
数据库系统设计
图 2.4
图 2.5
图 2.6
数据库系统设计
§2.2逻辑结构设计
图2.7 实体联系图
图2.7 数据关系表
数据库系统设计
第三章 主要模块设计及代码
§3.1数据库连接模块
为连接模块独自建立一个类,方便每次访问数据库时可以调用。类命名为ADOConn。采用ADO技术实现程序与数据库的连接。
用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用#import引用它既可。直接在Stdafx.h文件中加入下面语句来实现:
#import "c:\programfiles\commonfiles\system\ado\msado15.dll" no_namespace
rename ("EOF", "adoEOF") //实际上两行代码是在同一行显示,由于排版原因,分行显示//
以下为ADOConn类里重要成员函数的代码: //////////////////////////////////////////////////////////////////////////// //函数名称:ADOConn //功能:初始化COM环境
///////////////////////////////////////////////////////////////////////////// void C ADOConn::ADOConn() { ::CoInitialize(NULL); try { pConn.CreateInstance("ADODB.Connection"); // 创建Connection对象 //设置字符连接字符串,必须是BSTR型或者_bstr_t类型 _bstr_t strConnect="Provider=SQLOLEDB.1;Integrated Security=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.IsEmpty()); //判断是否为空集 try { pRs.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(); CoUninitialize(); } }
数据库系统设计
§3.2认证登录模块
void CGraphicDsnDlg::OnOK() //确定按钮事件 {
// TODO: Add extra validation here UpdateData(); 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 (n>0) {
CDialog::OnOK(); //登陆成功
dlg.DoModal(); } else {
::AfxMessageBox("用户名或密码不正确!"); //登陆失败 return; } }
§3.3查询显示模块
BOOL CTickets::OnInitDialog() //订单管理类初始化函数 { CDialog::OnInitDialog(); // TODO: Add extra initialization here
数据库系统设计
cn.ADOConn(); //连接数据库 Display();
//设置列表框控件的扩展风格 //整行选择/有表格线/表头/单击激活 DWORD
dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_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_ListDoc.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_ListDoc.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 FALSE return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
void CTicketsMngDlg::Show() //输出单据信息到列表控件框 { CString DocName; int index=m_oddno.GetCurSel(); if (index==CB_ERR) { AfxMessageBox(_T("出错!")); return; } m_oddno.GetLBText(index,coursename);
数据库系统设计
CString s="select * 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.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("DocName"); //取数据 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("CustomerName"); OutputMac=a.pRs->GetCollect("OutputMac"); DocName.ChangeType(VT_BSTR); //改变类型 Length.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); OutputMac.ChangeType(VT_BSTR);
DocName=DocName.bstrVal; //调用bstrval Length=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::OnItemmanButton() { // TODO: Add your control notification handler code here UpdateData(TRUE); if (m_Adodc.GetRecordset().GetEof()) { MessageBox("请选择要修改的订单"); return; } // 设置ListItemManDlg对话框中的变量 CListItemManDlg dlg; dlg.cRegId = m_Datagrid.GetItem(0); // 打开ListItemManDlg对话框 if (dlg.DoModal() == IDOK) RefreshData(); else RefreshData();
数据库系统设计
//删除订单
void CTicketsManDlg::OnDelButton() { // TODO: Add your control notification handler code here UpdateData(TRUE); if (m_Adodc.GetRecordset().GetEof()) { MessageBox("请选择要删除的订单!"); return; } if (MessageBox("是否删除当前记录?","请确认", MB_YESNO + MB_ICONQUESTION) == IDYES) { CTickets reg; reg.SqlDelete(m_Datagrid.GetItem(0)); RefreshData(); } }
数据库系统设计
第四章 总结
通过本次设计,初步掌握了通过Visual C++ 中的MFC功能实现程序的开发。Visual C++提供了大量的控件功能,方便初学者设计程序。阅读了大量的C++编程的相关书籍,对这次设计起到了很大的帮助。尤其是C++语言不熟悉的地方,通过阅读,加深了理解。对于面向对象编程有了更深切的理解。模块化的代码,增加了程序的可移植性。
熟悉了程序通过API来与SQL数据库连接的代码。多种数据库连接技术各有各的优缺点。对于初学者,ADO技术相对简单一点,因为查询语句是可以直接通过函数使用的。这对于熟悉数据库操作的人是很方便的。
在本次试验中,也遇到了各种各样的问题:
由于MFC编程是通过控件的方法生成类代码,所以一个类添加完后,不能继续对其重命名,相关的变量,函数名的改变,将很容易使程序出错。导致编译无法通过,排解问题比较困难。
所以,无论是对数据库的设计,还是程序的设计,都需要先做全局考虑以减少不必要的出错。
在这一点看了,需求分析就显得很重要。它直接明确了设计的目标,要求,使得设计进度大大加快。
由于个人经验跟技术的不足,在开发的过程中遇到困难是很正常的。鉴于此原因,必须要对某些问题进行讨论,或请教别人。有时,请教别人的效率很高的,如果自己苦苦地看书,也不一定能完全解决问题。要勇于提问,积极交流,才能做出好的程序。
数据库系统设计
第五章 参考文献
《程序设计基础—C++》
《数据库系统概论》
《Visual C++ 权威剖析》
《Visual C++ 数据库通用模块》
《Visual C++ SQLServer应用实例》
正在阅读:
《数据库系统原理》课程设计——平面设计公司业务管理系统09-03
关于现场桩基施工情况的汇报04-17
烟花作文700字06-16
世界が终わるまでは(直到世界尽头)平假音 罗马音 中文歌词01-29
开展幼儿园粮食日活动总结【多篇】07-30
地铁题库01-22
义工活动新闻稿11-10
2016肖秀荣四套卷分析题精排打印版09-25
我国二氧化碳排放的主要特点及减排路径05-10
开展世界无烟日幼儿园活动总结2022年04-04
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 设计公司
- 管理系统
- 平面
- 原理
- 课程
- 数据库
- 业务
- 设计
- 系统
- 军事通信装备学与通信保障能力
- 什么是声母?韵母?什么是整体认读音节?
- 海底捞火锅组织行为分析
- 凯氏定氮仪在测定饲料粗蛋白的注意细节和操作步骤
- 爱国情中国梦策划书
- 适合大学生社团活动的小游戏和小惩罚
- 教师县管校聘改革工作总结.
- 浙江理工大学2015年《952工程流体力学A》考研专业课真题试卷
- 专题03 老人与海(测)-2016-2017学年高一语文同步精品课堂(基础版)(必修3)(原卷版)
- 中国传统文化与幼儿教育
- 部编人教版五年级语文上册第五单元 交流平台.初试身手.习作例文(教案)
- 空压机调试流程
- 食品中硼元素测定方法研究
- 第四讲 古希腊神话与“荷马史诗”
- 大唐集团财务管理转型下财务共享中心和司库管理模式的探讨
- 学前儿童发展心理学填空题库
- 数学期中考试总结500字
- 基于Cortex—m3为内核的开发板设计与制作
- 环境监察执法考试题库
- 史上最详细微信公众后台数据分析