会员管理系统_第1页
会员管理系统_第2页
会员管理系统_第3页
会员管理系统_第4页
会员管理系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、上海交通大学本科毕业论文基于VS2010+ACCESS的会员管理系统学 生:吴承 学 号:709101130003专 业:计算机网络导 师:齐开悦 学校代码:上海交通大学继续教育学院二一二年三月毕业论文声明本人郑重声明:1、此毕业论文是本人在指导教师指导下独立进行研究取得的成果。除了特别加以标注和致谢的地方外,本文不包含其他人或其它机构已经发表或撰写过的研究成果。对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。本人完全意识到本声明的法律结果由本人承担。2、本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被

2、查阅和借阅。本人授权上海交通大学网络教育学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。3、若在上海交通大学网络教育学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担(包括接受毕业论文成绩不及格、缴纳毕业论文重新学习费、不能按时获得毕业证书等),与毕业论文指导老师无关。作者签名: 吴承 日期:2012-03基于VS2010+ACCESS的会员管理系统摘 要在经济全球化的今天,建立以客户为中心的经营战略,可以加强企业和客户间的联系。对企业来讲,为客户提供一流的服务,是企业建立品牌、实现差别化服务、取得竞争的利器。一直以来人们使

3、用传统人工的方式管理会员的基本档案,这种管理方式存在着许多缺点:效率低、保密性差,另外时间一长,将产生大量的文件和数据,对于查找、更新和维护都带来了不少的困难。而通过会员管理系统,企业就可以很轻松很方便的记录所有会员客户的资料,了解用户的兴趣爱好、消费特点、意向需求等;进而针对客户的需求,为其提供优质的个性化服务,还能为企业的产品开发、事业发展提供可靠的市场调研数据,是企业经营不可或缺的一个有利工具。同时,作为计算机应用的一部分,使用计算机对会员进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高本低等,这些优点极大地提高了会员管理的效率,也是企业的科学化、正规化管理,

4、与、存储量大、保密性好、寿命长、成先进科学技术接轨的重要条件。另外,在当前的经济形式下,采用本套系统可以提前进行资金回笼。在先前可以通过优惠充值又可以吸引大批的预消费客户。为以后的发展也奠定了良好的经济基础。本论文主要介绍了系统的分析,设计和开发的全部过程。开发工具为VS2010+ACCESS。目录毕业论文声明.2 摘要. 3 目录. 4 1 选题背景及项目概述. 5 1.1 引言. 5 1.2 项目概述 52 系统需求分析 6 2.1 功能需求 6 2.2 业务流程 63 开发工具介绍 74 数据库设计84.1 数据库技术概述 84.2 数据库选择 94.3 数据库的E-R图 104.4 数

5、据表格 105 会员管理系统详细设计12 5.1 用户模块设计12 5.1.1 新增会员12 5.1.2 删除会员13 5.2 消费模块设计 16 5.2.1 刷卡消费16 5.2.2 现金消费 17 5.2.3 充值管理 18 5.3 产品管理设计 19 5.3.1 新增产品 19 5.3.2 删除产品 205.4 统计管理设计 22 5.4.1 消费记录22 5.4.2 统计数据23 5.5 管理员设计 25 5.1.1 新增管理员25 5.1.2 修改密码26 5.6 其他配置文件 266 系统运行环境277 系统测试28总结30选题背景及项目概述1.1引言在当今经济的形式下,人民币不断

6、贬值,很多人都选择了投资。但亦是由于货币政策的印象,很多店铺在开店的时候资金短缺,这个时候很多店铺选择充值消费,以达到回收资金的目的。亦可通过打折充值来吸引客户。在日常经营中,也需要用户的信息能够及时的告知大家,是否推出了新的产品供大家使用。以及在营业时需要统计,打印等等功能。因此需要一套系统来代替传统手工统计。1.2项目概述针对上述的情况,有必要开发一套会员管理系统对店铺平时的管理。此项目主要通过Visual Studio 2010+ACCESS开发,无需配置与架设服务器,备份只需将数据库拷贝即可。并且加入刷ID卡功能,需刷卡设备。针对店铺销售的实际情况,设置为:新设会员->冲费-&g

