数据库原理课程设计报告-谭佳瑶最终版剖析
- 格式:doc
- 大小:1.47 MB
- 文档页数:16
华北电力大学实验报告||实验名称超市管理系统课程名称数据库原理课程设计||专业班级:信安1301 学生姓名:金祥学号:201309040107 成绩:指导教师:崔克彬实验日期: 2015.07.101.系统功能图2.系统详细描述与E-R设计一个会员可以购买多种商品,每种商品可以被多个会员购买。
每种商品有一个唯一的编号作为标志。
管理员对商品信息、管理员信息、会员信息和商品类别具有增、删、改、查的权限。
根据以上描述得到的实体及属性如下:A.实体:会员:会员编号,密码,性别,出生日期商品:商品编号,商品名称,商品类型,数量,生产公司,产地,描述管理员:管理员编号,姓名,密码商品类型:类型编号,名称B.实体之间的联系如下:会员与商品之间的关系:购买(会员编号,商品编号,购买日期,退货日期)管理员与管理员间的联系:管理管理员与商品间的联系:管理管理员与会员间的联系:管理管理员与商品类型间的联系:管理C.说明:下划线文字为主码;为了避免冲突发生,所有属性(除退货日期及商品描述外)均非空。
D.根据以上分析设计出实体及其属性图如下:E.实体及其联系图3.系统逻辑结构设计A、根据以上E-R图得到系统关系模型如下:会员(会员编号,密码,性别,出生日期)商品(商品编号,商品名称,商品类型,数量,生产公司,产地,描述)管理员(管理员编号,姓名,密码)商品类型(类型编号,名称)购买(会员编号,商品编号,购买日期,退货日期)说明:以上关系中,下划线部分为对应关系的主码,加黑部分为外码,且所有属性(除退货日期及商品描述外)均非空。
B、使用SQL语言创建各表会员表:CREATE TABLE Table_VIP(Vnum varchar(50)primary key,Vname varchar(50),Vpwd varchar(50),Vsex varchar(4)check (V sex in('男','女')),Vbirth datetime)商品表:CREATE TABLE Table_Goods(Gnum varchar(50)primary key,Gname varchar(50),Gcount varchar(50),Gcompany varchar(50),Gplace varchar(50),Gdate datetime,Gdescrib varchar(50),foreign key(Gtype)references Table_Type(Typenum)on delete cascadeon update cascade)管理员表:CREATE TABLE Table_Admin(Anum varchar(50)primary key,Aname varchar(50),Apwd varchar(50))购买表:CREATE TABLE Table_Shopping(id int identity(1,1),Vnum varchar(50),Gnum varchar(50),Stime datetime,Rtime datetime,primary key(Vnum,Gnum),foreign key(Vnum)references Table_VIP(Vnum)on delete cascadeon update cascade,foreign key(Gnum)references Table_Goods(Gnum)on delete cascadeon update cascade)商品类型表:CREATE TABLE Table_Type(Typenum varchar(50)primary key,Typename varchar(50))C、各表的截图图1.管理员表图2.商品类型表图3.商品表图4.购物记录表图5.会员表4、在页面中连接并操作数据库,连接字符串如下:public ConDB() {conStr = @"Server = USER-PC\赟赟; Database = Library; Integrated Security = True;";}5、界面设计与运行结果根据系统所需实现的功能及系统的用户类型不同,将界面设计如下:A.登录界面B.会员主界面C.会员商品查询、购买D.管理员主界面该模块实现管理员信息、商品信息、会员信息、商品类型等基本管理和退货等操作。
E.管理员管理注:会员管理、商品管理、商品类型管理界面都和管理员管理的界面相同,都实现了增、删、改、查的功能。
由于管理员类的主键是Anum,所以当更新的管理员信息编号与已存在的编号相同,会提示错误信息,如下图所示:F.管理员退货界面三、课程设计(综合实验)总结或结论本次实验是我们学习数据库原理后,为了培养我们更好的解决问题和实际动手能力而设置的实践环节。
数据库应用系统开发的过程一般包括可行性研究、需求分析、系统设计、程序编码、程序调试和系统维护六个阶段。
本系统在需求分析和程序健全性方面均存在一些问题,为了解决这些不完善之处,需要在今后的进一步学习中,逐步深入,不断积累经验,不但提高。
本次课程设计我们所做的系统是超市管理系统,是用winsows窗体编写的,数据库开发环境是SQL Server2008,使用的语言是C#。
超市管理系统操作简单,使用方便,条理清晰,界面友好。
本次实验注重的是数据库的设计,所以在设计E—R图、创建各表花费了更多的时间,确定了系统的需求之后再设计,系统比较简单,虽然在实现的过程中也遇到了很多问题,但是通过和同组成员及同学、老师的及时交流完成了实验。
同时,本次实验也提高了自己的团队合作能力,提高了自己与他人的交流合作能力.附录A.部分代码管理员主界面:public partial class AdminManage : Form{GoodsBLL bb = new GoodsBLL();AdminBLL ab = new AdminBLL();public AdminManage(){InitializeComponent();bt_TopManage.Enabled = false;}//按商品编号查询购物记录private void bt_sure_Click(object sender, EventArgs e){string num = tb_num.Text.Trim();DataTable dt = bb.SearchShoppingByGnum(num);if (dt.Rows.Count>0){dataGridView1.DataSource = dt;bt_TopManage.Enabled = true;tb_num.Enabled = false;}else{MessageBox.Show("未找到相应编号的商品", "警告", MessageBoxButtons.OK);}}private void tb_AddAdmin_Click(object sender, EventArgs e){//添加管理员页面Form adl = new AddAdmin();//this.Hide();adl.Show();}private void bt_delAdmin_Click(object sender, EventArgs e){//删除管理员页面Form adl = new DelAdmin();this.Hide();adl.Show();}private void bt_updateAdmin_Click(object sender, EventArgs e) {//修改管理员页面Form adl = new UpdateAdmin();this.Hide();adl.Show();}private void bt_AddGoods_Click(object sender, EventArgs e){//添加商品信息Form adl = new AddGoods();//this.Hide();adl.Show();}private void bt_DelGoods_Click(object sender, EventArgs e){//删除商品信息Form adl = new DelGoods();this.Hide();adl.Show();}private void bt_UpdateGoods_Click(object sender, EventArgs e) {//修改商品信息Form adl = new UpdateGoods();this.Hide();adl.Show();}private void bt_AddVIP_Click(object sender, EventArgs e){//添加会员信息Form adl = new AddVIP();// this.Hide();adl.Show();}private void bt_DelVIP_Click(object sender, EventArgs e){//删除会员信息Form adl = new DelVIP();this.Hide();adl.Show();}private void bt_type_Click(object sender, EventArgs e){Form adl = new TypeManage();//this.Hide();adl.Show();}private void bt_TopManage_Click(object sender, EventArgs e){//退货管理string num= tb_num.Text.Trim();bool b = ab.DeleteByGnum(num);if (b){MessageBox.Show("退货成功!", "提示", MessageBoxButtons.OK);dataGridView1.DataSource = null;tb_num.Enabled = true;tb_num.Text = "";}else{MessageBox.Show("退货未成功!", "提示", MessageBoxButtons.OK);}}private void bt_AddVIP_Click_1(object sender, EventArgs e){Form adl = new AddVIP();//this.Hide();adl.Show();}private void bt_exit_Click(object sender, EventArgs e){Application.Exit();}private void llb_login_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){Form adl = new AdminLogin();this.Hide();adl.Show();}protected override void OnClosing(CancelEventArgs e){//退出提示if (MessageBox.Show(this, "确认退出?", "提示信息:", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes){e.Cancel = false;}else{e.Cancel = true;}}private void bt_return_Click(object sender, EventArgs e){tb_num.Enabled = true;tb_num.Text = "";dataGridView1.DataSource = null;}}会员主界面:public partial class VIPManage : Form{GoodsBLL gb = new GoodsBLL();VIPBLL vb = new VIPBLL();private string vNum;private string vPsw;public VIPManage(){InitializeComponent();comboBox1.SelectedIndex = 0;}public VIPManage(string num, string psw){InitializeComponent();comboBox1.SelectedIndex = 0;vNum = num;vPsw = psw;dataGridView1.AllowUserToResizeColumns = false;dataGridView1.AllowUserToResizeRows = false;dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;}private void bt_sure_Click(object sender, EventArgs e){int i = comboBox1.SelectedIndex;string s = tb_insert.Text.Trim();if (i == 0)//商品编号{dataGridView1.DataSource = vb.SearchGoodsByGnum(s);}if (i == 1)//商品名称{dataGridView1.DataSource = vb.SearchGoodsByGname(s);}}private void bt_Shopping_Click(object sender, EventArgs e){string gnum = tb_num.Text.Trim();bool b = vb.ShoppingGoods(gnum, vNum);if (b){MessageBox.Show("商品购买成功!", "提示", MessageBoxButtons.OK);dataGridView1.DataSource = vb.SearchGoodsByGnum(gnum);}else{MessageBox.Show("商品已售完或已下架!", "提示", MessageBoxButtons.OK); tb_num.Focus();}}Private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e){e.PaintParts = DataGridViewPaintParts.All ^ DataGridViewPaintParts.Focus;}private void bt_IsShopping_Click(object sender, EventArgs e){DataTable dt = new DataTable();dt = vb.SearchAllGoodsByNum(vNum);if (dt.Rows.Count > 0){dataGridView1.DataSource = dt;}else{MessageBox.Show("查询错误!", "提示", MessageBoxButtons.OK);}}private void bt_exit_Click(object sender, EventArgs e){Application.Exit();}private void llb_login_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {Form adl = new AdminLogin();this.Hide();adl.Show();}protected override void OnClosing(CancelEventArgs e){//退出提示if (MessageBox.Show(this, "确认退出?", "提示信息:", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes){e.Cancel = false;}else{e.Cancel = true;}}}。