管理信息系统课程设计报告指导书.docx
《管理信息系统课程设计报告指导书.docx》由会员分享,可在线阅读,更多相关《管理信息系统课程设计报告指导书.docx(48页珍藏版)》请在冰豆网上搜索。
管理信息系统课程设计报告指导书
一、课程设计要求········································1
二、系统功能与应用背景··································2
三、系统设计············································2
(一)系统设计思想······································2
(二)系统功能模快的划分································3
(三)系统设计分工······································4
四、数据库设计··········································4
(一)数据库需求分析···································5
(二)数据库结构设计···································7
(三)数据库表·········································8
五、程序模块设计·································8
(一)系统主程序设计和主界面····························8
(二)资料管理模块······································11
(三)投诉管理模块······································16
(四)日程管理模块······································24
(五)报表统计模块······································26
(六)系统和数据维护模块································28
六、课程设计总结········································33
七、参考文献············································34
八、致谢················································35
附:
经济管理学院课程设计鉴定表
管理信息系统课程设计报告
一、课程设计要求
(一)总体要求
1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。
2、既要虚心接受老师的指导,又要充分发挥主观能动性。
结合课题,独立思考,努力钻研,勤于实践,勇于创新。
3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。
4、无论在校外、校内,都要严格遵守学校和所在单位的学习和劳动纪律、规章制度,学生有事离校必须请假。
课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。
5、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
(二)设计要求
1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。
2、既要虚心接受老师的指导,又要充分发挥主观能动性。
结合课题,独立思考,努力钻研,勤于实践,勇于创新。
3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。
4、无论在校外、校内,都要严格遵守学校和所在单位的学习和劳动纪律、章制度,学生有事离校必须请假。
课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。
5、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
6、小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。
(三)课程设计的一般步骤
课程设计大体分五个阶段:
1、选题与搜集资料:
进行系统调查,搜集资料。
2、分析与设计:
根据搜集的资料,进行功能与数据分析,并进行数据库、系统功能等设计。
3、程序设计:
运用掌握的语言,结合选择的数据库,编写程序,实现所设计的模块功能。
4、调试与测试:
自行调试程序,成员交叉测试程序,并记录测试情况。
5、验收与评分:
指导教师对每个小组的开发的系统,及每个成员开发的模块进行综合验收,结合设计报告,根据课程设计成绩的评定方法,评出成绩。
二、系统功能与应用背景
客户管理的核心是企业与客户的关系。
在传统经济时代,企业不做市场和客户需求分析,盲目生产,产品单一且供不应求,物质极度缺乏,客户对商品无法选择,整个市场处于买方市场。
此时的客户管理仅是企业与客户表面上维持的一种适度、有限的关系,实际上就是一种简单、短期的买卖关系或者是一种交易关系,制约了企业和社会的发展。
而在网络经济时代,企业完全按照市场和客户的需求生产各种产品。
产品品种规格繁多且更新换代快,商品极为丰富,客户选择商品具有很大的自主权,整个市场处于买方市场。
此时的客户管理以企业获取利润最大化为目标,不仅要强调以市场为导向,以客户需求为中心的基本思想,而且还努力提高服务质量和客户满意度,力求在企业和客户之间建立和保护=持一种长期、良好的合作关系,加速企业和社会的发展。
考虑到客户管理分析的数据类型多,数量大,系统应用具备强大的空间空间查询和检索功能,支持多条件数据快速提取和可视化显示,还应具有较强的专题分析和成图功能。
客户管理系统包括如下功能。
1、资料管理功能。
在客户关系管理中可以实现客户信息的增加、删除、修改和查找功能,同时也可以打印某客户范围内的客户资料信息。
2、投诉管理功能。
在投诉管理可以实现客户投诉信息的增加、删除、修改和查找功能,还可以对系统中的客户投诉信息进行总结。
3、日程管理功能。
日程管理模块管理企业的计划事物,可以完成建立和浏览计划,并且可以将每天的计划情况通过每天的“今日提醒”来表示。
三、系统设计
(一)系统设计思想
当今世界市场竞争的焦点已成产品的竞争转向品牌的竞争、服务的竞争和客户的竞争,特别是谁能与客户建立和保持一种长期、合作关系,掌握客户资源、赢得客户信任、分析客户需求,谁就能制定出科学的企业发展战略和市场营销战略,生产出适销对路的的产品,提供满意的客户服务,从而迅速提高市场占有率,获得最大利润。
客户管理作为现代企业的主要管理之一,已经被越来越多的企业逐渐认识。
客户管理主要包括:
资料管理、客户投诉管理、日程管理、报表管理。
系统设计阶段应当根据用户的需求,明确的描述数据库(数据库服务端)和应用界面(客户端)实现的功能,即决定哪些功能由服务器实现,哪些功能由客户端实现。
对于客户∕服务器应用程序,许多功能既可以在服务器端实现又可以在客户端实现,例如一个复杂的数学变换功能既可以由客户端的应用程序实现,又可以由服务器端的存储过程实现。
服务器和客户端应用程序功能的划分往往取决于应用程序的硬件环境。
例如,如果客户端的低档的PC,服务器端是高档的工作站,那么由服务器完成大量的计算是比较理想的。
(二)系统功能模快的划分
根据上述的系统功能分析,可以得出如下的系统功能模块图,数据流程图,业务流程图。
系统总体功能设计
业务流程图
数据流程图
(三)小组设计分工
客户关系管理系统是分工合作完成的。
其中,系统启动,权限认证界面,菜单设计及数据库和表的设计,以及系统连编及运行由吴珺同学完成;在安全登录模块,主窗口模块及系统维护模块中,共有四张表单,这由舒用建同学完成。
本系统的资料管理模块包含客户信息输入,客户信息修改,客户信息删除,客户信息查询,客户标签打印五张表单,这由邓虎子同学完成,另外,他在完成好自己的任务之余,他还尽心尽力地协助本人写报告,做报表,在此非常感谢他。
可以说,投诉管理模块是本系统的主要功能亮点,它有效地将员工的工作业绩和客户的投诉反馈联系在一起,这样有助于加强对员工的监督和对客户的反馈信息的处理,进而能够巩固客户源,这部分由李洪涛同学完成。
最后,日程管理模块,报表管理模块及本次报告的书写由本人——李论基完成。
四、数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构世纪的好坏将直接对应用系统的效率,以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
设计数据库系统时应该首先充分了解用户各方面的需求,包括现有的及将来可能增加的需求。
数据库设计一般包括如下几个步骤。
1.数据库需要分析。
2.数据库概念结构设计。
3.数据库逻辑结构设计。
(一)数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就是要求数据库结构功能充分满足各种信息的输入和输出。
收集基本数据、结构数据,以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下良好的基础。
通过上述系统功能分析,针对一般客户管理信息系统的需求,总结如下的需求信息。
1.客户信息数据:
包括各方面的信息数据。
2.客户投诉信息数据:
包括客户投诉的信息数据。
3.日程数据信息:
包括公司每天的任务信息数据。
4.授权用户数据:
包括授权使用该数据库的管理人员数据。
在上面的需求分析、数据结构分析、数据向分析的基础上,下面开始数据库概念结构设计。
(二)数据库概念结构设计
得到上面数据项和数据结构后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面逻辑结构设计打下基础。
这些尸体包含各种信息,通过相互之间的作用形成数据的流动。
根据上面的设计规划出的实体有:
客户信息实体、日程信息实体、授权用户信息实体。
各个实体具体的描述E-R图如下。
实体之间关系的E-R图:
实体之间关系的E-R图
客户信息实体之间的E-R图:
客户信息实体之间的E-R图
客户投诉信息尸体的E-R图:
客户投诉信息实体的E-R图:
日程信息尸体的E-R图:
日程信息实体的E-R图:
(三)数据库逻辑结构设计
数据库的概念结构设计完毕后,现在可以上面的数据结构转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
客户关系管理系统中使用的各个数据表的字段设置如下所示。
表1客户投诉信息表
字段名称
数据类型
长度
允许空
索引类型
投诉编号
字符型
5
普通索引
投诉日期
日期型
8
普通索引
投诉客户姓名
字符型
10
投诉原因
备注型
4
投诉电话
字符型
12
投诉结果
备注型
4
表2客户信息表
字段名称
数据类型
长度
允许空
索引类型
编号
字符型
8
普通索引
姓名
字符型
10
系别
逻辑型
1
认证号码
字符型
20
地址
字符型
20
电话
字符型
15
电子邮件
字符型
15
表3日程信息表
字段名称
数据类型
长度
允许空
索引类型
结束日期
日期型
8
结束日期
日期型
8
日程内容
字符型
100
表4授权用户表
字段名称
数据类型
长度
允许空
索引类型
用户名称
字符型
10
普通索引
授权密码
字符型
15
Dom
数值型
五、程序模块设计
(一)系统主程序设计和主界面:
1、本系统先显示系统封面,进行用户身份确认后,直接运行系统主菜单。
程序代码:
SETTALKOFF
SETDELEON
SETSAFEOFF
_SCREEN.Visible=.F.
oldpath=SYS(5)+SYS(2003)
newpath=SYS(16)
newpath=getpath(newpath)
SETDEFAULTTO(newpath)
OPENDATA客户管理信息
SELE0
USE客户信息表
SELE0
USE客户投诉信息表
SELE0
USE日程信息表
SELE0
USE关键词表
SELE0
USE授权用户表
PUBLICg_uid,g_time,g_dom(19)
g_uid=''
g_time=TTOC(DATETIME())
g_dom=1
DOFORM用户登录
READEVENT
FUNCTIONgetpath
PARAmpath
rm=RAT('\',mpath)
lm=AT('\',mpath)
IF(rm=lm)
result=SUBSTR(mpath,1,lm)
ELSE
result=SUBSTR(mpath,1,rm-1)
ENDIF
RETURNresult
ENDFUNC
2、程序运行后进入登入表单,登录表单如下:
登录表单
3、若输入的用户名和密码正确,则进入系统主界面即主表单:
客户关系管理系统主表单
时钟控件的timer事件代码:
thisform.caption='客户关系管理系统(工管0901班)'+str(year(date()),4)+'年'+str(month(date()),2)+'月'+str(day(date()),2)+'日';
+time()
4.客户管理菜单如下:
(二)资料管理模块
1、资料管理模块实现以下功能:
1)客户信息输入;2)客户信息删除;3)客户信息更改;4、客户信息查询;5)标签打印。
2、客户信息查询
【开始查找】的click事件代码:
dimem_qry
(2)
m_qry
(1)='编号'
m_qry
(2)='姓名'
IFTHISFORM.combo1.VALUE=m_qry
(1)
SELECT编号,姓名,认证号码,地址,电话,电子邮件FROM客户信息表INTOCURSORcur
ELSE
SELECT编号,姓名,认证号码,地址,电话,电子邮件FROM客户信息表INTOCURSORcur
endif
COUNTTOm_no
IFm_no>0
m_message='搜寻结果:
为您找到'+ALLT(STR(m_no))+'条记录'
ELSE
m_message='很抱歉,没有找到相关记录'
ENDIF
THISFORM.grid1.RECORDSOURCE='cur'
THISFORM.grid1.VISIBLE=.T.
THISFORM.label3.CAPTION=m_message
THISFORM.label3.VISIBLE=.T.
THISFORM.grid1.REFRESH
THISFORM.grid1.doscroll
(2)
3、客户信息输入对话框如下:
【保存】的click事件代码:
m_no=ALLTRIM(THISFORM.txtno.VALUE)
SELE客户投诉信息表
LOCATEFOR投诉编号=m_no
IFFOUND()
MESSAGEBOX('编号为'+m_no+'的投诉记录已经存在!
',16,'记录重复')
RETURN
ENDIF
m_time=CTOD(THISFORM.txttime.VALUE)
m_name=ALLTRIM(THISFORM.txtname.VALUE)
m_content=ALLTRIM(THISFORM.edtcontent.VALUE)
m_contact=ALLTRIM(THISFORM.txtcontact.VALUE)
m_result=ALLTRIM(THISFORM.edtresult.VALUE)
INSERTINTO客户投诉信息表VALUES(m_no,m_time,m_name,m_content,m_contact,m_result)
m_keyword=ALLTRIM(THISFORM.txtkeyword.VALUE)
FORi=1TOLEN(m_keyword)
kw=''
DOWHILESUBSTR(m_keyword,i,1)<>''ANDi<=LEN(m_keyword)
kw=kw+SUBSTR(m_keyword,i,1)
i=i+1
ENDDO
IFNOTEMPTY(kw)
INSERTINTO关键词表VALUES(m_no,kw)
ENDIF
ENDFOR
THISFORM.SETALL('value','','textbox')
THISFORM.SETALL('value','','editbox')
THISFORM.txtno.SETFOCUS
【退出】的click事件代码:
Thisform.release
4、客户信息更改对话框如下:
【查找】的click事件代码:
m_no=ALLTRIM(THISFORM.txtno.VALUE)
IFEMPTY(m_no)
MESSAGEBOX('对不起,客户编号不能为空!
',16,'错误')
THISFORM.txtno.SETFOCUS
RETURN
ENDIF
SELE客户信息表
LOCATEFOR编号=m_no
IFNOTFOUND()
MESSAGEBOX('没有找到您所输入的编号。
',16,'错误')
THISFORM.txtno.SETFOCUS
RETURN
ENDIF
THISFORM.txtname.VALUE=客户信息表.姓名
THISFORM.opgsex.VALUE=IIF(客户信息表.性别,1,2)
THISFORM.txtid.VALUE=客户信息表.认证号码
THISFORM.txtaddress.VALUE=客户信息表.地址
THISFORM.txtphone.VALUE=客户信息表.电话
THISFORM.txtemail.VALUE=客户信息表.电子邮件
【还原】的click事件代码:
THISFORM.txtno.VALUE=客户信息表.编号
THISFORM.txtname.VALUE=客户信息表.姓名
THISFORM.opgsex.VALUE=IIF(客户信息表.性别,1,2)
THISFORM.txtid.VALUE=客户信息表.认证号码
THISFORM.txtaddress.VALUE=客户信息表.地址
THISFORM.txtphone.VALUE=客户信息表.电话
THISFORM.txtemail.VALUE=客户信息表.电子邮件
【退出】的click事件代码:
Thisform.release
5.客户信息删除对话框如下:
【删除】的click事件代码:
m_no=alltrim(thisform.txtno.value)
ifempty(m_no)
messagebox('对不起,编号不能为空!
',16,'错误!
')
thisform.txtno.setfocus
return
endif
nAnswer=messagebox('记录一旦被删除,将无法恢复。
请确认您要删除的记录!
'+chr(13)+'您真的要删除该记录吗?
',4+48+256,'警告!
')
ifnAnswer=6&&yes
deletefromtblcustomwhereno=m_no
thisform.setall('value','','textbox')
thisform.setall('value','','editbox')
thisform.txtno.setfocus
endif
m_no=alltrim(thisform.txtno.value)
【退出】的click事件代码:
Thisform.release
6.标签打印对话框如下:
【打印预览】的click事件代码:
m_noinf=val(thisform.txtnoinf.value)
m_nosup=val(thisform.txtnosup.value)
selecttblcustom
locateforval(no)>=m_noinfandval(no)<=m_nosup
iffound()
labelformlblcustomforval(no)>=m_noinfandval(no)<=m_nosuppreview
else
messagebox('没有符合条件的记录可以打印!
',16,'错误!
')
endif
【退出】的click事件代码:
Thisform.release
(三)投诉管理模块
1、投诉管理模块实现以下功能:
1)投诉信息输入;2)投诉信息更改;3)投诉信息删除;4)投诉信息查询;5)
数据统计
2、投诉信息输入对话框如下:
【保存】的click事件代码:
m_no=alltrim(thisform.txtno.value)
ifempty(thisform.txtno.value)
messagebox('投诉编号不能为空!
',48,'错误提示')
thisform.txtno.setfocus
return
endif
seletblcomplain
locateforno=m_no
iffound()
messagebox('编号为'+m_no+'的投诉记录已经存在!
',16,'记录重复!
')
return
endif
m_time=ctod(thisform.txttime.value)
m_name=alltrim(thisform.txtname.value)
m_content=alltrim(thisform.edtcontent.value)
m_contact=alltrim(thisform.txtcontact.value)
m_result=alltrim(thisform.edtresult.value)
insertintotblcomplainvalues(m_no,m_time,m_name,m_content,m_contact,m_result)
m_keyword=alltrim(thisform.txtkeyword.value)
fori=1tolen(m_keyword)
kw=''
dowhilesubstr(m_keyword,i,1)<>''andi<=len(m_keyword)
kw=kw+substr(m_keyword,i,1)
i=i+1
enddo
ifnotempty(kw)
insertintotblkeywordvalues(m_no,kw)
endif
endfor
thisform.setall('value','','textbox')
thisform.setall('value','','editbox')
thisform.txtno.setfocus
【退出】的click事件代码:
Thisform.release
3、客户投诉信息更改对话框如下:
【保存】的click事件代码