7、t;刷卡消费(付现金)并记录,以及最后统计共消费的清单。其中需要设置商品,管理员等。系统需求分析2.1 功能需求本课题要实现的是店铺会员系统,根据程序结构化设计的要求,把整个项目分为四大块,分别是商品管理,会员管理,统计管理与消费管理。1.商品管理:主要实现对会员信息的添加、查询和删除的功能。2.会员管理: 主要实现对产品信息的添加、查询、和删除的功能。3.消费管理:主要实现对会员购物信息消费的功能。4.统计管理:主要实现消费信息的统计。商品管理 2.2 业务流程消费统计 会员消费 会员充值 新建会员 消费打印 开发工具介绍Visual Studio 2010Visual Studio是微软公

8、司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview-CTP),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。Microsoft Office Acc

9、essMicrosoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。其实Access 也是微软公司另一个通讯程序的名字,想与 ProComm 以及其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。Access在2000年的时候成为了计算机等级考试中的计算机二级的一种数据库语言并且因为它的易学易用的特点正逐步取代传统的VFP成为二级中最受欢

10、迎的数据库语言。数据库设计4.1 数据库技术概述数据库是用户存放数据、访问数据、操作数据的存储仓库,用户的各种数据被有组织的存放在数据库中,在需要的时候可以随时被有权利的用户查询、统计,新的数据库可以被添加进去,不需要的数据库可以被删除,一些旧的数据库可以被修改,所以数据库就是被有效的组织在一起的数据集合总的来说,数据库的设计对系统的经济性、功能性和效率有很大的影响,一个好的数据库,要求在设计时尽量避免数据的多余,另外,还要尽可能提高数据的存取速度。数据库设计时速度与空间在范式上是相互矛盾的。一方面按规范化理论的要求,关系模式应尽量取高级范式,尤其对记录数较多的关系,低级范式将会造成存储的大量

11、重复,是空间遭受严重浪费;另一方面从存取速度上考虑,应该尽量做到一个模式涉及的属性越多越好,相互运算越少越好,这样,又应取低级范式。因此我们在设计数据库时要严格地探讨它的使用环境,充分了解用户的需求,清楚地掌握数据库系统的特点。经过综合的评价和分析后设计出的数据库应满足以下要求:1. 数据库信息要能充分体现出用户使用系统的需求。 (2) 能够支持用户对数据进行的所有处理。(3) 能够容易被数据库管理系统运行维护。(4) 数据一致性、完整性好,无更新异常。4.2 数据库选择本系统选用的是ACCESS数据库。其最大优点在于无需架设任何服务器与环境。简单实用,备份简单。Access 是微软公司推出的

12、基于Windows的桌面关系数据库管理系统(RDBMS,即Relational Database Management System),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。 Access能够存取 Access/Jet、Microsoft SQL Server、Oracle(甲骨文软件公司),或者任何 ODBC 兼容数据库内的资料。熟练的软件设计

13、师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的"进阶用户"则能使用它来开发简单的应用软件。虽然它支援部分面向对象(OOP)技术,但是未能成为一种完整的面向对象开发工具。4.3 数据库的E-R图(1)会员管理系统整体E-R图如图3.1所示4.4 数据表格Admin_info(管理员表格)Buy_bk(购买记录)Card_user(会员信息表)Pd_info(品牌表)Product_Info(商品表)会员管理系统详细设计5.1 用户模块设计 5.1.1 新增会员 此界面记录了用户的一些详细信息,针对以后有新产品的发布,针对用户的爱好能及时的通知用户。也可以

14、了解到用户的职业,推销分类的产品。预设充值金额。实现代码:private void button1_Click(object sender, EventArgs e) try UserInfo user = new UserInfo(); user.Carduser = tex_card.Text; user.Cardbak = this.tb_bk.Text; user.Cardpwd = this.tex_pwd.Text; user.Cardstata = this.cmb_stata.Checked ? "是" : "否" user.Cardti

15、me = tex_time.Text; user.Useraddr = tex_addr.Text; user.Userbirth = tex_addr.Text; user.Userjob = tex_job.Text; user.Userlove = tex_love.Text; user.Username = tex_name.Text; user.Userphone = tex_phone.Text; user.Usersex = comboBox1.SelectedItem.ToString(); user.Usertel = tex_tel.Text; user.Price = C

16、onvert.ToDouble(tex_Price.Text); int ret = UserServices.AddUser(user); if (ret > 0) MessageBox.Show("添加成功!"); this.Close(); else MessageBox.Show("添加失败!"); catch (Exception ex) MessageBox.Show("输入错误"); 5.1.2 删除会员 此界面显示所有的会员信息,如需删除,只需选择相应的会员点击删除。语句通过数据库中唯一的ID号进行删除。实现代码

