版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 蘭州商學(xué)院隴橋?qū)W院 信息工程系課程設(shè)計(jì)報(bào)告課 程 名 稱: C#課程設(shè)計(jì) 設(shè) 計(jì) 題 目:超市會(huì)員管理系統(tǒng) 系 別:信息工程系 專 業(yè) (方 向):計(jì)算機(jī)科學(xué)與技術(shù)(網(wǎng)絡(luò)工程方向) 年 級(jí)、 班:2012級(jí)本科班 學(xué) 生 姓 名:XXX 學(xué) 生 學(xué) 號(hào):XXXXXXXX 本 組 組 員:XXXXXXXXXXXXXXXX 指 導(dǎo) 教 師:楊 光 2014 年 12 月 26日目錄一、系統(tǒng)開(kāi)發(fā)的背景1二、系統(tǒng)分析與設(shè)計(jì)1(一)系統(tǒng)功能要求1(二)系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)1三、系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)2(一)登陸2(二)會(huì)員信息5(三)會(huì)員管理8(1) 會(huì)員管理9(2)購(gòu)物信息管理17(四)信息統(tǒng)計(jì)18(五)系統(tǒng)
2、管理21四、系統(tǒng)測(cè)試23(一)測(cè)試登陸模塊23(二)會(huì)員信息模塊23(三)會(huì)員管理模塊24(四)信息統(tǒng)計(jì)模塊25(五)系統(tǒng)管理模塊27五、總結(jié)27六、附件(代碼、部分圖表)281、源代碼282、圖表47超市會(huì)員管理系統(tǒng)一、系統(tǒng)開(kāi)發(fā)的背景社會(huì)生活的現(xiàn)代化,使得市場(chǎng)的走向發(fā)生巨大變化,由于經(jīng)濟(jì)的發(fā)展,許多大型的現(xiàn)代化超市應(yīng)運(yùn)而生。現(xiàn)在超市吸引顧客最普遍的做法就是實(shí)行會(huì)員制,超市的會(huì)員可以享受不同程度的優(yōu)惠,從而達(dá)到吸引顧客,刺激消費(fèi)的目的。建立實(shí)用的超市會(huì)員管理系統(tǒng)對(duì)超市的會(huì)員管理有很大的幫助,可以協(xié)助工作人員進(jìn)行會(huì)員的信息登記、更新。因此,為了優(yōu)化超市會(huì)員制度的計(jì)算機(jī)管理,編寫(xiě)了此系統(tǒng)。二、系統(tǒng)
3、分析與設(shè)計(jì)(一) 系統(tǒng)功能要求超市會(huì)員管理系統(tǒng)應(yīng)具備以下功能:1、加入會(huì)員的基本信息,包括:成為會(huì)員的基本條件、優(yōu)惠政策、優(yōu)惠時(shí)間等。2、會(huì)員的基本信息,包括姓名、性別、年齡、工作單位、聯(lián)系方式等。3、會(huì)員購(gòu)物信息:購(gòu)買(mǎi)物品編號(hào)、物品名稱、所屬種類,數(shù)量,價(jià)格等。4、會(huì)員返利信息,包括會(huì)員積分的情況,享受優(yōu)惠的等級(jí)等。5、對(duì)貨物流量及消費(fèi)人群進(jìn)行統(tǒng)計(jì)輸出。(二) 系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)通過(guò)對(duì)系統(tǒng)功能的分析,學(xué)生綜合測(cè)評(píng)系統(tǒng)功能如圖1所示。圖1 超市會(huì)員管理系統(tǒng)功能圖通過(guò)上圖的功能分析,把整個(gè)系統(tǒng)劃分為4個(gè)模塊:1、會(huì)員信息,該模塊主要實(shí)現(xiàn):會(huì)員基本信息(會(huì)員編號(hào)、會(huì)員卡號(hào)、姓名、性別、年齡、會(huì)員等級(jí)
4、、當(dāng)前積分、聯(lián)系方式)的輸出;2、會(huì)員管理,該模塊主要實(shí)現(xiàn):會(huì)員管理(會(huì)員的查詢、刪除、修改和添加)信息,購(gòu)物信息管理(通過(guò)輸入會(huì)員編號(hào)來(lái)查詢會(huì)員的購(gòu)物信息);3、信息統(tǒng)計(jì),該模塊主要實(shí)現(xiàn):物品流量統(tǒng)計(jì)(通過(guò)柱狀圖來(lái)顯示物品的消費(fèi)情況),消費(fèi)人群統(tǒng)計(jì)(通過(guò)柱狀圖來(lái)統(tǒng)計(jì)人群的消費(fèi)情況);4、系統(tǒng)管理,該模塊主要實(shí)現(xiàn):對(duì)用戶名和密碼的修改,能夠更好的管理超市會(huì)員管理系統(tǒng)。三、系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(一) 登陸流程圖如下圖所示:圖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 超市會(huì)員管理系統(tǒng) public LoginForm() InitializeComponent(); bool formMove = false; Point formPoint; #region 登陸按鈕實(shí)現(xiàn)用戶名、密碼的驗(yàn)證 private void btnOK_Click(object sender
6、, 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 = "輸入有誤請(qǐng)重新輸入! txtUserName.Clear(); txtPassword.Clear(); txtUserName.Focus(); #endregion #region 退出程序 private void
7、 pictureBox2_Click(object sender, EventArgs e) Application.Exit(); #endregion #region 登錄界面的移動(dòng) private void pictureBox1_MouseMove(object sender, MouseEventArgs e) if (formMove = true) Point mousePos = Control.MousePosition; mousePos.Offset(formPoint.X, formPoint.Y); Location = mousePos; private void
8、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.CaptionHeight - SystemInformation.FrameBorderSize.Height; formPoint
9、 = new Point(xOffset, yOffset); formMove = true; private void pictureBox1_MouseUp(object sender, MouseEventArgs e) if (e.Button = MouseButtons.Left) formMove = false; #endregion #region登陸界面加載,連接數(shù)據(jù)庫(kù) private void LoginForm_Load(object sender, EventArgs e) Login.Login.linkDataBase(); #endregion (二) 會(huì)員信
10、息該模塊的流程圖如下圖所示:圖3會(huì)員信息流程圖該模塊的具體代碼如下所示。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;using DBHelper;using System.Data.SqlClient;namespace 超市會(huì)員管理
11、系統(tǒng) public partial class MemberMessageForm : DevExpress.XtraEditors.XtraForm public MemberMessageForm() InitializeComponent(); #region 全局變量 DataSet dataSet = MainForm.dataSet; DBhelper dbHelper = MainForm.dbhelper; String dataDir; String strMemberCardNo; #endregion #region 按會(huì)員卡卡號(hào)查詢信息 private void sim
12、pleButton1_Click(object sender, EventArgs e) #region 獲取當(dāng)前項(xiàng)的根目錄路徑 dataDir = dbHelper.getCurrentDataPath(); #endregion strMemberCardNo = txtMessg.Text.Trim(); if (string.IsNullOrEmpty(strMemberCardNo) MessageBox.Show("請(qǐng)輸入會(huì)員卡號(hào)", "", MessageBoxButtons.OK, MessageBoxIcon.Warning); ret
13、urn; try #region 定向臨時(shí)數(shù)據(jù)庫(kù)中的表主鍵 DataTable dt = dbHelper.getDataTable("MemberMssg", "會(huì)員卡編號(hào)"); #endregion #region指向臨時(shí)數(shù)據(jù)庫(kù)中的指定的值得行 DataRow dr = dbHelper.getDataRow(dt, strMemberCardNo); #endregion #region 將臨時(shí)數(shù)據(jù)庫(kù)中的表的值返回到界面中 updataForm(dr); #endregion catch (Exception ex) MessageBox.Show
14、(ex.StackTrace); #endregion #region更新界面面板信息 private void updataForm(DataRow dr) #region 更新基本信息界面 if (dr = null) MessageBox.Show("無(wú)該項(xiàng)數(shù)據(jù)記錄", "", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; txtMemberAge.Text = dr"年齡".ToString(); txtMemberCard.Text = dr"會(huì)員卡編
15、號(hào).ToString(); txtMemberGrade.Text = dr"會(huì)員等級(jí).ToString(); txtMemberName.Text = dr"姓名".ToString(); txtMemberNo.Text = dr"會(huì)員編號(hào).ToString(); txtMemberSex.Text = dr"性別".ToString(); txtMemberPhone.Text = dr"聯(lián)系方式".ToString(); txtUnit.Text = dr"工作單位".ToString(
16、); txtCurrentIntegral.Text = dr"現(xiàn)有積分.ToString(); txtEndDate.Text = dr"終止日期.ToString(); try memberPirecture.Image = Image.FromFile(dataDir+string.Format("picture0.jpg", dr"頭像.ToString(); catch (Exception ex) memberPirecture.Image = Image.FromFile(dataDir+string.Format("p
17、icturedefault.png"); #endregion #region 更新消費(fèi)界面板 dataSet.Tables"GoodsMssg".DefaultView.RowFilter = String.Format("會(huì)員卡編號(hào)='0'", strMemberCardNo); dataGridView1.DataSource = dataSet.Tables"GoodsMssg".DefaultView; dataGridView1.AutoSize = true; dataGridView1.Vis
18、ible = true; #endregion #endregion (三) 會(huì)員管理該模塊的流程圖如下圖所示:圖4會(huì)員管理流程圖(1) 會(huì)員管理該模塊的具體代碼如下所示。namespace 超市會(huì)員管理系統(tǒng) public partial class MemberManageForm : DevExpress.XtraEditors.XtraForm public MemberManageForm() InitializeComponent(); #region全局變量 DataSet dataSet = MainForm.dataSet; DBhelper dbHelper = MainFo
19、rm.dbhelper; SqlDataAdapter sda = null; DataRow dr; DataRow drs; String dataDir; Boolean isDataBindings = false; Boolean changeState = false; Boolean deleteState = false; Boolean addState = false; #endregion #region 顯示指定信息到預(yù)覽界面 private void btnOK_Click(object sender, EventArgs e) sda = dbHelper.getD
20、ataAdapter(); String txtMessg = null; String condition = null; #region 獲取搜索條件值 try txtMessg = txtMssg.Text.Trim(); condition = comboBox1.SelectedItem.ToString().Trim(); if (string.IsNullOrEmpty(txtMessg) && string.IsNullOrEmpty(condition) throw new Exception(); catch (Exception ex) MessageBo
21、x.Show("請(qǐng)輸入信息", "", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; dataDir = dbHelper.getCurrentDataPath(); #endregion #region 條件查詢 Boolean flag = getDataRow(condition, txtMessg); #endregion #region 界面信息更新 if (flag = true) updataForm(); #endregion #endregion #region 按鈕單擊操
22、作 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) #region 向DataSet中D的Ì?DataTable追加一行記錄 DataRow newDataRow = dataSet
23、.Tables"MemberMssg".NewRow(); try newDataRow"會(huì)員編號(hào)" = txtMemberNo.Text.ToString(); newDataRow"姓名" = txtMemberName.Text.ToString(); newDataRow"年齡" = Convert.ToInt32(txtMemberAge.Text); newDataRow"性別" = txtMemberSex.Text.ToString(); newDataRow"聯(lián)系方式
24、" = txtMemberPhone.Text.ToString(); newDataRow"工作單位" = txtUnit.Text.ToString(); newDataRow"起始日期" = DateTime.Now; newDataRow"終止日期" = dateTimePicker1.Text; newDataRow"積分類型" = " " newDataRow"現(xiàn)有積分 = Convert.ToInt32(txtCurrentIntegral.Text); new
25、DataRow"會(huì)員卡編號(hào)" = txtMemberCard.Text.ToString(); newDataRow"會(huì)員等級(jí)" = txtMemberGrade.Text.ToString(); dataSet.Tables"MemberMssg".Rows.Add(newDataRow); catch (Exception ex) MessageBox.Show("添加記錄失敗!n"); return; dataSet.AcceptChanges(); dbHelper.addDataBase(newDataR
26、ow); MessageBox.Show("添加紀(jì)錄成功!"); #endregion else if (changeState = true) #region 對(duì)dataset中的表進(jìn)行修改 dataSet.AcceptChanges(); MessageBox.Show(" 修改記錄成功!"); #endregion else if (deleteState = true) #region 刪除ydataset中的表的指定記錄 String deleteMemNo = txtMemberCard.Text.Trim(); try DataColumn
27、 primaryKey = new DataColumn dataSet.Tables"MemberMssg".Columns"會(huì)員卡編號(hào)" ; dataSet.Tables"MemberMssg".PrimaryKey = primaryKey dataSet.Tables"MemberMssg".Rows.Remove(dataSet.Tables"MemberMssg".Rows.Find(deleteMemNo); catch (Exception ex) MessageBox.Show
28、("數(shù)據(jù)記錄刪除失敗,無(wú)該記錄!"); return; try DataColumn primaryKey = new DataColumn dataSet.Tables"GoodsMssg".Columns"購(gòu)物編號(hào)" ; dataSet.Tables"GoodsMssg".PrimaryKey = primaryKey; for (int i = 0; i < dataSet.Tables"GoodsMssg".Rows.Count; i+) dataSet.Tables"G
29、oodsMssg".Rows.Remove(dataSet.Tables"GoodsMssg".Rows.Find(deleteMemNo); catch (Exception ex) ; MessageBox.Show(" 刪除記錄成功!"); dbHelper.deleteDataBase(deleteMemNo); #endregion addState = false; changeState = false; deleteState = false; removeBindingData(); else btnChange(); add
30、State = true; #region 清空groupbox中DtextBox中的值 foreach (Control conl in groupControl2.Controls) if (conl is TextBox) (conl as TextBox).Clear(); #region 獲取主鍵的最大值并加稱為新添加的主鍵 DataRow drs = null; try / drs = dataSet.Tables"MemberMssg".Select("1=1", dataSet.Tables"MemberMssg".C
31、olumns"會(huì)員編號(hào)".ColumnName + " DESC "); catch (Exception ex) MessageBox.Show(ex.StackTrace); txtMemberNo.Text = (Convert.ToInt32(drs0"會(huì)員編號(hào)") + 1).ToString(); try drs = dataSet.Tables"MemberMssg".Select("1=1", dataSet.Tables"MemberMssg".Columns
32、"會(huì)員卡編號(hào)".ColumnName + " DESC "); catch (Exception ex) MessageBox.Show(ex.StackTrace); txtMemberCard.Text = (Convert.ToInt32(drs0"會(huì)¨¢員¡À卡¡§編À¨¤號(hào)?") + 1).ToString(); #endregion foreach (Control conl in groupControl3.Controls) if
33、 (conl is TextBox) (conl as TextBox).Clear(); txtMemberNo.Enabled = true; txtMemberCard.Enabled = true; #endregion private void btnChg_Click(object sender, EventArgs e) if (btnChg.Text = "修改") btnChange(); changeState = true; txtMemberNo.Enabled = true; txtMemberCard.Enabled = true; if (!i
34、sDataBindings) if (txtMemberNo.Text.Trim() != "" && txtMemberCard.Text.Trim() != "") bindingData(); else addState = false; changeState = false; deleteState = false; removeBindingData(); btnChange(); private void btnDelete_Click(object sender, EventArgs e) if (btnDelete. T
35、ext = "刪除") deleteState = true; btnChange(); txtMemberCard.Enabled = false; txtMemberNo.Enabled = false; else removeBindingData(); this.Dispose(); #endregion #region 改變界面底部的按鈕屬性 private void btnChange() if (btnDelete.Text = "刪除") btnAdd.Text = "確定" btnChg.Text = "取
36、消; btnDelete.Text = "退出" btnView.Enabled = true; else btnAdd.Text = "添加" btnChg.Text = "修改" btnDelete.Text = "刪除" btnView.Enabled = false; #endregion #region 條件查詢 private Boolean getDataRow(String condition, String txtMessg) drs = dataSet.Tables"MemberMss
37、g".Select(String.Format(condition + " = '0'", txtMessg); dr = null; if (drs.Length > 1) dataSet.Tables"MemberMssg".DefaultView.RowFilter = String.Format(condition + " = '0'", txtMessg); dataGridView1.DataSource = dataSet.Tables"MemberMssg&qu
38、ot;.DefaultView; tabControl1.SelectTab(1); else if (drs.Length < 1) MessageBox.Show("無(wú)該項(xiàng)數(shù)據(jù)記錄!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; dr = drs0; return true; #endregion #region 更新界面 public void updataForm() txtMemberAge.Text = dr"年齡".ToString(); txtMemberCard.Text = dr"會(huì)員卡編號(hào)".ToString(); txtMemberGrade.Text = dr"會(huì)員等級(jí)".ToString(); txtMemberName.Text = dr"姓名".ToString(); txtMemberNo.Text = dr"會(huì)員編號(hào)".ToString(); txtMemberSex.Text = dr"性別".ToString(); txtMemberPhone.Text = dr"聯(lián)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教版(2024)九年級(jí)地理下冊(cè)月考試卷含答案
- 2025年教科新版高一地理上冊(cè)階段測(cè)試試卷含答案
- 2025年粵人版九年級(jí)地理下冊(cè)階段測(cè)試試卷含答案
- 2025年粵教新版選擇性必修3歷史下冊(cè)階段測(cè)試試卷含答案
- 2025年人教A新版九年級(jí)歷史上冊(cè)階段測(cè)試試卷含答案
- 2025版牛舍智能化溫控系統(tǒng)安裝工程承包合同4篇
- 二零二五年度料場(chǎng)租賃合同(附場(chǎng)地使用限制)示范文本
- 2025年度外墻涂料施工安全培訓(xùn)合同
- 二零二五年南京琴行教師藝術(shù)教育項(xiàng)目合作合同4篇
- 2025年新能源電池儲(chǔ)存與運(yùn)輸管理合同3篇
- 2025年上半年江蘇連云港灌云縣招聘“鄉(xiāng)村振興專干”16人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- DB3301T 0382-2022 公共資源交易開(kāi)評(píng)標(biāo)數(shù)字見(jiàn)證服務(wù)規(guī)范
- 人教版2024-2025學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末壓軸題練習(xí)
- 江蘇省無(wú)錫市2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 俄語(yǔ)版:中國(guó)文化概論之中國(guó)的傳統(tǒng)節(jié)日
- 2022年湖南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 婦科一病一品護(hù)理匯報(bào)
- 哪吒之魔童降世
- 2022年上海市各區(qū)中考一模語(yǔ)文試卷及答案
- 2024年全國(guó)統(tǒng)一高考數(shù)學(xué)試卷(新高考Ⅱ)含答案
- 我國(guó)無(wú)菌包裝行業(yè)消費(fèi)量已超千億包-下游需求仍存擴(kuò)容潛力
評(píng)論
0/150
提交評(píng)論