中南大学数据库课程设计.docx
《中南大学数据库课程设计.docx》由会员分享,可在线阅读,更多相关《中南大学数据库课程设计.docx(23页珍藏版)》请在冰豆网上搜索。
![中南大学数据库课程设计.docx](https://file1.bdocx.com/fileroot1/2023-7/11/30484060-dcbf-4a8c-9dc1-40196b99a4da/30484060-dcbf-4a8c-9dc1-40196b99a4da1.gif)
中南大学数据库课程设计
中南大学
数据库课程设计
课程设计题目香水推荐系统设计
指导老师周扬
专业班级电子信息1303
姓名蒋冰玉
学号0903130313
实验日期2015年9月
1.前言····································································3
1.面向对象·······························································3
2.课程设计目的···························································3
3.课程设计总体要求·······················································3
4.课程设计要求···························································3
5.开发工具·······························································3
6.开发任务概述····························································3
2.后台程序设计·························································5
1.系统E-R表构建·························································5
2.SQL表格部分截图························································6
3.前台程序设计·······················································7
1.实验设计总体框架······················································7
2.功能模块分析··························································8
3.业务流程······························································8
4.实验设计截图··························································9
四.实验心得····························································19
前言
一.面向对象
中南大学2015级信息科学与工程学院电子信息工程专业1301-1303班学生
2.课程设计目的
培养学生熟练掌握一种大型数据库系统的开发环境如ORACLE9i/10g/11g(或更高版本)或SQLSERVER2005/2008/2010(或更高版本),对其底层的数据库触发器与程序过程有深入的了解,了解并基本掌握面向数据库的C/S模式的通用开发工具如VB、PB或DELPHI或直接用语言C#或Java开发C/S模式的系统;或者采用ASP、JSP、PHP等开发技术来开发B/S模式的系统,熟悉开发一个小型应用系统的过程及主要技术。
其中基于.Net平台与J2EE平台工具套件中同时支持B/S模式与C/S模式的开发。
三.课程设计总体要求
1.完成设计、程序编制、调试与检查验收
2.书写完整的课程设计报告(至少20页),需求分析(要做什么事情如功能需求、信息需求、做到什么程度如性能需求、有哪些难点或关键技术),系统设计(功能模型、信息模型、数据库设计、典型处理流程或算法、典型的后台处理如触发器或过程所涉及到的逻辑等)、系统实现及关键技术、总结与展望等章节。
3.数据库与大型程序的对象命名规则一定为XXX_班号(+)学号尾4位
例如car_master_10104即表示车辆主要信息表,为1班,学号尾数是0104设计的表结构,cloth_Detail_42309即表示衣服信息明细表,为4班,学号尾数是2309设计的表结构,对象(包括大的程序对象及程序名等)如果不能体现班级及学号等信息,则视为程序不合要求,程序部分成绩可能不合格。
4.课程设计要求
(1)提出技术方案,主要包括开发与运行模式选择、开发工具、数据库管理系统及其主要的特性保证。
(课程设计报告中体现)
(2)对系统的功能和数据进行需求分析、总体设计和详细设计,并提交设计报告。
报告中数据库设计部分要包含系统E-R图、数据字典、表、视图、索引、文件组织结构等的定义和描述,还需要包括对象命名法。
(3)程序实现各项功能,在课程设计报告中要反映实现过程中采用的关键技术和主要程序流程以及主要的操作界面。
(4)数据库后台最好有触发器与多个过程,数据结构中最好有主明细结构(即主表与明细表联动)。
5.开发工具
VisualStudioCommunity2015
六.开发任务概述
本次设计主要是开发商品荐购系统。
其业务需求如下:
某大型网购公司已积累了稳定的用户群,为了与用户加强联系、广泛收集商品信息、给用户更好的价格,特推出商品荐购系统,即由用户推荐网上其它门店的商品明细(含价格),系统管理员通过系统获取荐购的商品信息后会通过各种渠道进行核对(主要是人工方法,系统辅助商品比较分析),如果信息属实,系统管理员会给用户(会员)增长积分(标准为1-10分),并根据会员积分的情况进行升级(如原来0分为初级会员,荐购成功积累大于等于10分,升级为1级会员,如积累100分及以上,则为10级会员,其它级别依此类推),再根据会员级别允许会员以级别相应折扣购买推荐的或其它用户推荐的商品,如初级为全价,1级为9折、5级为5折可购买自荐商品或其它用户荐购商品;6级为4折、9级为1折可购买自荐商品;10级及以上直接免费获得自荐商品。
商品荐购系统的功能主要包括
1.用户或会员操作功能:
(1)用户注册、用户登录、用户信息维护等;
(2)商品搜索、比较、排名、推荐等;
2.管理员操作功能:
(1)推荐商品采纳、会员积分、会员升级;
(2)商品类别维护、类似商品信息统一等;
(3)商品搜索、比较、排名;
(4)操作日志记录、查询与维护等。
可采用C/S模式也可以采用B/S模式,还可以采用C/S模式与B/S模式相结合的汇合模式如管理员功能中商品类别维护、类似商品信息统一等;操作日志记录、查询与维护等用C/S模式,其它功能用B/S模式等,混合模式只要实现部分功能其程序部分的成绩将是良好及以上。
最好以某一实际的商品为参考,尽量不重复!
商品类别重复的,将考虑成绩降档,先由同学将开发技术与商品类别对象于18周二上午报上来(可报2-3个),由指导老师协调后于18周三反馈给大家。
每种类型的商品其描述属性不完全一样,请注意数据表结构的设计。
商品可为车辆、衣服、图书、运动器材、食品、电子设备、鲜花、手机等等,还可以冠以不同的厂家或公司如:
通用汽车、红旗轿车、山河智能轻型飞机、唯品会衣服、李宁运动服装、三星手机、联想电脑等等。
后台程序设计
我使用的是visualstudiocommunity2015在这个编译器中整合了前台设计和后台数据库软件SQLSever
1.系统E-R表构建
二、后台SQL表格一览
本次课程设计所使用的数据库名称及所有表的列表如图所示
该表为产品表用来存储产品信息
该表为管理员表用来存储管理员账号
该表为用户表用来存储用户信息
该表为推荐表用来存储用户推荐的已有商品
前台程序设计
一.实验设计总体框架
2.功能模块分析
1.登录:
用户必须在注册了账户或者已有账户才能登录,进到用户信息界面。
管理员需点Admin进入管理员登录界面
2.管理员登录:
管理员在登录主界面点Admin进入此界面,需输入账户密码后进入管理员管理界面
3.用户信息:
用户在成功登录后进入用户信息界面,在此界面可以查看用户的姓名、推荐数,确认推荐数、等级、积分。
点击修改按钮可以对指定(姓名)信息进行修改,其他信息由系统生成或者只有管理员有权限修改。
点击搜索商品按钮进入商品推荐
4.管理员管理:
可以查看会员的信息,还可以对进行推荐的会员进行确认推荐和更新会员积分的操作。
5.搜索商品:
进入该页面会显示所有商品的信息和用户本人的推荐信息。
用户在商品表中选中商品会在下面显示商品的详细信息,点击推荐,可以对商品进行推荐,此时在用户个人推荐信息表中会出现新增的商品信息(注:
一个商品一个用户只能推荐一次,否则将弹出警告框提示已经推荐过一次)。
在商品表中选中商品点击删除,可以删除对此商品的推荐(注:
只能对自己已经推荐的商品进行删除,如果对尚未推荐的商品进行删除会弹出警告框提示未曾推荐商品,请先推荐)
3.业务流程
用户成功注册后可成为会员,登录后可以查看商品的信息,以及所有用户推荐的总次数。
用户自身也可对商品进行推荐操作。
推荐后需管理员进行操作,确认推荐信息,以及更新会员积分信息。
4.实验设计及截图
1、登陆界面
登陆注册功能的实现:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
usingSystem.IO;
usingRegister.DataAccess;
namespaceperfume_interface_30313
{
publicpartialclassmain:
Form
{
publicstaticstringu_id="";
publicstaticstringu_password="";
publicmain()
{
InitializeComponent();
}
privatevoidlogin_button_Click(objectsender,EventArgse)
{
stringid=this.id_input.Text.ToString();
stringpassword=this.password_input.Text.ToString();
u_id=id;
u_password=password;
SqlConnectionthisconnection=newSqlConnection
(@"Server=(localdb)\MSSQLLocalDB;IntegratedSecurity=True;"+"DataBase=perfume_select_30313");
thisconnection.Open();
stringcmdText="selectM_ID,M_PasswordfromMemberwhereM_ID='"+u_id+"'andM_Password='"+u_password+"'";
SqlDataAdaptercommand=newSqlDataAdapter(cmdText,thisconnection);
DbHelperSQL.ExecuteSql(cmdText);
DataTabledt=newDataTable();
command.Fill(dt);
thisconnection.Close();
if(dt!
=null&&dt.Rows.Count>0)
{
this.Visible=false;
(newoperate()).ShowDialog();
}
else
{
this.id_input.Text="";
this.password_input.Text="";
MessageBox.Show("Therecordisnotexist,Pleasesignin","Signin",MessageBoxButtons.OK
MessageBoxIcon.Information);
}
thisconnection.Close();
}
privatevoidsignin_button_Click(objectsender,EventArgse)
{
SqlConnectionthisconnection=newSqlConnection
(@"Server=(localdb)\MSSQLLocalDB;IntegratedSecurity=True;"+"DataBase=perfume_select_30313");
thisconnection.Open();
stringcmdText="insertintoMembervalues('"+u_id+"','"+u_password+"','Anonymous1','0','0','0','0')";
DbHelperSQL.ExecuteSql(cmdText);
thisconnection.Close();
this.Visible=false;
(newoperate()).ShowDialog();
}
privatevoidadmin_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse)
{
//this.Visible=false;
//(newadmin()).ShowDialog();
}
}
}
2、用户信息界面
用户信息界面的实现:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
usingSystem.IO;
usingRegister.DataAccess;
namespaceperfume_interface_30313
{
publicpartialclassoperate:
Form
{
stringu_id=main.u_id;
stringu_password=main.u_password;
publicoperate()
{
InitializeComponent();
}
privatevoidmodify_Click(objectsender,EventArgse)
{
SqlConnectionthisconnection=newSqlConnection
(@"Server=(localdb)\MSSQLLocalDB;IntegratedSecurity=True;"+"DataBase=perfume_select_30313");
thisconnection.Open();
stringname_modify=this.name.Text.ToString();
stringcmdText="updateMembersetM_Name='"+name_modify+"'whereM_ID='"+u_id+"'andM_Password='"+u_password+"'";
DbHelperSQL.ExecuteSql(cmdText);
thisconnection.Close();
}
privatevoidsearch_Click(objectsender,EventArgse)
{
this.Visible=false;
(newsearch_show()).ShowDialog();
}
privatevoidoperate_Load(objectsender,EventArgse)
{
SqlConnectionthisconnection=newSqlConnection
(@"Server=(localdb)\MSSQLLocalDB;IntegratedSecurity=True;"+"DataBase=perfume_select_30313");
thisconnection.Open();
DataSetds=newDataSet();
stringcmdText="selectM_Name,Point,M_rec_num,Level,Affr_numfromMemberwhereM_ID='"
+u_id+"'andM_Password='"+u_password+"'";
ds=DbHelperSQL.Query(cmdText);
this.name.Text=ds.Tables[0].Rows[0][0].ToString();
this.point.Text=ds.Tables[0].Rows[0][1].ToString();
this.rec_num.Text=ds.Tables[0].Rows[0][2].ToString();
this.leve.Text=ds.Tables[0].Rows[0][3].ToString();
this.affr_num.Text=ds.Tables[0].Rows[0][4].ToString();
thisconnection.Close();
}
}
}
3、商品搜索页面
搜索商品界面的实现:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
usingSystem.IO;
usingRegister.DataAccess;
namespaceperfume_interface_30313
{
publicpartialclasssearch_show:
Form
{
stringu_id=main.u_id;
stringu_password=main.u_password;
publicstaticstringid_add="";
publicstaticstringid_sub="";
publicstaticstringname_show="";
publicstaticstringname_add="";
publicstaticstringbrand_add="";
publicstaticstringprice_add="";
publicDataSetds_show;
publicsearch_show()
{
InitializeComponent();
}
privatevoidsearch_show_Load(objectsender,EventArgse)
{
//TODO:
这行代码将数据加载到表“perfume_select_30313DataSet.Recommend”中。
您可以根据需要移动或删除它。
this.recommendTableAdapter.Fill(this.perfume_select_30313DataSet.Recommend);
stringsql_l="select*fromProduct";
DataSetds_l=DbHelperSQL.Query(sql_l);
productBindingSource.DataSource=ds_l.Tables[0];
stringsql_h="select*fromRecommendwhereM_ID='"+u_id+"'";
DataSetds_h=DbHelperSQL.Query(sql_h);
recommendBindingSource.DataSource=ds_h.Tables[0];
}
privatevoidid_TextChanged(objectsender,EventArgse)
{
stringid_add=this.id.Text.ToString();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringid_add=this.id.Text.ToString();
stringprice_add=this.price.Text.ToString();
stringbrand_add=this.Brand.Text.ToString();
stringname_add=this.name.Text.ToString();
DataSetds_r2=newDataSet();
stringsql_r2="select*fromRecommendwhereM_ID='"+u_id+"'andP_ID='"
+id_add+"'";
ds_r2=DbHelperSQL.Query(sql_r2);
if(