17、:private void button2_Click(object sender, EventArgs e) string str = MessageBox.Show("你确定要删除选中项目吗?", "警告", MessageBoxButtons.YesNo).ToString(); if (str = "Yes") if (this.dataGridView1.SelectedRows.Count > 0) for (int i = 0; i < dataGridView1.SelectedRows.Count; i+

18、) DataGridViewRow dr = dataGridView1.SelectedRowsi; int ret =UserServices.DelUser(int.Parse(dr.Cells10.Value.ToString(); if (ret > 0) else MessageBox.Show(string.Format("第0条删除失败!", i + 1); else DataGridViewCell dc = this.dataGridView1.SelectedCells0; DataGridViewRow dr = dc.OwningRow; i

19、nt ret =UserServices.DelUser(int.Parse(dr.Cells10.Value.ToString(); if (ret > 0) else MessageBox.Show("操作失败!"); this.dataGridView1.DataSource = UserServices.GetAllInfo(); 5.2消费模块设计 5.2.1 刷卡消费 此界面可以输入商品号*数量自动获得消费总金额,可以通过现金支付以及会员支付两种方式进行支持。方便了一些没有会员卡的用户。public Form_Pay(float p, Form_BuyBK

20、 f,List<BuyFz> tlist) InitializeComponent(); price = p; CenterToParent(); this.textBox1.Select(); fc = f; this.tex_in.Text = p.ToString("0.00"); for (int i = 0; i < tlist.Count; i+) BuyBk bb = new BuyBk(); bb.BuyFrom = "system" bb.Buyprice = tlisti.Price.ToString(); bb.B

21、uyproduct = tlisti.Pname; bb.Buytime = DateTime.Now.ToString(); bb.Count = tlisti.Count; blist.Add(bb); 5.2.2 现金消费 现金支付界面,应付金额自动生成。只需填入收到金额,自动活动找零。并且可以实现打印。private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) Graphics cp = e.Graphics; Font f = fontDialog

22、1.Font; SolidBrush br = new SolidBrush(Color.Black); int height = 15; cp.DrawString("商品名 单价 数量",f, br,new PointF(); for (int i = 0; i < blist.Count; i+) string str = getstr(7, blisti.Buyproduct) + getstr(6, blisti.Buyprice) + getstr(4,blisti.Count.ToString(); cp.DrawString(str, f, br, 0

23、.0f, height, new StringFormat(); height += 15; cp.DrawString("-", f, br, 0.0f, height, new StringFormat(); height += 15; float sun = 0.00f; for (int i = 0; i < blist.Count; i+) sun += float.Parse(blisti.Buyprice); cp.DrawString("总价:¥"+sun.ToString("0.00"), f, br, 0.0

24、f, height, new StringFormat(); 5.2.3 充值管理 通过刷卡器刷卡自动回车,能得到会员所有的信息。然后按照金额进行充值。简单又高效。private void button2_Click(object sender, EventArgs e) float pri = float.Parse(this.jine.Text) + float.Parse(this.label6.Text); pri = float.Parse(pri.ToString("0.00"); int ret = UserServices.Pay_pro(pri, this

25、.textBox1.Text); if (ret > 0) MessageBox.Show("充值成功!"); this.textBox1.Text = "" this.textBox1.Focus(); this.label6.Text = pri.ToString(); this.jine.Text = "0" else MessageBox.Show("充值失败!"); this.Close(); 5.3 产品管理设计 5.3.1 新增产品 添加消费商品,设置一些产品信息。别可删除。实现代码privat

26、e void button3_Click(object sender, EventArgs e) ProductInfo product = new ProductInfo(); product.Productaddr = this.tex_productaddr.Text; product.Productdru = this.tex_productdru.Text; product.Productname = this.text_productname.Text; product.Productnum = this.tex_productnum.Text; product.Productpd

27、 = this.cmb_pd.SelectedText; product.Productpprice = float.Parse( this.tex_productpprice.Text); product.Productprice =float.Parse( this.tex_productprice.Text); if (this.chk_prista.Checked) product.Productpristata = "是" else product.Productpristata = "否" if (this.chk_psta.Checked)

28、 product.Productstata = "是" else product.Productstata = "否" product.Producttype = "无类型" int ret = ProductServices.AddProduct(product); if (ret > 0) MessageBox.Show("添加成功!"); this.dataGridView1.DataSource = ProductServices.GetAllProduct(); else MessageBox.Sh

29、ow("添加失败!"); 5.3.2 删除产品private void button4_Click(object sender, EventArgs e) string str = MessageBox.Show("你确定要删除选中项目吗?", "警告", MessageBoxButtons.YesNo).ToString(); if (str = "Yes") if (this.dataGridView1.SelectedRows.Count > 0) for (int i = 0; i < data

30、GridView1.SelectedRows.Count; i+) DataGridViewRow dr = dataGridView1.SelectedRowsi; int ret = ProductServices.DelProduct(int.Parse(dr.Cells6.Value.ToString(); if (ret > 0) else MessageBox.Show(string.Format("第0条删除失败!", i + 1); else DataGridViewCell dc = this.dataGridView1.SelectedCells0

31、; int ret = ProductServices.DelProduct(int.Parse(dr.Cells0.Value.ToString(); if (ret > 0) else MessageBox.Show("操作失败!"); MessageBox.Show("操作成功!"); this.dataGridView1.DataSource = ProductServices.GetAllProduct(); 5.4 统计管理设计 5.4.1 消费记录 能查询相应一段时间内的消费记录。 public static List<BuyB

32、k> GetAllBuyBkByTime(string begintime,string endtime) string sql = string.Format( "select * from buy_bk where buy_time between #0# and #1#",begintime,endtime); OleDbDataReader dr = Dbhelper.ExecuteReader(sql); List<BuyBk> list = new List<BuyBk>(); while (dr.Read() BuyBk by =

33、 new BuyBk(); by.Buyid = int.Parse(dr0.ToString(); by.Buyproduct = dr1.ToString(); by.Buyprice = dr2.ToString(); by.Buytime = dr3.ToString(); by.Count = int.Parse(dr4.ToString(); by.BuyFrom = dr5.ToString(); list.Add(by); dr.Close(); return list; 5.4.2 统计数据 能统计一段时间内,会员与非会员的消费统计。public partial class

34、Form_dispPk : Form / public List<BuyBk> blist; public Form_dispPk() InitializeComponent(); CenterToParent(); List<BuyBk> list = BuyBkServices.GetAllBuyBk(); dataGridView1.DataSource = list; / blist = list; float sun = 0f; float disp = 0f; float user = 0f; for (int i = 0; i < list.Coun

35、t; i+) sun += float.Parse(listi.Buyprice); if (listi.BuyFrom = "system") disp += float.Parse(listi.Buyprice); else user += float.Parse(listi.Buyprice); this.lab_dis.Text = disp.ToString("0.00"); this.lab_sun.Text = sun.ToString("0.00"); this.lab_user.Text = user.ToStrin

36、g("0.00"); private void button1_Click(object sender, EventArgs e) if (this > 0 && this>0) List<BuyBk> list = BuyBkServices.GetAllBuyBkByTime(this.tex_begin.Text, this.tex_end.Text + " 23:59"); dataGridView1.DataSource = list; float sun = 0f; float disp = 0f; f

37、loat user = 0f; for (int i = 0; i < list.Count; i+) sun += float.Parse(listi.Buyprice); if (listi.BuyFrom = "system") disp += float.Parse(listi.Buyprice); else user += float.Parse(listi.Buyprice); this.lab_dis.Text = disp.ToString("0.00"); this.lab_sun.Text = sun.ToString(&quo

38、t;0.00"); this.lab_user.Text = user.ToString("0.00"); 5.5 管理员设计 5.5.1 新增管理员实现代码private void button6_Click(object sender, EventArgs e) AdminInfo admin = new AdminInfo(); admin.Adminname = this.tex_user.Text; admin.Username = this.tex_username.Text; admin.Userpwd = this.tex_pwd.Text; in

39、t ret = AdminServices.AddAdmin(admin); if (ret > 0) MessageBox.Show("操作成功!"); else MessageBox.Show("操作失败!"); this.dataGridView2.DataSource = AdminServices.GetALLAdmin(); 5.5.2 修改密码private void button1_Click(object sender, EventArgs e) admin.Userpwd = this.tex_pwd.Text; int ret = AdminServices.UpdataAdmin(admin); if (ret > 0) MessageBox.Show("操作成功"); 5.6 其他配置文件数据库连接配置脚本<?xml version="1.0" encoding="utf-8" ?><configuration> <connectionStrings> <add name="connstr" connectionString="Provider=Micr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论