数据库课程设计报告.docx

上传人:b****3 文档编号:4973018 上传时间:2022-12-12 格式:DOCX 页数:23 大小:1.36MB
下载 相关 举报
数据库课程设计报告.docx_第1页
第1页 / 共23页
数据库课程设计报告.docx_第2页
第2页 / 共23页
数据库课程设计报告.docx_第3页
第3页 / 共23页
数据库课程设计报告.docx_第4页
第4页 / 共23页
数据库课程设计报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据库课程设计报告.docx

《数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告.docx(23页珍藏版)》请在冰豆网上搜索。

数据库课程设计报告.docx

数据库课程设计报告

“数据库系统”

课程设计报告

前言:

本次课程设计由小组完成。

内容分三个模块,包括数据库设计模块、管理员窗口设计模块、客户窗口设计模块,分别由周鑫、朱关兵、安鹏飞完成。

开发平台:

数据库设计使用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(o

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1