《超市库存系统的设计与实现》由会员分享,可在线阅读,更多相关《超市库存系统的设计与实现(23页珍藏版)》请在金锄头文库上搜索。
1、1 设计题目与要求设计题目与要求设计题目:超市库存系统具体要求:(1) 系统需求明确,要求使用.net 技术、网页与数据库连接技术。(2) 主页要求有用户登录显示,实现信息的查询、添加、删除等基本功能。(3) 实现用户注册、用户登录、超市货物的分类、查询、增加商品信息、修改商品信息、删除商品信息、增加货物种类、修改货物种类和删除货物种类的功能,并要求相关信息能自动存储到数据库。2 设计思想设计思想2.1 建立数据库创建一个用于存放超市库存信息的数据库,其中包含 3 张表:1.用户表:用于存放用户信息。包含的属性为:userId 用户编号 userName 用户名 pwd 密码 sex 性别 t
2、el 电话 remark 备注2.商品表:用于存放商品信息。包含的属性为:pId 商品编号 pTitle 商品标题 outprice 售价 inprice 进价 classId 类编号 postdate 上架时间 allcount 总量 pic 图片 remark 备注3.类别表:用于存放商品类别。包含的属性为:classId 商品类编号 className 类名 remark 备注2.2 建立.net 窗体项目创建.net 窗体程序,其中包括一个登陆界面,一个注册界面和一个管理界面,用户进入登陆界面可以选择登陆或者注册,点击注册按钮后进入注册页面,注册界面可以填写注册信息,包括用户名、密码、
3、电话、性别、备注,并且可以进行取消操作和确认操作;点击登陆按钮后进入管理界面,在管理界面下可以看到 3 张数据表,选择对应的表格后可以对表中的内容进行增加、删除、修改和查询操作,这些操作结束后,结果都可在数据库中体现出来,并且,表格中的数据也会有相应变化。3 系统结构系统结构系统结构图如下图所示,包含登陆和管理,以及具体的操作:超市库存系统用户信息管理模块商品信息管理模块商品类别管理模块增加模块删除模块修改模块增加模块删除模块修改模块查询模块增加模块删除模块修改模块查询模块系统结构图 3-14 数据结构的说明和模块的算法流程图数据结构的说明和模块的算法流程图4.1 数据库设计4.1.1 用户表
4、字段名 文本类型 文本长度 备注Userid Int identity(1001,1) primary keyUsername Varchar 20Pwd Varchar 20sex Char 2Tel Varchar 20remark text4.1.2 商品信息表字段名 文本类型 文本长度 备注Pid Int identity(1001,1) primary keyPtitle Varchar 20Outprice FloatInprice FloatClassid IntPostdate DatetimeAllcount IntPic Imageremark text4.1.3 商品分类
5、表字段名 文本类型 文本长度 备注Classid In identity(1001,1) primary keyClassname Varchar 20remark text4.2 算法流程图登陆界面判断操作 登陆管理选择菜单判断选择的操作商品类别管理增加删除查询修改用户管理增加删除查询修改商品管理增加删除查询修改用户注册判断密码是否注册结束是是是是是图 4-1 算法流程5 系统详细设计系统详细设计5.1数据库设计数据库设计首先创建数据库,输入以下语句create database MyShop然后创建数据表创建用户表(users)包括:用户 id、用户名、用户密码、性别、电话、备注,输入以下
6、语句create table users(userId int identity(1001,1) primary key,-自增长,主键userName varchar(20),pwd varchar(20),sex char(2),tel varchar(20),remark text)创建商品类别表,包括:类别 id、类别名、类别说明,输入以下语句create table productclass(classId int identity(1001,1) primary key,className varchar(20),remark text)创建商品表,包括:商品 id、商品标题、价格
7、、批发价、商品所属类别、供货时间、数量、图片、备注,输入以下语句create table product(pId int identity(1001,1) primary key,pTitle varchar(20),outprice float,inprice float,classId int,postDate datetime,allcount int,pic image,remark text)5.2 数据库连接创建数据库连接语句string connStr = server=kk-35f269505689SQLEXPRESS;服务器名称database=myshop;数据库名称int
8、egratedsecurity=true;登陆方式创建连接对象SqlConnection conn = new SqlConnection(DB.connStr);打开连接conn.Open();5.3 模块设计5.3.1 登陆界面设计登陆界面包含 2 个标签,两个文本框,两个按钮和一个 groupbox 元件首先设置 groupbox 元件,然后将标签和文本框放入 groupbox 中,最后再添加按钮登陆界面设计如图所示图 5-1 登陆界面点击登陆按钮后,首先获取输入信息string userName = textBox1.Text;string pwd = textBox2.Text;然后
9、在数据库中检测用户名与密码string sql = select count(*) from users where userName=n and pwd=p;如果密码正确则进入管理界面,否则重新输入信息。点击注册按钮后隐藏登陆界面this.Hide();创建窗体对象Form2 fm2 = new Form2();然后打开注册界面fm2.Show();5.3.2 注册界面设计注册界面包含 6 个标签,4 个文本框,两个单选按钮,两个按钮,一个 richtextbox对应元件的布局如下图所示图 5-2 注册界面点击确定按钮后接收输入的新数据,接受用户名string userName = text
10、Box1.Text;接收密码string pwd = textBox2.Text;接收确认密码string pwd2 = textBox4.Text;接受电话string tel = textBox3.Text;接收性别string sex = 男;if (radioButton2.Checked) sex = 女;接收备注string remark = richTextBox1.Text;判断密码if (pwd != pwd2)如果两次输入的密码不一致,弹出提示信息MessageBox.Show(两次密码不一致,请重新输入!);然后程序返回return;重新输入注册信息。5.3.3 登陆后的
11、界面设计管理界面包含三个选项卡,每个对应用户管理、商品管理和商品类别管理,没个选项中包含一个 datagridview 一个 groupbox 和若干标签、按钮及文本框,具体的布局设置如下图所示:图 5-3 用户管理布局首先绑定 datagridview 用于显示用户管理信息,创建一个 bindlist 方法,用于显示绑定的信息和刷新数据。然后点击新增按钮,接收输入的数据,然后创建执行语句,定义int i = cmd.ExecuteNonQuery();,用于执行sql语句返回影响行数,这项操作时针对新增删除与修改,判断i的数值是否大于1,如果大于1则新增成功,否则新增失败。接着创建一个con
12、textmenustrip,用于执行鼠标右键的操作,当点击鼠标右键时,可以看到删除和修改操作。点击删除后,首先取得第一列的编号,然后数据库中的输入进行对比,如果对应编号的数据存在,则提示信息MessageBox.Show(删除了 + count + 条数据);,接着刷新数据BindList();,否则提示信息MessageBox.Show(没有删除数据!);点击修改后,会将数据表格中的数据,赋值到下方对应的属性栏中,获取编号label6.Text =dt.Rows0userid.ToString();获取用户名textBox1.Text =dt.Rows0username.ToString()
13、;获取用户密码textBox2.Text =dt.Rows0pwd.ToString();获取用户电话textBox3.Text =dt.Rows0tel.ToString();获取备注richTextBox1.Text =dt.Rows0remark.ToString();获取性别string sex =dt.Rows0sex.ToString();然后可以在属性栏中进行数据的修改,修改完成后,点击下方的修改按钮,进行数据的修改。图 5-4 商品管理布局首先绑定 datagridview 用于显示商品管理信息,调用 bindlist 方法,用于显示绑定的信息和刷新数据。然后点击新增按钮,接收
14、输入的数据,然后创建执行语句,定义int i = cmd.ExecuteNonQuery();,用于执行sql语句返回影响行数,这项操作时针对新增删除与修改,判断i的数值是否大于1,如果大于1则新增成功,否则新增失败。接着创建一个contextmenustrip,用于执行鼠标右键的操作,当点击鼠标右键时,可以看到删除和修改操作。点击删除后,首先取得第一列的编号,然后数据库中的输入进行对比,如果对应编号的数据存在,则提示信息MessageBox.Show(删除成功!);,接着刷新数据BindList();,否则提示信息MessageBox.Show(删除失败!);点击修改后,会将数据表格中的数据
15、,赋值到下方对应的属性栏中,获取商品编号int pid = Convert.ToInt32(label7.Text);获取商品名称string ptitle = textBox5.Text;获取售价double outprice = Convert.ToDouble(textBox6.Text);获取进价double inprice = Convert.ToDouble(textBox7.Text);获取类别编号int classid=Convert.ToInt32(comboBox1.SelectedValue);获取上架时间DateTime postdate = DateTime.Now;
16、获取总量int allcount = Convert.ToInt32(textBox10.Text);获取备注string remark = richTextBox3.Text;然后可以在属性栏中进行数据的修改,修改完成后,点击下方的修改按钮,进行数据的修改。点击查询按钮,获取需要查询的信息string ptitle = textBox5.Text;执行SQL查询语句string sql = select * from product where 1=1; 判断输入的标题是否为空if (ptitle != )如果不为空,则添加查询语句sql += and ptitle=p2;执行查询语句,将结果放入dataGridView2.DataSource = dt;图 5-5 商品类别管理首先绑定 datagridview 用于显示商品类别信息,调用 b