数据库课程设计小型电子商务数据管理系统.docx
- 文档编号:9486051
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:26
- 大小:1.32MB
数据库课程设计小型电子商务数据管理系统.docx
《数据库课程设计小型电子商务数据管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计小型电子商务数据管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
数据库课程设计小型电子商务数据管理系统
“数据库系统”
课程设计报告
前言:
本次课程设计由小组完成。
内容分三个模块,包括数据库设计模块、管理员窗口设计模块、客户窗口设计模块,分别由周鑫、朱关兵、安鹏飞完成。
开发平台:
数据库设计使用SQlserver,代码编写使用VS2010窗口应用程序,使用语言为C#
在做课程设计时,时间确实比较紧张所以在需求分析方面想的不是非常周到,做用户需求时考虑到我们作为消费者之前购买图书的流程是怎样的,以及参考自己在学校图书馆借书的经历来进行用户需求分析,在概念结构设计方面确实有很大欠缺,在验收课程设计时,胡老师指出的一些问题以及给予的建设性意见让我感觉到这次课程设计需要完善的地方还是蛮多的,接下来我从方案设计过程、方案实现过程、方案后期改进三个大的方面来阐述我对这次课程设计的认识
第1章方案的设计过程
1.1小型电子商务管理系统的需求分析之我承担部分
随着互联网的普及,网上购物已经成了大家很重要的消费方式。
由此购物网站逐渐发展起来,当然很多人也会选择通过在线方式来购买图书,我们做的小型电子商务数据管理是从卖方角度去设计的,在设计过程中充分考虑供求关系的处理,优化交易双方的操作,达到我们能力水平范围内的最佳水平。
1.2系统的功能之客户端
1)理论上系统的各种图书可以供客户查询,订购。
2)理论上能对图书进行分类查询,按关键字进行查询。
3)客户可以再系统内进行注册并登陆系统,客户信息以表的形式存储在数据库中。
4)客户下订单后能够更新相关图书的数量,并且客户能查询到自己的订单查看详情。
5)对于已注册客户,要保护他们的私人信息包括客户的联系电话、地址等不被泄露,涉及到安全性。
6)理论上,客户能一次购买不同种类的不同数量的图书,而订单可以是一个,并且用户能对订单进行修改或取消。
1.3数据库设计
(1)概念结构设计
根据上述需求,找出的实体及实体之间的联系如下:
订单实体
客户实体
发货实体
E-R图
(2)逻辑结构设计
根据上述E-R模型,将之转换为关系模式集:
订单(订单号、客户代码、图书编号、数量、价格、付款方式、付款标志)
外键:
客户代号、图书编号
客户(客户代码、姓名、密码、地址、电子邮件、邮编、联系电话)
发货(订单号、发货方式、发货日期)外键:
订单号
订购(订单号、图书编号、数量、总价)外键:
订单号,图书编号
(3)数据库表结构设计
根据上述关系模式集和实际情况,设计数据库物理结构如下所述
表2.1类别表(Type)
字段名
类型
长度
说明
Tno
Char
2
类别号,主键,索引
Tname
varchar
20
类别名,非空,索引
表2.2出版商表(pblisher)
字段名
类型
长度
说明
pbsno
Char
8
出版商代号,主键,索引
pbsname
varchar
40
出版商名称,非空
pbsadd
varchar
40
地址,非空
pbsphone
varchar
20
电话,非空
pbspostcode
varchar
10
邮编,非空
pbscontact
varchar
10
联系人,非空
表2.3图书表(pblisher)
字段名
类型
长度
说明
bno
Char
4
图书编号,主键,索引
bname
varchar
100
图书名称,非空,索引
Tno
Char
2
类别号,外键,非空
page
int
页数,非空,大于0
price
Money
单价,非空,大于等于0
quantity
int
数量,非空,大于等于0
pbsno
char
8
出版商代号,外键,非空
edition
varchar
10
版次,非空
first_author
varchar
20
第一作者,非空
date_of_publish
date
出版日期,非空
description
varchar
1000
内容简介,非空
表2.4客户表(client)
字段名
类型
长度
说明
Cno
char
8
客户代码,主键,索引
Cname
varchar
10
姓名,非空
Cpass
varchar
16
密码,非空
Cadd
varchar
40
地址,非空
Cmail
varchar
20
电子邮件,非空
Cpostcode
varchar
10
邮编,非空
Cphone
varchar
20
联系电话,非空
表2.5订单表(border)
字段名
类型
长度
说明
Ono
char
8
订单号,主键,索引
Cno
char
8
客户代码,外键,非空
bno
char
4
图书编号,外键,非空
quantity
int
数量,非空
price
money
总价,非空
paytype
varchar
10
付款方式,非空,('货到付款','网上支付')
Cstatus
varchar
10
付款标志,非空,('未付款','已付款')
表2.6发货表(bsend)
字段名
类型
长度
说明
Ono
char
8
订单号,主键,外键,索引
Stype
varhar
20
发货方式,非空,('中通','圆通')
Sdate
datetime
发货日期
第2章方案实现过程之客户端
(1)系统客户登陆窗口的设计过程
用户登录窗体主要功能有三:
用户注册、用户登录、以及管理员入口。
在设计时,利用VS的C#开发环境,增加多个label和button、textbox控件。
效果图如下
源代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespace数据库
{
publicpartialclass用户登录:
Form
{
public用户登录()
{
InitializeComponent();
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
登陆lvFrm=new登陆();
lvFrm.Show();
Hide();
}
SqlConnectionconn;
publicstaticstringuserID;
publicstaticstringuserpsd;
privatevoidbtnLogin_Click(objectsender,EventArgse)
{
conn=newSqlConnection("DataSource=(local);InitialCatalog=bookstore;IntegratedSecurity=True");
conn.Open();//打开数据库
SqlCommandcmd=newSqlCommand();
stringstrsql="select*fromCustomerwhereCno="+txtUserName.Text
+"andCpass="+txtUserPwd.Text;
cmd=newSqlCommand(strsql,conn);
SqlDataReaderrd=cmd.ExecuteReader();
if(rd.HasRows)
{
/*BuylvFrm=newBuy();
lvFrm.Show();
Hide();*/
用户购买frm2=new用户购买();
Hide();
inta;
int.TryParse(txtUserName.Text,outa);
frm2.STR=a.ToString();
frm2.ShowDialog();
}
else
{
label4.Text="请正确输入用户名与密码";
txtUserPwd.Text=null;
}
conn.Close();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
注册lvFrm=new注册();
lvFrm.Show();
Hide();
}
privatevoid用户登录_Load(objectsender,EventArgse)
{
}
}
}
(2)用户登录系统后的购买界面的设计:
考虑到我和管理员的管理系统要合并为同一个完整系统,我在编写用户购买界面时减少了窗体的数量,但是主体功能都在。
此处用到了窗体传值技术、DataGridView控件展示数据库的图书表,订单表。
下图展示了用户登录后的图书查询、图书购买、订单形成、订单查询的操作过程
用户登录后的界面
用户查询所有图书的界面
以上三图展示用户提交订单并成功过程
用户查询订单界面
源代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespace数据库
{
publicpartialclass用户购买:
Form
{
public用户购买()
{
InitializeComponent();
}
privatestringstr;//定义的私有变量
publicstringSTR//为窗体Form2定义的属性
{
get//读
{
returnstr;
}
set//写
{
str=value;
}
}
privatevoidlabel5_Click(objectsender,EventArgse)
{
}
privatevoidlabel1_Click(objectsender,EventArgse)
{
}
SqlConnectionconn;
privatevoidbtnselect_Click(objectsender,EventArgse)
{
conn=newSqlConnection("DataSource=(local);InitialCatalog=bookstore;IntegratedSecurity=True");
conn.Open();
SqlCommandcmd=newSqlCommand("select*frombooks",conn);
SqlDataAdaptersda=newSqlDataAdapter();
sda.SelectCommand=cmd;
DataSetds=newDataSet();
sda.Fill(ds,"books");
dataGridView1.DataSource=ds.Tables[0];
dataGridView1.Columns["bno"].HeaderText="编号";
dataGridView1.Columns["bname"].HeaderText="名称";
dataGridView1.Columns["tno"].HeaderText="类别号";
dataGridView1.Columns["page"].HeaderText="页数";
dataGridView1.Columns["price"].HeaderText="单价";
dataGridView1.Columns["quantity"].HeaderText="数量";
dataGridView1.Columns["pbsno"].HeaderText="出版社代号";
dataGridView1.Columns["edition"].HeaderText="版次";
dataGridView1.Columns["first_author"].HeaderText="第一作者";
dataGridView1.Columns["date_of_publish"].HeaderText="出版年月";
dataGridView1.Columns["description"].HeaderText="内容简介";
conn.Close();
}
privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse)
{
txtID.Text=dataGridView1.SelectedCells[0].Value.ToString();
txtPrice.Text=dataGridView1.SelectedCells[4].Value.ToString();
}
privatevoidCalc_Click(objectsender,EventArgse)
{
floata,b,sum;
if(float.TryParse(txtPrice.Text,outa)&&float.TryParse(txtBquanity.Text,outb))//关于TryParse的使用方法,见补充知识。
{
sum=a*b;
txtjin.Text=sum.ToString();
txtjin.Show();
}
else
{
MessageBox.Show("计算出错!
");
}
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
Randomrad=newRandom();//实例化随机数产生器rad;
intvalue=rad.Next(1000,10000);//用rad生成大于等于1000,小于等于9999的随机数;
txtRandom.Text=value.ToString();//用label控件label1显示产生的四位随机数;
}
SqlConnectionconn1;
SqlCommandcmd;
privatevoidbtnSubmit_Click(objectsender,EventArgse)
{
conn1=newSqlConnection("DataSource=(local);InitialCatalog=bookstore;IntegratedSecurity=True");
conn1.Open();
SqlCommandcmd=newSqlCommand();
cmd.Connection=conn1;
cmd.CommandText="insertintoborder(Ono,Cno,bno,quantity,price,paytype,cstatus)values("+txtRandom.Text.Trim()+","+txtCID.Text.Trim()+","+
txtID.Text+","+txtBquanity.Text.Trim()+","+
txtjin.Text.Trim()+","+"'"+
txtFang.Text.Trim()+"'"+","+
this.la.Text.Trim().ToString()+");";
cmd.CommandType=CommandType.Text;
cmd.ExecuteNonQuery();
MessageBox.Show("提交成功!
");
cmd.CommandText="updatebookssetquantity=quantity-"+txtBquanity.Text.Trim()+"wherebno="+txtID.Text.Trim();
cmd.CommandType=CommandType.Text;
cmd.ExecuteNonQuery();
cmd.CommandText="insertintobsend(Ono,Stype,Sdate)values("+txtRandom.Text+","+
this.la.Text.Trim().ToString()+","+
this.la.Text.Trim().ToString()+");";
cmd.CommandType=CommandType.Text;
cmd.ExecuteNonQuery();
btnselect.PerformClick();
}
privatevoidbtncheck_Click(objectsender,EventArgse)
{
conn=newSqlConnection("DataSource=(local);InitialCatalog=bookstore;IntegratedSecurity=True");
conn.Open();
SqlCommandcmd=newSqlCommand("select*fromborderwhereCno="+this.txtCID.Text,conn);
SqlDataAdaptersda=newSqlDataAdapter();
sda.SelectCommand=cmd;
DataSetds=newDataSet();
sda.Fill(ds,"broder");
dataGridView2.DataSource=ds.Tables[0];
dataGridView2.Columns["Ono"].HeaderText="订单编号";
dataGridView2.Columns["Cno"].HeaderText="客户编号";
dataGridView2.Columns["bno"].HeaderText="图书编号";
dataGridView2.Columns["quantity"].HeaderText="数量";
dataGridView2.Columns["price"].HeaderText="金额";
dataGridView2.Columns["paytype"].HeaderText="付款方式";
dataGridView2.Columns["Cstatus"].HeaderText="订单状态";
conn.Close();
}
privatevoiddataGridView1_CellContentClick(objectsender,DataGridViewCellEventArgse)
{
}
privatevoidlabel3_Click(objectsender,EventArgse)
{
}
privatevoidtxtBquanity_TextChanged(objectsender,EventArgse)
{
}
privatevoidlabel4_Click(objectsender,EventArgse)
{
}
privatevoidlabel9_Click(objectsender,EventArgse)
{
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
用户登录lvFrm=new用户登录();
lvFrm.Show();
Hide();
}
privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse)
{
}
privatevoidBuy_Load(objectsender,EventArgse)
{
txtFang.DropDownStyle=ComboBoxStyle.DropDownList;
txtFang.Items.Add("货到付款");
txtFang.Items.Add("网上支付");
txtCID.Text=str;
}
privatevoidtxtPrice_TextChanged(objectsender,EventArgse)
{
}
privatevoidtxtjin_TextChanged(objectsender,EventArgse)
{
}
}
}
(3)用户注册
用户注册后,数据自动插入数据库中的Customer表中,并在界面处设计了返回登陆窗的button
下图展示用户注册的过程
源代码;
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespace数据库
{
publicpartialclass注册:
Form
{
public注册()
{
InitializeComponent();
}
privatevoidFormCZ_Load(obj
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 小型 电子商务 数据管理 系统