基于分布式操作的连锁超市管理系统-课程实验设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学硕士研究生
实验课程报告
课程:《数据库新技术实验》,编号: 06415006
实验名称:基于分布式操作的连锁超市管理系统工作方式:(个人/小组)( 1 )
指导教师:牛新征日期:2015年 12月 07日成绩:
设计者:
(组长)张洪,学号:201521220139,工作:编码,需求分析,课程设计,用户手册,测试,概要设计
目录
1设计方案简述 (3)
1.1软件介绍 (3)
1.2软件构思 (3)
2 开发环境 (4)
3软件功能设计实现 (4)
3.1公共类设计 (4)
3.1.1文件操作类CFileOperate (4)
3.1.2时间格式转换类CMyTime (6)
3.1.3数据操作类CADOConn (6)
3.1.4数据库表的操作类CtablePartInfo (14)
3.2界面窗口设计 (17)
3.2.1系统启动登录开发 (17)
3.2.2主界面对话框设计 (19)
3.2.3通用报表对话框设计开发 (20)
3.2.4打印对话框设计开发 (22)
3.3基本资料模块设计 (24)
3.3.1 基本资料管理功能开发 (24)
3.3.2价格自动生成功能开发 (27)
3.3.3 报表功能实现 (28)
3.4进货/销售模块设计 (29)
3.4.1进货/销售登记设计 (29)
3.4.2进货设计 (32)
3.4.3月度统计设计 (33)
3.5库存模块设计 (34)
3.5.1 库存查询功能开发 (34)
3.5.2 库存报警功能开发 (34)
4结果分析与总结 (35)
4.1结果分析 (35)
4.2总结 (35)
5对课题选题和计划实施的意见和建议 (36)
6阶段成果提交 (36)
1设计方案简述
1.1软件介绍
为连锁超市提高效率、降低成本;实现连锁超市管理的优化,简化工作流程,节省人力物力,提高工作效率,极大地满足客户需要;对各环节进行控制分析,实现统一调度。
满足连锁超市的基本管理功能,发挥信息系统的灵活性,减轻企业管理人员和操作人员的工作负担,提高工作效率。本系统是一项功能比较完善的连锁超市管理系统,对连锁店运作过程中的后台数据可以随时进行分析,便于企业管理人员的经营、决策。全面体现了现代企业管理理论所倡导的工作高效、环境轻松的氛围。
(2)系统先进之处
●多数处理就地完成。
●各地的计算机由数据通信网络相联系。
●克服了中心数据库的弱点:降低了数据传输代价。
●提高了系统的可靠性,局部系统发生故障,其他部分还可继续工作。
●各个数据库的位置是透明的,方便系统的扩充。
●为了协调整个系统的事务活动,事务管理的性能花费高。
1.2软件构思
结合系统的具体设计要求,连锁超市管理系统的主要功能流程图如图3-2所示。
系统首先对登录用户身份进行验证,根据用户的权限激活相关功能。超级管
理员具有所有的操作权限,系统的功能结构图如图3-3所示。
上图只是列出了一些主要功能,系统还能够根据不同需求生成各种统计报表。
2 开发环境
本系统是在Windows XP中文版操作系统环境下,使用Microsoft Visual Studio 2008中文版用C++语言开发成功的。在开发过程中,使用了OLE技术和ActiveX控件技术。
后台数据库系统设计采用的是Microsoft的 SQL Server 2005和Access 数据库系统,通过ADO数据库开发技术,直接操作数据库文件。
3软件功能设计实现
3.1公共类设计
为了提高程序代码的开发效率,便于代码重用,在系统开发中,创建了一些数据操作类和控件扩展类。
3.1.1文件操作类CFileOperate
为了便于对硬盘文件的操作,开发了文件操作类CFileOperate,它通过调用API函数实现常用的文件操作。CFileOperate类的声明代码如下。
extern CString strTmpPath; class CFileOperate
{
public:
//构造函数
CFileOperate();
//取得当前程序运行的路径
CString GetAppPath();
//判断是否存在strFn文件夹
BOOL IsFileExist(CString strFn, BOOL bDir);
//制作strFloderName文件夹返回文件夹名
CString MakeDirectory(CString strFloderName);
//自动生成文件夹
CString MakeDirectory();
//得到文件夹名为strFloderName的路径
CString GetDirectoryPath(CString strFloderName);
//删除strFloderdName文件夹
void delDirectory(CString strFloderdName);
//删除主文件夹(data)
void delMainDirectory();
//制作主文件夹
void MakeMainDirectory();
//判断strIntDigit是否为整数,是否小于intBig
BOOL CheckIntDigit(CString strIntDigit,int intBig);
//判断strFileName是否可以做文件夹或文件的名字
BOOL CheckFileName(CString strFileName);
//判断strText是否为空BOOL CheckEmpty(CString strText);
//删除strFloderName文件夹下名为strFileName的文件
void delFile(CString strFloderName,CString strFileName);
//得到strFloderName文件夹下名为strFileName的文件路径
CString GetFileName(CString strFolderName,CString strFileName);
//制作strFloderName文件夹下名为strFileName的文件
CString MakeFile(CString strFloderName,BOOL blnMake);
//显示文件夹对话框
BOOL GetFolder(CString* strSelectedFolder,const char* lpszTitle,const HWND
hwndOwner,const char* strRootFolder,const char* strStartFolder);
};
系统程序中主要用到了CFileOperate类中的GetAppPath函数。GetAppPath 函数用于获取当前运行程序所在文件夹的路径,其实现代码如下。
CString CFileOperate::GetAppPath()//取得当前运行程序所在文件夹路径
{
char lpFileName[MAX_PATH];//路径数组
//获取当前运行程序的全路径
GetModuleFileName(AfxGetInstanceHandle(),lpFileName,MAX_PATH);