您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 客户消费积分管理系统的设计与实现-课程设计
编号课程设计报告2015~2016学年第一学期客户消费积分管理系统的设计与实现TheDesignandImplementationofaClientIntegralManagementSystem实习类别课程设计学生姓名李志莹专业软件工程学号140521329指导教师刘丹、何巍学院计算机科学技术学院二〇一五年十二月长春理工大学计算机科学技术学院课程设计报告-1-起止周17~18周数2实习地点南研1213/1208/1201实验室课程设计目的:了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练学生用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。课程设计要求:1、独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。2、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。3、实践设计以实际应用中的小型题目为主,要求学生独立完成或合作完成。要求学生能根据不同的题目类型选择一种或两种开发模式,完成从系统定义,指定开发计划,需求分析,设计,编码/测试,直至运行/维护的软件生存期的全过程。完成课程设计题目《客户消费积分管理系统的设计与实现》进度安排及主要内容:第1次课:布置任务;第2次课:问题分析及解决方案确定;第3次课:形成编程思路;第4次课:使用具体语言实现算法;第5次课:上机调试程序;第6次课:编写课程设计报告;成绩:指导教师(签字)年月日《客户消费积分管理系统的设计与实现》李志莹-2-一、概述1.1设计主要完成的任务1.1.1题目要求针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。⑴采用一定的存储结构进行客户信息的存储;⑵对客户的信息可以进行修改、删除、添加;⑶能够根据消费情况进行客户积分的累加;⑷根据积分情况,对客户实行不同程度的打折优惠;1.2解决的主要问题1.2.1采用何种数据结构和编程语言实现客户抽象由于客户数目不定,所以采用链表结构实现客户的增删改查等基本操作,用C#窗体图形用户界面技术编写程序。本程序要运用链表对客户信息进行存储,首先对结点进行定义,采用C#泛型思想和接口建立单链表类,并实现单链表的基本操作,代码主要参考的是《数据结构(C#语言版)》,但是在实际编写过程中略有调整。1.2.2界面设计(1)主界面:功能按钮导航;(2)添加界面:添加新客户的信息;(3)删除界面:按客户ID删除已有客户。(4)修改界面:按客户ID修改已有客户信息。(5)查找界面:按客户ID查找已有客户。(6)显示界面:遍历显示表中所有的客户的所有信息。(7)消费界面:按客户ID对已有客户进行消费操作。1.2.3数据结构中单链表的C#实现对于单链表的操作,主要用到两个类,一个是Node类,一个是List类。Node类主要是建立节点的类,这个类包含数据内容data和“指针”next用于指向下一个节点,实现单链表的连接。List类主要是进行对单链表的各种操作:初始化头节点为空的链表。求单链表的长度。清空单链表。长春理工大学计算机科学技术学院课程设计报告-3-判断链表是否为空。在单链表尾部追加数据元素。在单链表的第i个结点的位置前插入一个值为value的结点。删除单链表的第i个结点,只是修改引用域,逻辑上的删除,由垃圾回收器回收。获得单链表中第i个数据元素。在单链表中查找值为value的结点。所有的操作都是基于List中的私有变量head和通过方法得到的长度,利用他们实现节点的查找和定位。1.2.4客户的抽象客户用类进行抽象建模,在客户类Consumer中定义相关字段(信息)、属性(字段的操作方式)、构造方法(客户创建方式)和实例方法(操作函数)。所要定义的属性、字段和方法参见图-1。图-1客户类的结构图-1中类要调用消费方法时,消费方法又调用计算折扣方法。左边一列没有注释的内容为类中各字段对应的属性,用于对外写入和读入字段的值。右边带有注释的内容为属于类的字段,是对客户信息的抽象。《客户消费积分管理系统的设计与实现》李志莹-4-二、需求分析2.1客户(管理对象)需求2.1.1客户的基本信息注册登记时,每个客户都有唯一的ID,在方便管理的基础上,管理员可对客户的基本个人信息,如ID,姓名,电话等等,进行增加、删除、修改和查找,但是无法直接修改客户的累计消费、享有优惠、积分,这三个信息是执行消费操作时由系统后台自动更改的。2.1.2积分设置当用户每消费一次,都由管理员用系统执行添加消费操作,操作成功就有一笔积分与以前的积分进行累加,记录在系统中,并按照相关的积分政策,可享受打折优惠等,或累计一定的积分,可为会员类型进行升级。2.1.3消费设置在系统中,每次消费操作得到管理员输入的有效消费金额,调用折扣计算函数访问客户的享有优惠信息,计算出实际支付款,显示次实付款以及此次消费享有的优惠,购买成功后显示最新积分。2.2数据需求应使用string对每个客户的基本信息进行存储。用户消费、积分用double类型存储。然后运用链表的存储结构将用户所有信息进行保存。继而完成各种功能。2.3题目的功能采用一定的存储结构进行客户信息的存储;对客户的信息可以进行修改、删除、添加;能够根据消费情况进行客户积分的累加;根据积分情况,对客户实行不同程度的打折优惠;2.4系统各项功能描述2.4.1根据不同的积分区间对客户进行打折具体如下:积分满500享受1元优惠,积分满1000享受2元优惠,积分满2000享受5元优惠,积分满5000享受9折优惠,积分满10000享受VIP的7折优惠。长春理工大学计算机科学技术学院课程设计报告-5-2.4.1用例分析用例1用例名:录入客户及商品信息行为者:超市管理员目的:完成对客户及商品信息的录入管理过程描述:录入客户(商品)的详细信息包括客户的姓名、身份证号、及现有的积分(商品名、商品的序列号、商品的价格、商品的数量)通过客户文件in.txt(in2.txt)文件或者键盘输入读取客户(商品)信息对键盘输入的客户的积分初始化为0;输入客户(商品)名称能查找到相应信息;根据客户的积分信息及打折信息给客户实现打折优惠;异常处理:无。用例2用例名:客户信息管理。行为者:超市管理员。目的:完成对客户信息的管理。过程描述:超市管理员输入客户的姓名和ID号。对客户进行相应的增、删、查、改的操作并能正确的显示客户信息对客户进行报表统计;保存客户信息录入客户信息文件out.txt异常处理:无。用例3用例名:客户消费管理。行为者:超市管理员。目的:完成对客户购买消费的计算并根据客户消费返回客户积分;过程描述:超市管理员输入客户的身份证号查找到相应的客户并显示客户的积分及打折信息,如果客户不存在则打印此用户不存在;输入客户购买的商品序号打印出商品的信息。输入客户购买的商品数量并累加到consumer的消费中;退出系统;异常处理:无。三、技术方案3.1软硬件环境3.1.1系统软件:《客户消费积分管理系统的设计与实现》李志莹-6-本课程设计的系统开发平台为WindowsXP及以上。程序设计语言为C#语言,程序运行平台可Windws98/2000/XP/Seven。需要VisualStudio2013编程软件和.NetFramework组件。3.1.2系统硬件的需求:Pentium4800MHZ或者更高主频CPU512MB以上内存。3.2配置方案Windows7操作系统,VS2013开发工具及平台。3.3关键技术C#窗体应用技术,c#泛型和面向对象编程,数据结构原理及算法,单链表的基本操作。四、总体设计4.1系统功能架构系统的功能架构参见图-2:图-2系统功能的结构4.2各模块功能架构4.2.1添加长春理工大学计算机科学技术学院课程设计报告-7-图-3添加客户4.2.2删除图-4删除客户4.2.3修改《客户消费积分管理系统的设计与实现》李志莹-8-图-5修改客户4.2.4查找图-6查找客户长春理工大学计算机科学技术学院课程设计报告-9-4.2.5添加消费图-7添加消费4.2.6查看所有图-8查看所有《客户消费积分管理系统的设计与实现》李志莹-10-五、详细设计5.1节点的定义classNodeT{//定义单链表数据结构privateTdata;//数据域字段publicTData//数据域属性{get{returndata;}set{data=value;}}privateNodeTnext;//指针域字段publicNodeTNext//指针域属性{get{returnnext;}set{next=value;}}//构造函数publicNode()//空节点{this.data=default(T);this.next=null;}publicNode(Tdata,NodeTnext)//数据域,指针域节点{this.data=data;this.next=next;}长春理工大学计算机科学技术学院课程设计报告-11-publicNode(Tdata)//数据域节点{next=null;this.data=data;}publicNode(NodeTnext)//指针域节点{this.next=next;}}5.2单链表的实现以及基本操作接口5.2.1单链表的字段、构造方法:classListT:IListDST{privateNodeThead;//单链表头结点字段//头结点属性publicNodeTHead{get{returnhead;}set{head=value;}}//构造方法publicList(){head=null;}}《客户消费积分管理系统的设计与实现》李志莹-12-5.2.2单链表类接口://接口的定义publicinterfaceIListDST{intGetLength();//求长度voidClear();//清空操作boolIsEmpty();//判断线性表是否为空boolAppend(Titem);//附加操作boolInsert(Titem,inti);//插入操作TDelete(inti);//删除操作TGetElem(inti);//取表元intLocate(Tvalue);//按值查找}5.3各功能模块流程图5.3.1添加流程图-9添加流程长春理工大学计算机科学技术学院课程设计报告-13-5.3.2删除流程图-10删除流程5.3.3修改流程、查找流程图-11修改流程、查找流程《客户消费积分管理系统的设计与实现》李志莹-14-5.3.4添加消费、查看所有客户流程图-12添加消费、查看所有客户流程六、软件测试6.1针对目标系统的测试方案6.1.1测试流程添加几个用例,删除其中之一,再试着查找不存在的客户,给存在的客户添加消费,查看所有客户信息。6.1.2用例以及测试结果添加4个客户----ID姓名身份证号电话会员类型----aaaa普通,bbbb普通,cccc普通,ddddVIP,删除a,修改b为babababaVIP,查找f,为c添加消费500元,查看所有客户。测试结果:|---ID---||-姓名-||-----身份证号-----||----电话---||会员类型||--累计消费--||--积分--||享受优惠|1babababaVIP00打七折2cccc普通500500减1元长春理工大学计算机科学技术学院课程设计报告-15-3ddddVIP00打七折6.1.3测试结论程序可以正常增删改除客户,具有一定友好性。七、总结在本次课程设计当中,我对许多以往掌握不够熟练或者是使用较少而易忽略的知识点有了一定的掌握,比如说泛型,单链表的基本操作,new和delete的动态内存分配与内存空间的释
本文标题:客户消费积分管理系统的设计与实现-课程设计
链接地址:https://www.777doc.com/doc-5747505 .html