小型自选商场商品管理系统设计报告.doc_第1页
小型自选商场商品管理系统设计报告.doc_第2页
小型自选商场商品管理系统设计报告.doc_第3页
小型自选商场商品管理系统设计报告.doc_第4页
小型自选商场商品管理系统设计报告.doc_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一. 读书笔记 当您怀疑计算机硬件是影响SQL Server运行性能的主要原因时,可以通过SQL Server Performance Monitor监视相应硬件的负载,以便证实您的猜测并找出系统瓶颈。下文将介绍一些常用的分析对象及其参数。Memory: Page Faults / sec如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。Process: Working SetSQL Server的该参数应该非常接近分配给SQL Server的内存值。在SQL Server设定中,如果将set working set size置为0, 则Windows NT会决定SQL Server的工作集的大小。如果将set working set size置为1,则强制工作集大小为SQLServer的分配内存大小。一般情况下,最好不要改变set working set size的缺省值。Process:%Processor Time如果该参数值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。Processor:%Privileged Time如果该参数值和Physical Disk参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。另外设置Tempdb in RAM,减低max async IO,max lazy writer IO等措施都会降低该值。Processor:%User Time表示耗费CPU的数据库操作,如排序,执行aggregate functions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。Physical Disk:Avg.Disk Queue Length该值应不超过磁盘数的1.52倍。要提高性能,可增加磁盘注意:一个Raid Disk实际有多个磁盘。SQLServer:Cache Hit Ratio该值越高越好。如果持续低于80%,应考虑增加内存。 注意该参数值是从SQL Server启动后,就一直累加记数,所以运行经过一段时间后,该值将不能反映系统当前值.二.设计要求小型自选商场商品管理要求:能对小型自选商场的商品进货、销售、库存等环节进行管理。主要有:1)能记录每一笔进货,查询商品的进货记录,并能按月进行统计。2)能记录每一笔售货,查询商品的销售情况,并能进行日盘存、月盘存。3)在记录进货及售货的同时,必须动态刷新库存。4)能查询某个厂商或供应商的信息。5)设计收银台程序,能根据输入的商品编号、数量,显示某顾客所购商品的清单,并显示收付款情况。三.需求分析1. 信息要求:库存商品ID名称型号规格产地单位定价折扣率库存数量最低存量供应商IDVar charVar charVar charVar charVar charFloatFloatIntIntVar char售货售货ID商品ID售价数量金额存根号销售日期Var charVar charFloatIntFloatVar charVar char进货进货ID商品ID进价数量金额进货日期Var charVar charFloatIntFloatVar char供应商供应商ID供应商名称邮编地址电话联系人联系人电话Var char Varchar Var charVar charVar charVar charVar char日盘存商品ID售价数量金额销售日期Var char FloatIntFloatVar char月盘存商品ID售价数量金额Var charFloatIntFloat四.数据库设计1.概念结构设计E-R图2.逻辑结构设计库存(商品ID、名称、型号规格、产地、单位、定价、折扣率、库存数量、最低存量、供应商ID)售货(售货ID、商品ID、售价、数量、金额、存根号、销售日期)进货(进货ID、商品ID、进价、数量、金额、进货日期) 供应商(供应商ID、供应商名称、邮编、地址、电话、联系人、联系人电话)日盘存(售货ID、商品ID、售价、数量、金额,销售日期)月盘存(售货ID、商品ID、售价、数量、金额)五.开发方案的选择工具:MS SQL Server2000, MS Visual Stadio6.0方案:前台收银台程序与后台数据管理集成在一个应用程序中,便于管理员管理.六.前台应用设计前台应用程序的设计采用VC6.0提供的MFC工具.生成的工作界面如下:1.软件主界面2.库存记录查询3.日盘存4.进货记录查询5.进货月统计6.收银台7.售货记录查询8.供应商信息查询收银台有关代码:/下面是收银台中控件 ”下一个” 的有关代码,其中对数据库中几乎所有的表都进行了操作.void SRecord:OnSsaveButton() / TODO: Add your control notification handler code hereCString SaleID=,GoodsID=2,Price=2,Count=2,Acount=2,StubNumber=,Date=;CString sql;int gcount = 0;float price = 0,acount = 0;CDataManage dm;/*/*GoodsID*/m_GoodsID.GetWindowText(GoodsID);if(GoodsID.GetLength() = 0)MessageBox(请输入数据,提示);return;/*SaleID*/*/trydm.ConnectDataBase();Record1-Open(_variant_t(Sale),_variant_t(IDispatch *)DataConn,true), adOpenKeyset,adLockOptimistic, adCmdTable);catch (_com_error& e)MessageBox(e.ErrorMessage(),提示);/*/sql.Format(select SaleID from Sale);tryRecord1-raw_Close();Record1-Open(_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);catch(_com_error &e)MessageBox(e.ErrorMessage(),提示);if(Record1-RecordCount 0)Record1-MoveLast();SaleID = (TCHAR*)(_bstr_t)Record1-GetFields()-GetItem(long)0)-Value;int saleid = atoi(SaleID);saleid+=1;SaleID.Format(%d,saleid);elseSaleID = 20060001;/*Price*/*/trydm.ConnectDataBase();Record1-Open(_variant_t(Storage),_variant_t(IDispatch *)DataConn,true), adOpenKeyset,adLockOptimistic, adCmdTable);catch (_com_error& e)MessageBox(e.ErrorMessage(),提示);/*/sql.Format(select GoodsPrice from Storage where GoodsID=%s,GoodsID);tryRecord1-raw_Close();Record1-Open(_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);catch(_com_error &e)MessageBox(e.ErrorMessage(),提示);if(Record1-RecordCount 0)Price = (TCHAR*)(_bstr_t)Record1-GetFields()-GetItem(long)0)-Value;price = (float)atof(Price);elseMessageBox(库存中没有此种商品,提示);return;/*Count*/m_Count.GetWindowText(Count);gcount = atoi(Count);/*Acount*/acount = gcount*price;pay+=acount;/*StubNumber*/StubNumber = SaleID;/*Date*/int year,month,day;CString date;CTime t= CTime:GetCurrentTime();year = t.GetYear();month = t.GetMonth();day = t.GetDay();Date.Format(%d/%d/%d,year,month,day);/*插入到ListControl中*/Acount.Format(%f,acount);m_SRList.InsertItem(100,);m_SRList.SetItemText(row,0,GoodsID);m_SRList.SetItemText(row,1,Count);m_SRList.SetItemText(row,2,Acount);row+;/*售货记录插入*/sql.Format(insert into Sale values(%s,%s,%f,%d,%f,%s,%s),SaleID,GoodsID,price,gcount,acount,StubNumber,Date);/*/trydm.ConnectDataBase();Record1-Open(_variant_t(Sale),_variant_t(IDispatch *)DataConn,true), adOpenKeyset,adLockOptimistic, adCmdTable);catch (_com_error& e)MessageBox(e.ErrorMessage(),提示);/*/trydm.ExecSQL(sql);/this-MessageBox(操作成功,提示);catch(_com_error &e)this-MessageBox(e.ErrorMessage(),出错提示);/*日盘存记录修改*/CString temp1 = ,temp2 = ;Record1-raw_Close();sql.Format(select * from DayStorage where GoodsID=%s,GoodsID);Record1-Open(_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);if(Record1-RecordCount 0)temp1 = (TCHAR*)(_bstr_t)Record1-GetFields()-GetItem(long)2)-Value;temp2 = (TCHAR*)(_bstr_t)Record1-GetFields()-GetItem(long)3)-Value;int addcount = atoi(temp1);float addacount = (float)atof(temp2);addcount+=gcount;addacount+=acount;sql.Format(update DayStorage set GoodsCount=%d,GoodsAcount=%f where GoodsID=%s,addcount,addacount,GoodsID);trydm.ExecSQL(sql);catch(_com_error &e)this-MessageBox(e.ErrorMessage(),出错提示);elsesql.Format(insert into DayStorage values(%s,%f,%d,%f,%s),GoodsID,price,gcount,acount,Date);trydm.ExecSQL(sql);catch(_com_error &e)this-MessageBox(e.ErrorMessage(),出错提示);/*月盘存记录修改*/Record1-raw_Close();sql.Format(select * from MonthStorage where GoodsID=%s,GoodsID);Record1-Open(_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);if(Record1-RecordCount 0)temp1 = (TCHAR*)(_bstr_t)Record1-GetFields()-GetItem(long)2)-Value;temp2 = (TCHAR*)(_bstr_t)Record1-GetFields()-GetItem(long)3)-Value;int addcount = atoi(temp1);float addacount = (float)atof(temp2);addcount+=gcount;addacount+=acount;sql.Format(update MonthStorage set GoodsCount=%d,GoodsAcount=%f where GoodsID=%s,addcount,addacount,GoodsID);trydm.ExecSQL(sql);catch(_com_error &e)this-MessageBox(e.ErrorMessage(),出错提示);elsesql.Format(insert into MonthStorage values(%s,%f,%d,%f),GoodsID,price,gcount,acount);trydm.ExecSQL(sql);catch(_com_error &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论