超市管理系统 毕业论文1.docx_第1页
超市管理系统 毕业论文1.docx_第2页
超市管理系统 毕业论文1.docx_第3页
超市管理系统 毕业论文1.docx_第4页
超市管理系统 毕业论文1.docx_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

超市管理系统contents1、摘要 .22、项目内容 2-1 数据库表 2-1-1 用户表.72-1-2 页面关系.72-1-3 商品表.72-1-4 员工表.72-1-5 客户表.82-2 主要代码(uil) 2-2-1 登陆界面.9 2-2-2 主界面.10 2-2-3 商品信息.11 2-2-4 商品信息管理.16 2-2-5 商品信息查询.16 2-2-6 添加商品信息.17 2-2-7 修改商品信息.18 2-2-8 删除商品信息. 222-3 主要代码(bll) 2-3-1 商品信息查询.23 2-3-2 商品信息添加.23 2-3-3 商品信息修改.24 2-3-4 商品信息删除.24 2-4 主要代码(dal) 2-4-1 dal代码.25 2-4-2 dbhelper代码.26 2-4-3 basecommon连接数据库代码.27数据库表用户表字段名字段类型是否为空备注idintnot null用户编号(主键)usernamenvcharnot null用户名pwdnvcharnot null登录密码解释:根据不同的用户登录胡跳转到不同的页面页面关系表字段名字段类型是否为空备注idintnot null编号(主键)moudlenamenvcharnot null框架名称formnamenvcharnot null页面名称parentidintnot null关系编号商品表字段名字段类型是否为空备注idintnot null编号(主键)goodidintnot null商品编号goodnamenvcharnot null商品名称goodtypenvcharnot null商品类型pricesmallmoneynot null商品价格othernvcharnot null备注信息员工表字段名字段类型是否为空备注idintnot null编号(主键)servernumnvcharnot null员工编号servernamenvcharnot null员工姓名departmentnvcharnot null所属部门ageintnot null年龄sexnvcharnot null性别positionnvcharnot null职位salarynvcharnot null收入客户表字段名字段类型是否为空备注idintnot null编号(主键)cusnumnvcharnot null客户编号cusnamenvcharnot null客户姓名addressnvcharnot null客户地址phonenvcharnot null联系电话neednvcharnot null客户需求简介: 超市管理系统1. 数据库主页登录窗体 通过输入用户名和密码进行验证(此用户名和密码无法通过页面进行注册),验证成功后跳转到二级密码验证页面,二级密码验证需要输入正确的二级密码和验证码,输入成功后进入主窗体,主窗体下面包含4个主页面:首页、客户界面、商品界面和员工界面。首页以图片的形式展现。其余三个页面分别包括相应的两个子页面,具体-客户页面包括:客户基本信息和客户信息操作页面;商品页面包括:商品基本信息和商品信息操作页面;员工页面包括:员工基本信息和员工信息操作页面。2. 表数据表内容的显示 通过客户基本信息,员工基本信息和商品基本信息三个页面进行对数据表的内容的显示。数据表内容的操作1. 商品基本信息页面通过按钮进行对商品种类的查询:所有商品-对全部商品进行查询;生活用品-对生活用品查询;文具-对文具进行查询;水果-对水果进行查询;蔬菜-对蔬菜进行查询;熟食-对熟食进行查询;饮料-对饮料进行查询。2. 商品信息操作页面对商品信息的查询。对商品信息的修改。对商品信息的添加。对商品信息的删除。3. 客户信息操作页面对客户信息的(条件)查询对客户信息的修改对客户信息的添加对客户信息的删除4. 员工信息操作页面对员工信息的(条件)查询对员工信息的修改对员工信息的添加对员工信息的删除3. 页面介绍登录页面分为用户名和密码两个文本框,用户必须正确输入用户名和密码才能登录成功,登录成功后会跳转到二级密码验证页面。二级密码验证页面 在此页面有二级密码和验证码两个选项,必须正确填写才能登录成功,登录成功后进入主页面客户信息页面 进入此页面后客户的基本信息会直接显示出来,可以通过“上一条”,“下一条 ”进行逐条查看,也可以通过“上一页”,“下一页”进行逐页查看。客户信息操作页面 本页面是对客户信息进行操作的页面,主要包括:查询,添加,修改,删除,清空5个选项。可以通过客户的编号或者客户的姓名进行对客户信息的查询,可以通过输入客户编号和客户姓名进行客户的添加,当您选中一条客户信息是双击此条信息或者点击修改按钮可以对此条信息近修改,点击删除按钮可以对你选中的一条或者多条信息进行删除;点击清除按钮可以清空所有文本框的内容。 客户信息添加页面 通过点击客户信息操作页面中的添加按钮打开此页面。此页面包括客户编号、客户姓名、客户地址、联系电话和客户需求5个文本框,填写完毕以后点击确定按钮就会在数据库里面添加你这条信息,点击取消关闭此页面。客户信息修改页面 此页面包括客户姓名、客户编号、客户地址、联系电话和客户需求5个文本框,通过客户操作页面双击需要修改的信息或者选中需要修改的信息以后点击修改按钮打开此页面,原有的信息自动传到本页面,方便修改,修改完毕以后点击确定按钮,修改成功。点击取消,返回客户信息操作界面。商品信息页面 包括5个按钮:所有商品-对全部商品进行查询;生活用品-对生活用品查询;文具-对文具进行查询;水果-对水果进行查询;蔬菜-对蔬菜进行查询;熟食-对熟食进行查询;饮料-对饮料进行查询。可以通过“上一条”,“下一条 ”进行逐条查看,也可以通过“上一页”,“下一页”进行逐页查看。商品信息操作页面 本页面是对商品信息进行操作的页面,主要包括:查询,添加,修改,删除,清空5个选项。可以通过商品的编号或者商品名进行对商品信息的查询,可以通过输入商品编号和商品名称进行商品的添加,当您选中一条商品信息是双击此条信息或者点击修改按钮可以对此条信息进行修改,点击删除按钮可以对你选中的一条或者多条信息进行删除;点击清除按钮可以清空所有文本框的内容。商品信息添加页面 通过点击商品信息操作页面中的添加打开此页面。此页面包括商品编号(英文编号和编号数值)、商品名称、商品类型、商品价格、备注,填写完毕以后点击确定按钮就会在数据库里面添加你这条信息,点击取消关闭此页面。商品信息修改页面 此页面包括商品名称、商品编号、商品类别、商品价格、备注,通过商品操作页面双击需要修改的信息或者选中需要修改的信息以后点击修改按钮打开此页面,原有的信息自动传到本页面,方便修改,修改完毕以后点击确定按钮,修改成功。点击取消,返回客户信息操作界面。员工信息页面 进入此页面后员工的基本信息会直接显示出来,可以通过“上一条”,“下一条 ”进行逐条查看,也可以通过“上一页”,“下一页”进行逐页查看。员工信息操作页面 本页面是对员工信息进行操作的页面,主要包括:查询,添加,修改,删除,清空、退出6个选项。可以通过客户的编号或者员工姓名进行对商品信息的查询,可以通过输入员工编号和员工姓名进行员工信息的添加,当您选中一条员工信息是双击此条信息或者点击修改按钮可以对此条信息进行修改,点击删除按钮可以对你选中的一条或者多条信息进行删除;点击清除按钮可以清空所有文本框的内容,点击退出按钮退出本页面。员工信息添加页面 通过点击商品信息操作页面中的添加打开此页面。此页面包括员工编号(英文编号和编号数值)、员工姓名、所属部门、年龄、性别、职位、工资、工作时间、备注等项目,填写完毕以后点击确定按钮就会在数据库里面添加你这条信息,点击取消关闭此页面。员工信息修改页面 此页面包括员工编号(英文编号和编号数值)、员工姓名、所属部门、年龄、性别、职位、工资、工作时间、备注等项目,通过员工操作页面双击需要修改的信息或者选中需要修改的信息以后点击修改按钮打开此页面,原有的信息自动传到本页面,方便修改,修改完毕以后点击确定按钮,修改成功。点击取消,返回客户信息操作界面。4. 项目编写目的针对超市的管理退出这个项目能够对超市进行全方面的管理,包括员工的信息,商品的信息以及客户的信息,只有超市的管理员可以进行操作,对对应的信息进行增删改查。主要代码(uil)1、登录界面代码如下:private void btnlogin_click(object sender, eventargs e) int returnvalue = 0; mologin mymologin = new mologin(); mymologin.name = this.txtusername.text.trim(); mymologin.pwd = this.txtpwd.text.trim(); if (mymologin.name.length = 0) messagebox.show(请输入用户名!); this.txtusername.focus(); this.txtusername.selectall(); return; if (mymologin.pwd.length = 0) messagebox.show(请输入密码!); this.txtpwd.focus(); this.txtpwd.selectall(); return; bulayerinfor mybulayerinfor = new bulayerinfor(); returnvalue = mybulayerinfor.getpwd(mymologin); switch (returnvalue) case 0 : messagebox.show(没有该用户!); break; case 1: messagebox.show(登陆成功!); check mycheck = new check(); mycheck.show(); this.hide(); break; case 2: messagebox.show(密码错误!); break; default: break; 2、主界面主界面的整体框架式层叠的样式,在这里就要用到页面关系表里面的数据, parentid的数值越小,则其优先级越高。以此2包含于1,3包含于2。3、商品信息商品基本信息界面 public goodsinfor() initializecomponent(); private string str = server=.;database=supermarketinformation;uid=sa;pwd=123; private string sqlquery = string.empty; dataset myds = new dataset(); bindingsource mybindingsource = new bindingsource(); int pagesize = 0; int nmax = 0; int pagecount = 0; int pagecurrent = 0; int ncurrent = 0; int nstartpos = 0; int nendpos = 0; datatable dttemp; datatable dtinfo = new datatable(); private dataset getsource() sqlconnection mysqlconnection = new sqlconnection(str); mysqlconnection.open(); sqlcommand mysqlcommand = new sqlcommand(); sqlquery = select * from table_good; mysqlcommand.commandtext = sqlquery; mysqlcommand.connection = mysqlconnection; sqldataadapter mysqldataadapter = new sqldataadapter(mysqlcommand); mysqldataadapter.fill(myds); mysqlconnection.close(); return myds; private dataset getsourceshyp(string param) string sa = param; sqlconnection mysqlconnection = new sqlconnection(str); mysqlconnection.open(); sqlcommand mysqlcommand = new sqlcommand(); sqlquery = select * from table_good where goodtype =+sa+; mysqlcommand.commandtext = sqlquery; mysqlcommand.connection = mysqlconnection; sqldataadapter mysqldataadapter = new sqldataadapter(mysqlcommand); mysqldataadapter.fill(myds); mysqlconnection.close(); return myds; private void loaddata() dttemp = dtinfo.clone(); if (pagecurrent = pagecount) nendpos = nmax; else nendpos = pagesize * pagecurrent; nstartpos = ncurrent; tsp01.text = / + pagecount.tostring(); tstbox.text = convert.tostring(pagecurrent); try for (int i = nstartpos; i 0) pagecount+; pagecurrent = 1; ncurrent = 0; loaddata(); private void bindingnavigator1_itemclicked(object sender, toolstripitemclickedeventargs e) try if (e.clickeditem.text = 上一页) pagecurrent-; if (pagecurrent pagecount) messagebox.show(已经是最后一页,请点击上一页查看!); return; else ncurrent = pagesize * (pagecurrent - 1); loaddata(); if (e.clickeditem.text = go) pagecurrent = convert.toint32(tstbox.text.tostring(); if (pagecurrent pagecount) messagebox.show(已经是最后一页,请点击上一页查看!); return; else ncurrent = pagesize * (pagecurrent - 1); loaddata(); catch messagebox.show(请输入数字!); this.tstbox.focus(); this.tstbox.selectall(); return; private void goodsinfor_load(object sender, eventargs e) this.windowstate = formwindowstate.maximized; dtinfo = getsource().tables0; this.mybindingsource.datasource = dtinfo; this.bindingnavigator1.bindingsource = mybindingsource; this.datagridview1.datasource = this.bindingnavigator1.bindingsource; initdataset(); private void search(string paramgoodtype) getsource().tables0.clear(); this.windowstate = formwindowstate.maximized; dtinfo = getsourceshyp(paramgoodtype).tables0; this.mybindingsource.datasource = dtinfo; this.bindingnavigator1.bindingsource = mybindingsource; this.datagridview1.datasource = this.bindingnavigator1.bindingsource; initdataset(); private void btnshyp_click(object sender, eventargs e) search(this.btnshyp.text); private void btnstationety_click(object sender, eventargs e) search(this.btnstationety.text); private void btnfruit_click(object sender, eventargs e) search(this.btnfruit.text); private void btnvegetable_click(object sender, eventargs e) search(this.btnvegetable.text); private void btncookedfood_click(object sender, eventargs e) search(this.btncookedfood.text); private void btndrink_click(object sender, eventargs e) search(this.btndrink.text); private void btnall_click(object sender, eventargs e) getsource().tables0.clear(); goodsinfor_load(sender, e); 商品信息管理界面private string id; public string id get return id; set id = value; public goodoperation() initializecomponent(); 商品信息查询#region 商品信息查询 / / 商品信息查询! / public static string paramcnum; public static string parampnum; public void bindlistview(string paramno, string paramname) bulayerinfor mybulayerinfor = new bulayerinfor(); dataset myds = new dataset(); myds = mybulayerinfor.geylistgood(paramno, paramname); if (myds.tables0.rows.count = 0) messagebox.show(没有您查找的信息!); this.txtgoodnum.clear(); this.txtgoodname.clear(); return; this.listview1.items.clear(); listviewitem mylistviewitem; foreach (datarow mydr in myds.tables0.rows) mylistviewitem = new listviewitem(mydrid.tostring(); mylistviewitem.tag = mydrid; mylistviewitem.subitems.add(mydrgoodid.tostring(); mylistviewitem.subitems.add(mydrgoodname.tostring(); mylistviewitem.subitems.add(mydrgoodtype.tostring(); mylistviewitem.subitems.add(mydrprice.tostring(); mylistviewitem.subitems.add(mydrother.tostring(); this.listview1.items.add(mylistviewitem); private void btnselect_click(object sender, eventargs e) string paramno = this.txtgoodnum.text.trim(); string paramname = this.txtgoodname.text.trim(); bindlistview(paramno, paramname); private void txtgoodnum_textchanged(object sender, eventargs e) btnselect_click(sender, e); private void txtgoodname_textchanged(object sender, eventargs e) btnselect_click(sender, e); #endregion在商品编号或商品名称中输入你想要查找的商品编号或者商品名称,系统会自动查询。添加商品信息 #region 添加商品信息 / / 添加商品信息 / / / private void btnadd_click(object sender, eventargs e) if (this.cmbgoodnum.text.length = 0) messagebox.show(请选择商品编号!); return; if (this.txtaddname.text.length = 0) messagebox.show(请输入商品编号数值!); return; paramcnum = this.cmbgoodnum.text.trim(); parampnum = this.txtaddname.text.trim(); string paramgoodnum = this.cmbgoodnum.text.trim() + this.txtaddname.text.trim(); bulayerinfor mybulayerinfor = new bulayerinfor(); string md = mybulayerinfor.getgoodnum(paramgoodnum); if (md = 1) messagebox.show(已经存在编号为 + paramgoodnum + 的商品,请重新添加!); return; goodadd mygoodadd = new goodadd (); mygoodadd.show(); #endregion在操作区输入商品编号或者商品名称,点击添加按钮,系统会自动检索是否存在与你输入的编号或者名称相同的商品,如果存在重复,系统会弹出提示框(messagebox)来提示输出重复,否则会弹出以下界面:在此,商品编号是自动获得的,是通过上个页面传值过来的。信息录入完成以后点击确定,数据传入数据库,并且保存,返回上一界面,并且自动刷新页面。修改商品信息 #region 修改商品信息 / / 商品信息更新 / private void openeditpage() frmgoodupdate myfrmgoodupdate = new frmgoodupdate (this.id); if (myfrmgoodupdate.showdialog() = dialogresult.yes) bindlistview(this.txtgoodnum.text, this.txtgoodname.text); 在其他操作里面,点击更新按钮,进入下面窗体:此页面代码分为两个部分:1、 接收传值:#region 接收传值 / / 接收传值 / private string id; public frmgoodupdate(string paramid) initializecomponent(); id = paramid; this.txtgoodnum.text = id; this.txtgoodnum.enabled = false; public void setvalue(string paramid) bulayerinfor mybulayerinfor = new bulayerinfor(); dataset myds = new dataset(); myds = mybulayerinfor.getvaluebygoodid(paramid); if (myds.tables0.rows.count = 0) return; this.txtgoodnum.text = myds.tables0.rows0goodid.tostring(); this.txtgoodname.text = myds.tables

温馨提示

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

评论

0/150

提交评论