数据库课程设计-交易管理系统.doc_第1页
数据库课程设计-交易管理系统.doc_第2页
数据库课程设计-交易管理系统.doc_第3页
数据库课程设计-交易管理系统.doc_第4页
数据库课程设计-交易管理系统.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

目 录 摘 要2第一章.需求分析21.1项目背景介绍21.2系统目的21.3 系统特点2第二章.系统功能分析32.1.登陆注册模块32.2.用户导航模块32.3.管理员导航模块3第三章.系统设计33.1 初步设计33.1.1系统开发工具33.1.2系统架构33.1.3系统结构33.1.4系统流程图33.2详细设计33.2.1.各表的属性图33.2.2.各个实体之间的关系33.2.3.具体数据表设计3第四章程序实现34.1.登陆注册模块34.1.1.用户登陆模块34.1.2.用户注册模块34.1.3.管理员登陆模块34.2用户导航模块34.2.1.订购模块34.2.2.进行中交易模块34.2.3.历史交易模块34.2.4.修改资料模块34.3.管理员导航界面34.3.1.商品管理模块34.3.2.订单处理模块34.3.3.商品销量统计34.3.4.用户管理34.4.5.管理员管理3第五章.实验总结35.1.收获35.2.难点35.3.系统还存在的问题35.4.总结3第六章.参考文献3 摘 要本次设计,通过使用C#和SQL2000,利用GUI界面,构建一个交易管理系统。文章介绍了利用C#和SQL2000设计交易系统的步骤、方法、和遇到的问题.第一章.需求分析1.1项目背景介绍 对于目前的商业情况,大多数卖家需要有一个固定的店面向客户出售商品,尤其是大型公司,用户更需向公司提交复杂的商品订单。对于这些订单,由于数量比较庞大,所以相对管理相对困难、复杂,用户对商品的信息也没有一个直观的反映。但是交易管理系统可以让卖家随意发布自己的商品,用户能够很直观的选购商品,不用填写麻烦的订单,卖家也可以很轻松的管理订单,这让买卖双方都可以轻松便捷的进行交易。1.2系统目的 买家:1. 查看可以购买的商品2. 购买商品3. 修改自己的资料卖家:1. 商品的管理。(例如商品的添加与修改)2. 用户订单的处理。(发货,关闭交易)3. 商品销量的统计4. 用户管理5. 管理员管理1.3 系统特点 本系统使用C#和SQL数据库,对于用户的订购非常直观方便。而卖家对于用户订单的管理也非常便捷。除此之外,用户还可以随时修改自己的密码和对应的资料,卖方也可以对用户进行方便快捷的管理。第二章.系统功能分析 系统功能分为三大块2.1.登陆注册模块该模块主要用于用户的登陆,管理员的登陆和用户的注册。用户的登陆需要填写用户名和密码。管理员登陆需要填写管理员用户名和密码注册用户需要填写用户名,密码,用户姓名,性别(非必填),用户地址,用户EMAIL(非必填)和用户身份证号。2.2.用户导航模块该模块主要用于用户对商品的查询、购买,对用户订单状态的查询,用户历史交易的查询和用户资料的修改。2.3.管理员导航模块该模块主要用于管理员对商品的管理,(例如商品的添加删除,商品的修改),需处理的订单的管理(订单状态的修改,比如已发货,或者关闭交易),销量的统计,用户管理和管理员管理。第三章.系统设计 3.1 初步设计3.1.1系统开发工具编程工具:Microsoft Visual Studio 2005编程语言:C#C#是一款安全的、稳定的、简单的、由C和C+衍生出来的面向对象的编程语言。它在继承C和C+强大功能的同时去掉了一些它们的复杂特性。数据库:SQLServer2000SQL Server 是一个关系数据库管理系统,对于数据的反映比较直观,数据操作比较简单,SQL语句功能强大,使用快速,简便。3.1.2系统架构此次的交易管理系统是属于B/S架构。3.1.3系统结构更具系统分析,此系统具有3大功能模块,每个功能对应相应的功能小模块构成,功能结构图如下: 系统功能模块图3.1.4系统流程图 系统流程图 3.2详细设计 3.2.1.各表的属性图根据分析,数据库首先应该需要一张用户表(Users),用来存放用户的用户名(Uzh),密码(Upsw),真实姓名(Uname),性别(Usex),Email(Uemail),地址(Uadress),身份证号(Uidecode)。如下图: Users表属性图然后需要一张表stuf,用来存放商品的商品编号(SID),商品名称(Sname),商品价格(Scost),商品库存(Scount),如下图: Stuf表属性图接着用一张表state,存放订单的订单号(DID),订单状态编号(Dstatecode),商品总价(Dcost),商品订货量(Dcount),商品编号(SID),用户名(Uzh),图下图:. State表属性图这里还需要一张订单状态表(Dst),用来描述订单的状态,存放订单状态号(Dstatecode)和订单状态信息(Dstate).如下图: Dst表属性图最后需要设计一张管理员表(admin),用来存放管理员用户名(Mname) ,管理员密码(Mpsw)如图: Admin表属性图3.2.2.各个实体之间的关系对于用户和商品,一个用户可以订购多种商品,而一种商品也可以对应多个用户,所以商品和用户之间是多对多关系;对于订单和用户,一个用户可以有多个订单,而一个订单只能对应某一个用户,所以用户和订单之间是一对多的关系;对于订单与商品的关系,一个订单对应一种商品,而一种商品可以对应多个订单,所以订单和商品的关系是多对一的关系;管理员与用户,管理员与管理员都是一个管理员可以管理多个用户或管理员,所以是一对多的关系。 整体的E-R关系图如下:3.2.3.具体数据表设计数据库表具体设计如下:Users表序号字段类型长度主键能否为空默认值1UzhVarchar50是No2Upswvarchar50 No3UnameVarchar 10No4UsexChar 2YSE5UemailVarchar 50 YES6UadressVarchar 100No7UidcodeChar 18No User表Stuf表序号字段类型长度主键能否为空默认值1SIDInt4是No2Snamevarchar50 No3Scostmoney 8No4ScountInt 4No Stuf表state表序号字段类型长度主键能否为空默认值1DIDInt4是No2DstatcodeInt4 No3DcostMoney 8No4DcountInt 4No5SIDInt 4 No6UzhVarchar 50No State表Dst表序号字段类型长度主键能否为空默认值1DstatecodeInt4是No2Dstatevarchar50 No订单已提交,等待卖家发货 Dst表admin表序号字段类型长度主键能否为空默认值1Mnamevarchaer50是No2Mpswvarchar50 No Admin表第四章程序实现根据分析,确定系统一共分为登陆注册、用户导航、管理员导航3大模块。4.1.登陆注册模块登陆注册模块包含3个子模块:用户登陆模块,用户注册模块管理员登陆模块。4.1.1.用户登陆模块核心代码如下: public void yanzhengma() /生成注册码 Bitmap image; image = new Bitmap(100, 200); Random rnd = new Random(); ShowText = rnd.Next(1000, 9999).ToString(); Graphics g = Graphics.FromImage(image); Pen aPen = new Pen(Color.Black); g.DrawString(ShowText, new Font(宋体, 20), Brushes.Black, new PointF(0, 0); pBox.Image = image; private void button1_Click(object sender, EventArgs e) /用户登陆验证 string yanzhengma1 = tbyanzhengma.Text; uzh = Ubname.Text; upsw = Ubpsw.Text; if (uzh = string.Empty) MessageBox.Show(请输入用户名!); else if (upsw = string.Empty) MessageBox.Show(请输入密码!); else String jionSQLConnStr = global:交易.Properties.Settings.Default.shopConnectionString; SqlConnection jioncon = new SqlConnection(jionSQLConnStr); if (jioncon != null) jioncon.Open() string temp = string.Format(select count(*) from Users where Uzh=0 and Upsw = 1, uzh,upsw ); SqlCommand jcmd = new SqlCommand(); jcmd.CommandType = CommandType.Text; jcmd.CommandText = temp; jcmd.Connection = jioncon; int mycount = (int)jcmd.ExecuteScalar(); if (mycount = 0) MessageBox.Show(用户名或密码错误!); yanzhengma(); else if (yanzhengma1 != ShowText) MessageBox.Show(验证码有误哦!); yanzhengma(); else yanzhengma(); 用户导航 a用户导航 = new 用户导航(this); this.Hide(); a用户导航.Show(); a用户导航.tempname = uzh; a用户导航.temppassword = upsw; this.Focus(); 4.1.2.用户注册模块对于没有星号表示的项可以不填.核心代码如下 private void button3_Click(object sender, EventArgs e) uzh = Urzh.Text; upsw = Urpsw.Text; urepsw = Urrepsw.Text; uname = Urname.Text; usex = Ursex.Text; uidcode = Uridcode.Text; uadress = Uradress.Text; uemail = Uremail.Text; if (uzh = string.Empty) MessageBox.Show(用户名不能为空哦!); else if (upsw != urepsw) MessageBox.Show(两次输入的密码不一样); else if (uidcode.Length != 18) MessageBox.Show(请输入18位身份证号); else String regestSQLConnStr = global:交易.Properties.Settings.Default.shopConnectionString; SqlConnection regestcon = new SqlConnection(regestSQLConnStr); regestcon.Open(); SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.Text; string temp = string.Format(select count(*) from Users where Uzh=0, uzh); cmd.CommandText = temp; cmd.Connection = regestcon; int Mycount = (int)cmd.ExecuteScalar(); if (Mycount = 1) MessageBox.Show(此账号被人先注册了!); else temp = Insert Users(Uzh,Upsw,Uname,Usex,Uidcode,Uadress,Uemail) Values( + uzh + , + upsw + , + uname + , + usex + , + uidcode + , + uadress + , + uemail + ); cmd.CommandText = temp; cmd.ExecuteScalar(); MessageBox.Show(注册成功); regestcon.Close(); 4.1.3.管理员登陆模块核心代码如下 private void button2_Click(object sender, EventArgs e) uzh = Abname.Text; upsw = Abpsw.Text; if (uzh = string.Empty) MessageBox.Show(请输入用户名!); else if (upsw = string.Empty) MessageBox.Show(请输入密码!); else String adminSQLConnStr = global:交易.Properties.Settings.Default.shopConnectionString; SqlConnection admincon = new SqlConnection(adminSQLConnStr); if (admincon != null) admincon.Open(); string temp = string.Format(select count(*) from admin where Mname=0 and Mpsw = 1, uzh, upsw); SqlCommand acmd = new SqlCommand(); acmd.CommandType = CommandType.Text; acmd.CommandText = temp; acmd.Connection = admincon; int mycount = (int)acmd.ExecuteScalar(); if (mycount = 0) MessageBox.Show(用户名或密码错误!); else 管理员导航 a管理员导航 = new 管理员导航(this); this.Hide(); a管理员导航.Show(); this.Focus(); 4.2用户导航模块 用户导航模块一共分为商品的订购模块,进行中交易模块,历史交易模块和修改资料模块4个部分组成,分别管理用户的订购,订单的处理,历史交易查询和资料修改4种操作。4.2.1.订购模块核心代码: private void button1_Click(object sender, EventArgs e) string tbsnumber1 = tbsnumber.Text.Trim(); string tbscount1 = tbscount.Text; string totalcost, ncount; if (tbsnumber1 = string.Empty) MessageBox.Show(大哥!最起码你要告诉我买什么吧.); else if (tbscount1 = string.Empty) MessageBox.Show(大哥(大姐)你要买多少呀?); else SqlConnection shopcon = new SqlConnection(shopSQLConnStr); shopcon.Open(); Mysql = string.Format(select Scost,Scount from stuf where stuf.SID = 0 , tbsnumber1); SqlCommand shopcmd = new SqlCommand(); shopcmd.Connection = shopcon; shopcmd.CommandType = CommandType.Text; shopcmd.CommandText = Mysql; SqlDataReader reader = shopcmd.ExecuteReader(); decimal a=0; int b=0; while (reader.Read() a = (decimal)readerScost; b = (int)readerScount; reader.Close(); int f = Convert.ToInt32(tbscount1); if (b f) MessageBox.Show(不好意思,货不够了哦!); else a = a * f; b = b - f; totalcost = a.ToString(); ncount = b.ToString(); Mysql = string.Format(insert state(Dcost,Dcount,SID,Uzh) values( 0,1,2,3) , totalcost, tbscount1, tbsnumber1, tempname); shopcmd.CommandText = Mysql; shopcmd.ExecuteScalar(); MessageBox.Show(购买成功!); Mysql = string.Format(update stuf set Scount = 0 where SID = 1,ncount,tbsnumber1); shopcmd.CommandText = Mysql; shopcmd.ExecuteScalar(); reader.Close(); shuaxin(); 4.2.2.进行中交易模块核心代码:private void button4_Click(object sender, EventArgs e) string tbdnumber1 = tbdnumber.Text.ToString().Trim(); if (tbdnumber1 = string.Empty) MessageBox.Show(请选择订单。); else Mysql = string.Format(select Dstatecode from state where DID =0, tbdnumber1); SqlConnection shopcon = new SqlConnection(shopSQLConnStr); SqlCommand shopcmd = new SqlCommand(); shopcon.Open(); shopcmd.CommandType = CommandType.Text; shopcmd.CommandText = Mysql; shopcmd.Connection = shopcon; SqlDataReader reader = shopcmd.ExecuteReader(); if (reader.Read() if (int)readerDstatecode != 1) MessageBox.Show(东西都还没发呢,着什么急啊!); else reader.Close(); Mysql = string.Format(update state set Dstatecode = 2 where DID = 0, tbdnumber1); shopcmd.CommandText = Mysql; shopcmd.Connection = shopcon; shopcmd.ExecuteScalar(); MessageBox.Show(交易成功,谢谢惠顾!); 刷新用户进行中的订单(); /程序之前定义的方法,用来查询交易中订单信息 shopcon.Close(); 4.2.3.历史交易模块核心代码: private void button5_Click(object sender, EventArgs e) string a, b, c, d, f, g, h; listView3.Items.Clear(); Mysql = string.Format(select state.DID,stuf.Sname,state.Dcount,state.Dcost,Users.Uadress,Users.Uname,Dst.Dstate from state,Users,stuf,Dst where state.Dstatecode = Dst.Dstatecode and state.SID=stuf.SID and state.Uzh = Users.Uzh and state.Uzh = 0and (state.Dstatecode = 2 or state.Dstatecode =3), tempname); SqlConnection shopcon = new SqlConnection(shopSQLConnStr); shopcon.Open(); SqlCommand shopcmd = new SqlCommand(); shopcmd.CommandType = CommandType.Text; shopcmd.CommandText = Mysql; shopcmd.Connection = shopcon; SqlDataReader reader = shopcmd.ExecuteReader(); while (reader.Read() a = reader.GetValue(0).ToString(); b = reader.GetValue(1).ToString(); c = reader.GetValue(2).ToString(); d = reader.GetValue(3).ToString(); f = reader.GetValue(4).ToString(); g = reader.GetValue(5).ToString(); h = reader.GetValue(6).ToString(); ListViewItem item = new ListViewItem(new string a, b, c, d, f, g, h ); listView3.Items.Add(item); reader.Close(); shopcon.Close(); 4.2.4.修改资料模块点击“修改密码“出现:点击”修改资料”出现:核心代码:private void BT_Click(object sender, EventArgs e) if (radioButton1.Checked = true) if (tbpsw.Text = string.Empty) MessageBox.Show(请输入原始密码!); else if (tbnpsw.Text = string.Empty) MessageBox.Show(请输入新密码); else if (tbrnpsw.Text = string.Empty) MessageBox.Show(请再重复一遍!); else if (tbrnpsw.Text != tbnpsw.Text) MessageBox.Show(两次输入的密码不一样哦!); else if (tbpsw.Text != temppassword) MessageBox.Show(原始密码不对哦!); else string npsw1 = tbnpsw.Text; Mysql = string.Format(update Users set Upsw = 0 where Uzh = 1, npsw1, tempname); SqlConnection updatecon = new SqlConnection(shopSQLConnStr); SqlCommand updatecmd = new SqlCommand(); updatecon.Open(); updatecmd.CommandType = CommandType.Text; updatecmd.CommandText = Mysql; updatecmd.Connection = updatecon; int count =updatecmd.ExecuteNonQuery(); if(count = 1) MessageBox.Show(修改成功!); else MessageBox.Show(修改修改失败); updatecon.Close(); 4.3.管理员导航界面管理员导航界面一共分为5个模块。商品管理模块用来管理商品,比如添加商品,商品信息修改,和删除商品4.3.1.商品管理模块点击“增加商品“按钮出现:点击商品,再点击“修改商品“按钮出现:点击商品,再点击“删除商品“按钮进行删除。核心代码如下:private void button1

温馨提示

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

评论

0/150

提交评论