收藏 分销(赏)

客户消费积分标准管理系统的设计和实现专业课程设计.doc

上传人:w****g 文档编号:2656279 上传时间:2024-06-03 格式:DOC 页数:28 大小:507.54KB
下载 相关 举报
客户消费积分标准管理系统的设计和实现专业课程设计.doc_第1页
第1页 / 共28页
客户消费积分标准管理系统的设计和实现专业课程设计.doc_第2页
第2页 / 共28页
客户消费积分标准管理系统的设计和实现专业课程设计.doc_第3页
第3页 / 共28页
客户消费积分标准管理系统的设计和实现专业课程设计.doc_第4页
第4页 / 共28页
客户消费积分标准管理系统的设计和实现专业课程设计.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、编号 课程设计报告 第一学期客户消费积分管理系统设计与实现The Design and Implementation of a Client Integral Management System实 习 类 别课程设计学 生 姓 名 李志莹专 业 软件工程学 号 指 导 教 师刘丹、何巍学 院计算机科学技术学院二一五年十二月 起 止 周1718周数2实习地点南研1213/1208/1201实验室课程设计目:l 理解并掌握数据构造与算法设计办法,具备初步独立分析和设计能力;l 初步掌握软件开发过程问题分析、系统设计、程序编码、测试等基本办法和技能;l 提高综合运用所学理论知识和办法独立分析和解决问

2、题能力;l 训练学生用系统观点和软件开发普通规范进行软件开发,培养软件工作者所应具备科学工作办法和作风。课程设计规定:1、独立思考,独立完毕:课程设计中各任务设计和调试规定独立完毕,遇到问题可以讨论,但不可以拷贝。2、做好上机准备:每次上机前,要事先编制好准备调试程序,认真想好调试环节和关于环境设立办法,准备好关于文献。3、实践设计以实际应用中小型题目为主,规定学生独立完毕或合伙完毕。规定学生能依照不同题目类型选取一种或两种开发模式,完毕从系统定义,指定开发筹划,需求分析,设计,编码/测试,直至运营/维护软件生存期全过程。完毕课程设计题目客户消费积分管理系统设计与实现进度安排及重要内容:第1次

3、课:布置任务;第2次课:问题分析及解决方案拟定;第3次课:形成编程思路;第4次课:使用品体语言实现算法;第5次课:上机调试程序;第6次课:编写课程设计报告;成绩:指引教师(签字)年 月 日一、概述1.1 设计重要完毕任务1.1.1 题目规定针对客户消费状况,进行客户管理,依照客户消费积分对客户实行不同限度打折优惠。采用一定存储构造进行客户信息存储;对客户信息可以进行修改、删除、添加;可以依照消费状况进行客户积分累加;依照积分状况,对客户实行不同限度打折优惠; 1.2 解决重要问题1.2.1 采用何种数据构造和编程语言实现客户抽象由于客户数目不定,因此采用链表构造实现客户增删改查等基本操作,用C

4、#窗体图形顾客界面技术编写程序。本程序要运用链表对客户信息进行存储,一方面对结点进行定义,采用C#泛型思想和接口建立单链表类,并实现单链表基本操作,代码重要参照是数据构造(C#语言版),但是在实际编写过程中略有调节。1.2.2 界面设计(1) 主界面:功能按钮导航;(2) 添加界面:添加新客户信息;(3) 删除界面:按客户ID删除已有客户。(4) 修改界面:按客户ID修改已有客户信息。(5) 查找界面:按客户ID查找已有客户。(6) 显示界面:遍历显示表中所有客户所有信息。(7) 消费界面:按客户ID对已有客户进行消费操作。1.2.3 数据构造中单链表C#实现对于单链表操作,重要用到两个类,一

