
VC++课程设计说明书销售信息管理系统.doc
20页课程设计说明书 No.1VC++销售信息管理系统1.课程设计的目的课程设计是加强实践能力的一个强有力手段通过课程设计可以掌握Visual C++6.0的应用、编写、上机调试的基本方法课程设计要求在完成程序设计的同时能够写出比较规范的设计报告,严格实施课程设计这一环节,对于基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用2.设计方案论证2.1概要设计(1)研究与学习销售信息管理系统统的技术、发展和意义;(2)学习使用JAVA、ODBC等实现技术的基本原理,安装配置系统开发环境;(3)设计和实现销售信息管理系统;(4)撰写课程设计报告,开发一个基于Visual C++6.0技术的销售信息管理系统,功能包括:客户信息管理模块、销售信息管理模块、售后服务信息管理模块、市场策略公告模块、统计报表管理模块,模块包括信息的添加、删除、修改等功能独立撰写课程设计报告,对整个系统及其内部的各个功能模块的构想、设计思路、实现方法和过程,做出了详细的说明和介绍2.2销售信息管理系统需求分析(1)销售人员向系统提交自己一段时间的销售数据、查询历史的销售数据、录入客户信息、销售队伍的信息公告。
2)客户服务人员答复客户的咨询、对产品使用情况进行回访、对产品进行保修等,将这些售后服务信息录入系统、查询历史的售后服务记录、查询某一位客户的产品使用情况3)市场部经理取得销售报表和售后服务报表,根据市场情况对销售策略进行宏观调控,发布策略公告图1系统功能模块图2.3相关技术简介(1)SQL Server 2005简介SQL Server是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用SQL Server 2005 为IT专家和信息工作者带来了强大的、熟悉的工具,同时减少了在从移动设备到企业数据系统的多平台上创建、部署、管理及使用企业数据和分析应用程序的复杂度 通过全面的功能集、和现有系统的集成性、以及对日常任务的自动化管理能力,SQL Server 2005 为不同规模的企业提供了一个完整的数据解决方案2)Eclipse简介Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境幸运的是,Eclipse 附带了一个标准的插件集3.设计结果与分析3.1安全性 工作人员每人都有自己的帐号和密码,这些都保存在员工表Staff中。
本次设计运用一种恺撒加密算法的变种对密码字段进行了加密,即使是数据库管理员打开员工表,也不能看出密码,如图2所示该功能是在程序中实现,具体的加密方法将在后面程序加密方法介绍图2销售信息管理系统结构图3.2设计与实现图区域以及信息显示区域不做绘图即可游戏模块中的退出子模块调用程序退出语句PostQuitMessage(0)即可,比较容易实现如图3所示图3销售信息管理系统E-R图初级子模块代码:void CZLLKView::OnMenuFirst() //初级{ // TODO: Add your command handler code here OnMenuBack(); int i,j; int temprand; CString str; CRect rect; //产生随机序列 srand((unsigned)time(NULL)); for(i=1;i<=8;i++) for(j=1;j<=9;j++) { while(1) { temprand=rand()%12; // 产生0-14的随机数 if(pic_number[temprand]<6) { pic_number[temprand]++; llk_map[i][j].state=0; llk_map[i][j].event=0; llk_map[i][j].PicIndex=temprand+1; // 1-15 break; } } } //列出每幅图片所有的位置 ListPicPlace(); //初始化事件 InitEvent(); g_userscore=0; //g_userlevel=1; g_usergate=1; //程序控制 bingame=true; bfirst=true; bsecond=false; bthree=false; DrawRectangleHollow(); m_nUpper=0; DrawProgress(m_nUpper); // 总共400个时间 m_nSpeed=2; SetTimer(1,2000,0); DrawInfo(120,20,"时间"); //DrawInfo(20,20,"级别:"); DrawInfo(20,20,"关卡:"); DrawInfo(20,40,"重列:"); DrawInfo(20,60,"提示:"); DrawInfo(540,20,"分数:"); //DrawInfo2(60,20,g_userlevel); DrawInfo2(60,20,g_usergate); DrawInfo2(60,40,m_sortnumber); DrawInfo2(60,60,m_tishinumber); DrawInfo2(560,40,g_userscore); DrawMap(); //音效 //if(m_soundeffect) // PlaySound(MAKEINTRESOURCE(IDR_WAVE_NEWGAME),AfxGetResourceHandle(),SND_RESOURCE|SND_ASYNC);}停止模块代码:void CZLLKView::OnMenuBack() { // TODO: Add your command handler code here KillTimer(1); bingame=false; bfirst=false; bsecond=false; bthree=false; bSecondClicked=false; bstop=false; m_dotNumber=0; //得分 m_tishinumber=10; m_sortnumber=5; //图片坐标 xindex=-1; yindex=-1; InitMap(); DrawBlank();}3.3逻辑结构设计(1)客户信息表(Customer):字段包括客户编号、客户姓名、性别、联系、地址、邮编、E-mail。
2)才产品列表(Product):字段包括产品编号、产品名称、规格、生产厂商、产品进价、备注3)工作人员表(Staff):字段包括工作人员编号、姓名、密码、类型关键字是工作人员编号销售信息表(Sell):字段包括销售编号、产品编号、客户编号、销售人员编号、销售日期、销售单价、销售量4)售后服务信息表(Service):字段包括售后编号、销售编号、市场人员编号、服务类型、详细情况、是否完成、客户满意度5)市场策略信息公告表(Policy):字段包括公告编号、员工编号、E-mai系、公告时间、公告类型、回复对应公告的编号和公告内容图4销售信息管理系统结构图提示子模块代码:void CZLLKView::OnMenuInfo() { // TODO: Add your command handler code here if(bingame) { if(m_tishinumber>0) { m_tishinumber--; DrawInfo(60,60,m_tishinumber); BackPicPlace(); } else { AfxMessageBox("提示已经用完"); } //DrawInfo(20,20,"级别:"); DrawInfo(20,20,"关卡:"); DrawInfo(20,40,"重列:"); DrawInfo(20,60,"提示:"); DrawInfo(540,20,"分数:"); //DrawInfo2(60,20,g_userlevel); DrawInfo2(60,20,g_usergate); DrawInfo2(60,40,m_sortnumber); DrawInfo2(60,60,m_tishinumber); DrawInfo2(560,40,g_userscore); }}重列子模块代码:void CZLLKView::OnMenuSort() { // TODO: Add your command handler code here if(bingame) { if(m_sortnumber>0) { m_sortnumber--; DrawInfo(60,40,m_sortnumber); SortPicPlace(); } else { AfxMessageBox("重列次数已经用完"); } //DrawInfo(20,20,"级别:"); DrawInfo(20,20,"关卡:"); DrawInfo(20,40,"重列:"); DrawInfo(20,60,"提示:"); DrawInfo(540,20,"分数:"); //DrawInfo2(60,20,g_userlevel); DrawInfo2(60,20,g_usergate); DrawInfo2(60,40,m_sortnumber); DrawInfo2(60,60,m_tishinumber); DrawInfo2(560,40,g_userscore); }}暂停子模块代码:void CZLLKView::OnMenuStop() //判断停止{ // TODO: Add your command handler code here if(bstop) SetTimer(1,2000,0); else KillTimer(1); bstop=!bstop; AfxMessageBox("点击确定继续!"); SetTimer(1,2000,0); bstop=false;}字段名代码类型约束客户编号IDint主键客户姓名Namevarchar(20)非空性别Gender。
