《超市会员管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《超市会员管理系统课程设计报告.docx(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 兰州商学院陇桥学院 信息工程系课程设计报告课 程 名 称: C#课程设计 设 计 题 目:超市会员管理系统 系 别:信息工程系 专 业 (方 向):计算机科学与技术(网络工程方向) 年 级、 班:2012级本科班 学 生 姓 名:XXX 学 生 学 号:XXXXXXXX 本 组 组 员:XXXXXXXXXXXXXXXX 指 导 教 师:杨 光 2014 年 12 月 26日目录一、系统开发的背景1二、系统分析与设计1(一)系统功能要求1(二)系统模块结构设计1三、系统的设计与实现2(一)登陆2(二)会员信息5(三)会员管理8(1) 会员管理9(2)购物信息管理17(四)信息统计18(五)系统
2、管理21四、系统测试23(一)测试登陆模块23(二)会员信息模块23(三)会员管理模块24(四)信息统计模块25(五)系统管理模块27五、总结27六、附件(代码、部分图表)281、源代码282、图表47超市会员管理系统一、系统开发的背景社会生活的现代化,使得市场的走向发生巨大变化,由于经济的发展,许多大型的现代化超市应运而生。现在超市吸引顾客最普遍的做法就是实行会员制,超市的会员可以享受不同程度的优惠,从而达到吸引顾客,刺激消费的目的。建立实用的超市会员管理系统对超市的会员管理有很大的帮助,可以协助工作人员进行会员的信息登记、更新。因此,为了优化超市会员制度的计算机管理,编写了此系统。二、系统
3、分析与设计(一) 系统功能要求超市会员管理系统应具备以下功能:1、加入会员的基本信息,包括:成为会员的基本条件、优惠政策、优惠时间等。2、会员的基本信息,包括姓名、性别、年龄、工作单位、联系方式等。3、会员购物信息:购买物品编号、物品名称、所属种类,数量,价格等。4、会员返利信息,包括会员积分的情况,享受优惠的等级等。5、对货物流量及消费人群进行统计输出。(二) 系统模块结构设计通过对系统功能的分析,学生综合测评系统功能如图1所示。图1 超市会员管理系统功能图通过上图的功能分析,把整个系统划分为4个模块:1、会员信息,该模块主要实现:会员基本信息(会员编号、会员卡号、姓名、性别、年龄、会员等级
4、、当前积分、联系方式)的输出;2、会员管理,该模块主要实现:会员管理(会员的查询、删除、修改和添加)信息,购物信息管理(通过输入会员编号来查询会员的购物信息);3、信息统计,该模块主要实现:物品流量统计(通过柱状图来显示物品的消费情况),消费人群统计(通过柱状图来统计人群的消费情况);4、系统管理,该模块主要实现:对用户名和密码的修改,能够更好的管理超市会员管理系统。三、系统的设计与实现(一) 登陆流程图如下图所示:图2登陆界面流程图该模块的具体代码如下所示。using System;using System.Collections.Generic;using System.Component
5、Model;using System.Data;using System.Drawing;using System.Text;using System.Linq;using System.Windows.Forms;using DevExpress.XtraEditors;namespace 超市会员管理系统 public partial class LoginForm : DevExpress.XtraEditors.XtraForm public LoginForm() InitializeComponent(); bool formMove = false; Point formPoin
6、t; #region 登陆按钮实现用户名、密码的验证 private void btnOK_Click(object sender, EventArgs e) if (Login.Login.isEnable(txtUserName.Text.Trim(), txtPassword.Text.Trim() MainForm form = new MainForm(); form.Visible = true; this.Visible = false; else lblShow.Text = 输入有误请重新输入! txtUserName.Clear(); txtPassword.Clear()
7、; txtUserName.Focus(); #endregion #region 退出程序 private void pictureBox2_Click(object sender, EventArgs e) Application.Exit(); #endregion #region 登录界面的移动 private void pictureBox1_MouseMove(object sender, MouseEventArgs e) if (formMove = true) Point mousePos = Control.MousePosition; mousePos.Offset(fo
8、rmPoint.X, formPoint.Y); Location = mousePos; private void pictureBox1_MouseDown(object sender, MouseEventArgs e) formPoint = new Point(); int xOffset; int yOffset; if (e.Button = MouseButtons.Left) xOffset = -e.X - SystemInformation.FrameBorderSize.Width; yOffset = -e.Y - SystemInformation.CaptionH
9、eight - SystemInformation.FrameBorderSize.Height; formPoint = new Point(xOffset, yOffset); formMove = true; private void pictureBox1_MouseUp(object sender, MouseEventArgs e) if (e.Button = MouseButtons.Left) formMove = false; #endregion #region登陆界面加载,连接数据库 private void LoginForm_Load(object sender,
10、EventArgs e) Login.Login.linkDataBase(); #endregion (二) 会员信息该模块的流程图如下图所示:图3会员信息流程图该模块的具体代码如下所示。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Linq;using System.Windows.Forms;using DevExpress.XtraEditors;
11、using DBHelper;using System.Data.SqlClient;namespace 超市会员管理系统 public partial class MemberMessageForm : DevExpress.XtraEditors.XtraForm public MemberMessageForm() InitializeComponent(); #region 全局变量 DataSet dataSet = MainForm.dataSet; DBhelper dbHelper = MainForm.dbhelper; String dataDir; String strM
12、emberCardNo; #endregion #region 按会员卡卡号查询信息 private void simpleButton1_Click(object sender, EventArgs e) #region 获取当前项的根目录路径 dataDir = dbHelper.getCurrentDataPath(); #endregion strMemberCardNo = txtMessg.Text.Trim(); if (string.IsNullOrEmpty(strMemberCardNo) MessageBox.Show(请输入会员卡号, , MessageBoxButto
13、ns.OK, MessageBoxIcon.Warning); return; try #region 定向临时数据库中的表主键 DataTable dt = dbHelper.getDataTable(MemberMssg, 会员卡编号); #endregion #region指向临时数据库中的指定的值得行 DataRow dr = dbHelper.getDataRow(dt, strMemberCardNo); #endregion #region 将临时数据库中的表的值返回到界面中 updataForm(dr); #endregion catch (Exception ex) Mess
14、ageBox.Show(ex.StackTrace); #endregion #region更新界面面板信息 private void updataForm(DataRow dr) #region 更新基本信息界面 if (dr = null) MessageBox.Show(无该项数据记录, , MessageBoxButtons.OK, MessageBoxIcon.Warning); return; txtMemberAge.Text = dr年龄.ToString(); txtMemberCard.Text = dr会员卡编号.ToString(); txtMemberGrade.Te
15、xt = dr会员等级.ToString(); txtMemberName.Text = dr姓名.ToString(); txtMemberNo.Text = dr会员编号.ToString(); txtMemberSex.Text = dr性别.ToString(); txtMemberPhone.Text = dr联系方式.ToString(); txtUnit.Text = dr工作单位.ToString(); txtCurrentIntegral.Text = dr现有积分.ToString(); txtEndDate.Text = dr终止日期.ToString(); try me
16、mberPirecture.Image = Image.FromFile(dataDir+string.Format(picture0.jpg, dr头像.ToString(); catch (Exception ex) memberPirecture.Image = Image.FromFile(dataDir+string.Format(picturedefault.png); #endregion #region 更新消费界面板 dataSet.TablesGoodsMssg.DefaultView.RowFilter = String.Format(会员卡编号=0, strMember
17、CardNo); dataGridView1.DataSource = dataSet.TablesGoodsMssg.DefaultView; dataGridView1.AutoSize = true; dataGridView1.Visible = true; #endregion #endregion (三) 会员管理该模块的流程图如下图所示:图4会员管理流程图(1) 会员管理该模块的具体代码如下所示。namespace 超市会员管理系统 public partial class MemberManageForm : DevExpress.XtraEditors.XtraForm pu
18、blic MemberManageForm() InitializeComponent(); #region全局变量 DataSet dataSet = MainForm.dataSet; DBhelper dbHelper = MainForm.dbhelper; SqlDataAdapter sda = null; DataRow dr; DataRow drs; String dataDir; Boolean isDataBindings = false; Boolean changeState = false; Boolean deleteState = false; Boolean
19、addState = false; #endregion #region 显示指定信息到预览界面 private void btnOK_Click(object sender, EventArgs e) sda = dbHelper.getDataAdapter(); String txtMessg = null; String condition = null; #region 获取搜索条件值 try txtMessg = txtMssg.Text.Trim(); condition = comboBox1.SelectedItem.ToString().Trim(); if (string
20、.IsNullOrEmpty(txtMessg) & string.IsNullOrEmpty(condition) throw new Exception(); catch (Exception ex) MessageBox.Show(请输入信息, , MessageBoxButtons.OK, MessageBoxIcon.Warning); return; dataDir = dbHelper.getCurrentDataPath(); #endregion #region 条件查询 Boolean flag = getDataRow(condition, txtMessg); #end
21、region #region 界面信息更新 if (flag = true) updataForm(); #endregion #endregion #region 按钮单击操作 private void comboBox1_SelectedValueChanged(object sender, EventArgs e) txtMssg.EditValue = ; private void btnAdd_Click(object sender, EventArgs e) if (btnAdd.Text = 确定) btnChange(); if (addState = true) #regio
22、n 向DataSet中D的?DataTable追加一行记录 DataRow newDataRow = dataSet.TablesMemberMssg.NewRow(); try newDataRow会员编号 = txtMemberNo.Text.ToString(); newDataRow姓名 = txtMemberName.Text.ToString(); newDataRow年龄 = Convert.ToInt32(txtMemberAge.Text); newDataRow性别 = txtMemberSex.Text.ToString(); newDataRow联系方式 = txtMe
23、mberPhone.Text.ToString(); newDataRow工作单位 = txtUnit.Text.ToString(); newDataRow起始日期 = DateTime.Now; newDataRow终止日期 = dateTimePicker1.Text; newDataRow积分类型 = ; newDataRow现有积分 = Convert.ToInt32(txtCurrentIntegral.Text); newDataRow会员卡编号 = txtMemberCard.Text.ToString(); newDataRow会员等级 = txtMemberGrade.Te
24、xt.ToString(); dataSet.TablesMemberMssg.Rows.Add(newDataRow); catch (Exception ex) MessageBox.Show(添加记录失败!n); return; dataSet.AcceptChanges(); dbHelper.addDataBase(newDataRow); MessageBox.Show(添加纪录成功!); #endregion else if (changeState = true) #region 对dataset中的表进行修改 dataSet.AcceptChanges(); MessageB
25、ox.Show( 修改记录成功!); #endregion else if (deleteState = true) #region 删除ydataset中的表的指定记录 String deleteMemNo = txtMemberCard.Text.Trim(); try DataColumn primaryKey = new DataColumn dataSet.TablesMemberMssg.Columns会员卡编号 ; dataSet.TablesMemberMssg.PrimaryKey = primaryKey dataSet.TablesMemberMssg.Rows.Remo
26、ve(dataSet.TablesMemberMssg.Rows.Find(deleteMemNo); catch (Exception ex) MessageBox.Show(数据记录删除失败,无该记录!); return; try DataColumn primaryKey = new DataColumn dataSet.TablesGoodsMssg.Columns购物编号 ; dataSet.TablesGoodsMssg.PrimaryKey = primaryKey; for (int i = 0; i dataSet.TablesGoodsMssg.Rows.Count; i+
27、) dataSet.TablesGoodsMssg.Rows.Remove(dataSet.TablesGoodsMssg.Rows.Find(deleteMemNo); catch (Exception ex) ; MessageBox.Show( 删除记录成功!); dbHelper.deleteDataBase(deleteMemNo); #endregion addState = false; changeState = false; deleteState = false; removeBindingData(); else btnChange(); addState = true;
28、 #region 清空groupbox中DtextBox中的值 foreach (Control conl in groupControl2.Controls) if (conl is TextBox) (conl as TextBox).Clear(); #region 获取主键的最大值并加称为新添加的主键 DataRow drs = null; try / drs = dataSet.TablesMemberMssg.Select(1=1, dataSet.TablesMemberMssg.Columns会员编号.ColumnName + DESC ); catch (Exception
29、ex) MessageBox.Show(ex.StackTrace); txtMemberNo.Text = (Convert.ToInt32(drs0会员编号) + 1).ToString(); try drs = dataSet.TablesMemberMssg.Select(1=1, dataSet.TablesMemberMssg.Columns会员卡编号.ColumnName + DESC ); catch (Exception ex) MessageBox.Show(ex.StackTrace); txtMemberCard.Text = (Convert.ToInt32(drs0会员卡编号?) + 1).ToString(); #endregion foreach (Control conl in groupControl3.Controls) if (conl is TextBox) (conl as TextBox).Clear(); txtMemberNo.Enabled = true; txtMemberCard.Enable
限制150内