5、种是Node类,一种是List类。Node类重要是建立节点类,这个类包括数据内容data和“指针”next用于指向下一种节点,实现单链表连接。List类重要是进行对单链表各种操作:v 初始化头节点为空链表。v 求单链表长度。v 清空单链表。v 判断链表与否为空。v 在单链表尾部追加数据元素。v 在单链表第i个结点位置前插入一种值为value结点。v 删除单链表第i个结点,只是修改引用域,逻辑上删除,由垃圾回收器回收。v 获得单链表中第i个数据元素。v 在单链表中查找值为value结点。所有操作都是基于List中私有变量head和通过办法得到长度,运用她们实现节点查找和定位。1.2.4 客户抽象

6、客户用类进行抽象建模,在客户类Consumer中定义有关字段(信息)、属性(字段操作方式)、构造办法(客户创立方式)和实例办法(操作函数)。所要定义属性、字段和办法参见图-1。 图-1 客户类构造图-1中类要调用消费办法时,消费办法又调用计算折扣办法。左边一列没有注释内容为类中各字段相应属性,用于对外写入和读入字段值。右边带有注释内容为属于类字段,是对客户信息抽象。二、需求分析2.1 客户(管理对象)需求2.1.1 客户基本信息注册登记时,每个客户均有唯一ID,在以便管理基本上,管理员可对客户基本个人信息,如ID,姓名,电话等等,进行增长、删除、修改和查找,但是无法直接修改客户合计消费、享有优

7、惠、积分,这三个信息是执行消费操作时由系统后台自动更改。2.1.2 积分设立当顾客每消费一次,都由管理员用系统执行添加消费操作,操作成功就有一笔积分与此前积分进行累加,记录在系统中,并按照有关积分政策,可享有打折优惠等,或合计一定积分,可为会员类型进行升级。2.1.3 消费设立在系统中,每次消费操作得到管理员输入有效消费金额,调用折扣计算函数访问客户享有优惠信息,计算出实际支付款,显示次实付款以及本次消费享有优惠,购买成功后显示最新积分。2.2 数据需求应使用string对每个客户基本信息进行存储。顾客消费、积分用double类型存储。然后运用链表存储构造将顾客所有信息进行保存。继而完毕各种功

8、能。2.3题目功能v 采用一定存储构造进行客户信息存储;v 对客户信息可以进行修改、删除、添加;v 可以依照消费状况进行客户积分累加;v 依照积分状况,对客户实行不同限度打折优惠;2.4系统各项功能描述2.4.1依照不同积分区间对客户进行打折详细如下:积分满500享有1元优惠,积分满1000享有2元优惠,积分满享有5元优惠,积分满5000享有9折优惠,积分满10000享有VIP7折优惠。 2.4.1用例分析v 用例1v 用例名:录入客户及商品信息行为者:超市管理员v 目:完毕对客户及商品信息录入管理v 过程描述:v 录入客户(商品)详细信息涉及客户姓名、身份证号、及既有积分(商品名、商品序列号

9、、商品价格、商品数量)通过客户文献in.txt(in2.txt)文献或者键盘输入读取客户(商品)信息对键盘输入客户积分初始化为0;输入客户(商品)名称能查找到相应信息;依照客户积分信息及打折信息给客户实现打折优惠;v 异常解决:无。v 用例2v 用例名:客户信息管理。行为者:超市管理员。v 目:完毕对客户信息管理。v 过程描述:v 超市管理员输入客户姓名和ID号。对客户进行相应增、删、查、改操作并能对的显示客户信息对客户进行报表记录;保存客户信息录入客户信息文献out.txtv 异常解决:无。v 用例3v 用例名:客户消费管理。行为者:超市管理员。v 目:完毕对客户购买消费计算并依照客户消费返

10、回客户积分;v 过程描述:v 超市管理员输入客户身份证号查找到相应客户并显示客户积分及打折信息,如果客户不存在则打印此顾客不存在;输入客户购买商品序号打印出商品信息。输入客户购买商品数量并累加到consumer消费中;退出系统;v 异常解决:无。三、技术方案3.1软硬件环境3.1.1 系统软件:本课程设计系统开发平台为WindowsXP及以上。程序设计语言为C#语言,程序运营平台可Windws98/XP/Seven。需要Visual Studio 编程软件和.Net Framework组件。3.1.2系统硬件需求:Pentium4800MHZ或者更高主频CPU512MB以上内存。3.2配备方案

11、Windows7操作系统,VS开发工具及平台。3.3 核心技术C#窗体应用技术,c#泛型和面向对象编程,数据构造原理及算法,单链表基本操作。四、 总体设计4.1 系统功能架构系统功能架构参见图-2: 图-2 系统功能构造4.2 各模块功能架构4.2.1添加 图-3 添加客户4.2.2删除 图-4 删除客户4.2.3修改 图-5 修改客户4.2.4查找 图-6 查找客户4.2.5添加消费 图-7 添加消费4.2.6 查看所有 图-8 查看所有五、详细设计5.1节点定义class Node / 定义单链表数据构造 private T data;/数据域 字段 public T Data / 数据域

12、 属性 get return data; set data = value; private Node next; /指针域 字段 public Node Next /指针域 属性 get return next; set next = value; /构造函数 public Node() /空节点 this.data = default(T); this.next = null; public Node(T data,Node next) /数据域,指针域 节点 this.data = data; this.next = next; public Node(T data) /数据域 节点 n

13、ext = null; this.data = data; public Node(Node next) /指针域 节点 this.next = next; 5.2单链表实现以及基本操作接口5.2.1单链表字段、构造办法: class List :IListDS private Node head;/ 单链表头结点 字段 / 头结点属性 public Node Head get return head; set head = value; / 构造办法 public List() head = null;5.2.2 单链表类接口:/接口定义 public interface IListDS i

14、nt GetLength();/求长度 void Clear();/清空操作 bool IsEmpty();/判断线性表与否为空 bool Append(T item);/附加操作 bool Insert(T item,int i);/插入操作 T Delete(int i);/删除操作 T GetElem(int i);/取表元 int Locate(T value);/按值查找 5.3 各功能模块流程图5.3.1 添加流程 图-9 添加流程 5.3.2删除流程图-10 删除流程5.3.3修改流程、查找流程图-11 修改流程、查找流程5.3.4添加消费、查看所有客户流程图-12 添加消费、查

15、看所有客户流程六、软件测试6.1针对目的系统测试方案6.1.1测试流程添加几种用例,删除其中之一,再试着查找不存在客户,给存在客户添加消费,查看所有客户信息。6.1.2用例以及测试成果添加4个客户-ID 姓名 身份证号 电话 会员类型 -a a a a 普通, b b b b 普通, c c c c 普通, d d d d VIP,删除a,修改b为ba ba ba ba VIP,查找f,为c添加消费500元,查看所有客户。 测试成果: |-ID-|-姓名-|-身份证号-|-电话-|会员类型|-合计消费-|-积分-|享有优惠|1 babababaVIP00打七折2 cccc普通500500减1元

16、3 ddddVIP00打七折6.1.3测试结论程序可以正常增删改除客户,具备一定和谐性。七、总结在本次课程设计当中,我对许多以往掌握不够纯熟或者是使用较少而易忽视知识点有了一定掌握,例如说泛型,单链表基本操作,new和delete动态内存分派与内存空间释放,通过设计前对整个客户积分系统分析,使我对面向对象构造化程序设计有了更深一层次结识,通过对顾客需求所作人性化分析,在设计程序过程中,我更加合理构建了可以最大限度满足顾客需求系统功能,使顾客在使用时可以随心所欲,在编写代码过程当中,我通过查阅关于资料和分析实例,从中学到了诸多可以不断优化自己代码,可以提高代码运用率知识,并且更加合理构建了各个知

17、识点之间联系,充分运用了循环和选取性语句,在存储过程中,对文献某些知识也有了一种深层次理解和掌握,对于如何修改文献信息以及保存有了一定概念和运用。固然,在代码编写过程中,也遇到了许多问题,我通过自身努力去改正它们,在这个过程中我也学到了诸多东西,在代码调试过程中,我遇到了许多此前所没有遇到过错误,在教师悉心指引和自己努力思考下, 我最后把这些问题一一解决掉,并把教训紧记在心,努力使自己得到更大收获和提高。总之,在本次课程设计过程中,我一方面从代码编写中发现了某些解决问题所必要具备基本能力和素质,在设计程序时,我感受到了作为一名软件开发者所必要具备统筹安排,注重层次与构造素养,为我后来从事软件开

18、发工作标明了方向,自己设计最后实现为自己后来努力树立了信心,这次课程设计使我受益匪浅。附录1参照文献1 严蔚敏,吴伟民数据构造(C语言版)北京:清华大学出版社,.2 谭浩强C+程序设计(第2版)北京:清华大学出版社,.8.3 刘莉,李梅,姜志坚C#程序设计教程北京:清华大学出版社,.附录2 核心源代码v private void addButton_Click(object sender,EventArgs e) /单击添加页添加按钮函数:获取各文本框字符串,调用构造办法/创立新客户,以此调用构造链表Append()办法将新客户插入链表尾。 string type; if (radioButt

19、on_Normal.Checked = true) type = 普通; else type = VIP; Consumer con = new Consumer(textBoxID.Text, textBoxName.Text, textBoxIDnum.Text, textBoxTel.Text, type ); L.List.Append(con); MessageBox.Show(ID: + con.IID + ,姓名: + con.Name + ,身份证号: + con.IIDnum + ,电话: + con.Tel + ,会员类型: + con.Type + 。 + n客户总数:

20、+ L.List.GetLength(),添加客户成功!); this.Close(); v private void modButton_Click(object sender,EventArgs e) /单击修改页修改按钮函数 /*省略:i值获取和基本信息参数获取*/ Consumer con = new Consumer( /*省略:基本信息参数*/ /旧节点合计消费 L.List.GetElem(i).PayoutSum, /旧节点积分 L.List.GetElem(i).Integral ); L.List.Insert(con,i); /修改实现:1.先在i位置插入新节点 L.Li

21、st.delete(value); / 2.删除旧节点 this.Close();/*省略消息对话框提示代码,与上文相似*/ /*删除和查找代码实现与以上添加和修改原理相似,故不赘述!*/v private void confButton_Click(object sender,EventArgs e) /添加消费页拟定按钮单击函数 /*省略:i值获取*/ if (i = 1) double amount = 0; try amount = double.Parse(textBox_amount.Text); if (amount 0) textBox_amount_show.Text = a

22、mount.ToString(); textBox_discountRate_show.Text = L.List.GetElem(i).DiscountRate; double payout = L.List.GetElem(i).consume(textBox_amount.Text); textBox_payout_show.Text = payout.ToString(); label_successBuy.Visible = true; textBox_integral_show.Visible = true; textBox_integral_show.Text = L.List.

23、GetElem(i).Integral.ToString(); else MessageBox.Show(请重新输入金额!); catch (FormatException e1) MessageBox.Show(请重新输入金额!); else MessageBox.Show(客户ID不存在!); /this.Close(); v private void viewForm_Load(object sender,EventArgs e) /查看所有客户页加载函数:用循环获取每项元素各个字段值,加到富文本框richTextBox_view文本内容中。 string title = + |-ID-

24、| + t + |-姓名-| + t + |-身份证号-| + t + |-电话-| + t + |会员类型| + t + |-合计消费-| + t + |-积分-| + t + |享有优惠| + n; richTextBox_view.Text = title; for (int i = 1;i = L.List.GetLength();i+) Consumer item = L.List.GetElem(i); string str = i.ToString() + + item.IID + t + item.Name + t + item.IIDnum + t + item.Tel + t + item.Type + t + item.PayoutSum.ToString() + t + item.Integral.ToString() + t + item.DiscountRate + n; richTextBox_view.Text += str;

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服