数据库课程设计网上购书系统.docx
- 文档编号:1178705
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:14
- 大小:132.32KB
数据库课程设计网上购书系统.docx
《数据库课程设计网上购书系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计网上购书系统.docx(14页珍藏版)》请在冰点文库上搜索。
数据库课程设计网上购书系统
数据库课程设计报告
题目:
网上购书系统
系部名称
:
计算机学院
专业名称
:
计算机科学与技术
班级
:
计科0703
学号
:
12
学生姓名
:
大熊
指导教师
:
乔平安
时间
:
2010年3月16日至2010年5月25日
一、课程设计目的
课程设计的目的是为了巩固复习曾经学习过的数据库课程,并通过实际的实验对所学的知识加以巩固以达到模拟现实生活中实际用例的目的,并增加同学们适应以后工作中的团队工作中的合作互助的团队精神。
二、课程设计内容
三、
网上书店主要由前台会员管理模块和后台管理员模块两部分组成。
前台功能模块主要用于实现会员注册,登录,修改个人信息,分类查看书目信息、购书、管理购物车、结帐、查看各种服务条款等功能。
后台管理模块主要用于实现后台管理人员对会员,商品,物流,订单和系统的管理等功能。
通过对网上书店工作过程的内容和数据流图分析,设计如下面的数据项和数据结构。
1、管理员信息,包括数据项有:
管理员编号、管理员账号、管理员密码。
2、会员信息,包括数据项有:
会员账号、会员密码、会员昵称、会员E-mail、会员级别(管理员设定)。
3、图书信息,包括数据项有:
图书编号、图书名称、作者、出版社编号、出版日期、图书类别编号、图书简介。
(⑴出版社信息,包括数据项有:
出版社编号、出版社名称。
⑵图书类别信息,包括数据项有:
图书类别编号、图书类别名称。
)
4、图书订单,包括数据项有:
会员账号、下定单日期、收货地址、收货地址邮编、收货人姓名、收货人联系方式、送货方式编号、总费用、图书名称、现已售出量情况。
5、购物车,包括数据项有:
会员账号、每种图书名称、每种图书市场价格、每种图书网站价格、每种图书数量、每种图书的价格、图书总价。
三、软硬件环境及系统所采用的体系结构
Access数据库和java所做的前台开发
四、需求分析
通过实际调查,要求本网站具有以下功能:
Ø系统具有良好的人机界面。
Ø如果系统的使用对象较多,则要求有较好的权限管理。
Ø全面展示网上书店内的交易信息。
Ø书目分类显示,方便顾客了解本网上书店内的图书
Ø查看网上书店内的交易信息。
Ø系统最大限度地实现易维护性和易操作性。
Ø系统运行稳定、安全可靠。
Ø支持图书检索显示,可以通过查找图书的模糊信息查找图书。
五、系统设计
1.系统结构图(功能模块图)
网站业务流成分析:
网上书店系统业务流程图:
网上书店系统业务流程:
网上书店前台管理功能结构图:
2.数据库设计
数据库中的E-R图:
(列出其中一个关系进行说明)
该系统中的注册会员的信息表如下所示
六、系统的实施
购物车的设计,有添加,更改,结算,提交功能的实现:
ackagecart;
importjava.util.Vector;
publicclassCart{
Vectorv=newVector();
Stringact=null;
Stringitem=null;
privatevoidaddItem(Stringid){
v.addElement(id);
}
privatevoidremoveItem(Stringid){
v.removeElement(id);
}
publicvoidsetItem(Stringid){
item=id;
}
publicvoidsetAct(Strings){
act=s;
}
publicString[]getItems(){
String[]s=newString[v.size()];
v.copyInto(s);
returns;
}
publicvoidprocessRequest(){
if(act.equals("add"))
addItem(item);
elseif(act.equals("remove"))
removeItem(item);
//resetattheendoftherequest
reset();
}
//reset
privatevoidreset(){
act=null;
item=null;
}
publicvoidclearAll(){
v.removeAllElements();
}
}
现实页面信息,提示等操作的设计:
packagespage;
importjava.sql.*;
publicclassShowPage
{
privateStringstr="";
//显示页号为p的一页(user)
publicStringprintPage(ResultSetrs,intp,intsize)
{
str="";
//将访问游标定位到页号为p的页要显示的第一条记录的位置
try{
for(intk=0;k<(p-1)*size;k++)
rs.next();
}
catch(SQLExceptione){}
for(intiPage=1;iPage<=size;iPage++){
str+=printRow(rs,iPage,p);
try{
if(!
rs.next())break;
}
catch(Exceptione){}
}
returnstr;
}
//显示单行记录(user)
publicStringprintRow(ResultSetrs,inti,intp)
{
Stringtemp="";
try{
intid=rs.getInt("userid");
temp+="
temp+="
seeUser("+id+")'>"+rs.getString("name")+"
temp+="
temp+="
temp+="
temp+="
updateid="+id+"'>修改
temp+="
delid="+id+"'>删除
temp+="";
}
catch(SQLExceptione){}
returntemp;
}
//显示页号为p的一页(book)
publicStringbookPage(ResultSetrs,intp,intsize,booleanf)
{
str="";
//将访问游标定位到页号为p的页要显示的第一条记录的位置
try{
for(intk=0;k<(p-1)*size;k++)
rs.next();
}
catch(SQLExceptione){}
for(intiPage=1;iPage<=size;iPage++){
str+=bookRow(rs,iPage,p,f);
try{
if(!
rs.next())break;
}
catch(Exceptione){}
}
returnstr;
}
//显示单行记录(book)
publicStringbookRow(ResultSetrs,inti,intp,booleanf)
{
Stringtemp="";
try{
intid=rs.getInt("bookid");
temp+="
temp+="
detailid="+id+"'>"+rs.getString("bookname")+"
temp+="
temp+="
temp+="
if(f)
{
temp+="
temp+="
updateid="+id+"'>修改
temp+="
delid="+id+"'>删除
}
else
temp+="
dealid="+id+"&act=add'>加入购物车
temp+="";
}
catch(SQLExceptione){}
returntemp;
}
//显示页号为p的一页(order)
publicStringorderPage(ResultSetrs,intp,intsize,booleanf)
{
str="";
//将访问游标定位到页号为p的页要显示的第一条记录的位置
try{
for(intk=0;k<(p-1)*size;k++)
rs.next();
}
catch(SQLExceptione){}
for(intiPage=1;iPage<=size;iPage++){
str+=orderRow(rs,iPage,p,f);
try{
if(!
rs.next())break;
}
catch(Exceptione){}
}
returnstr;
}
//显示单行记录(order)
publicStringorderRow(ResultSetrs,inti,intp,booleanf)
{
Stringtemp="";
try{
Stringorderid=rs.getString("orderid");
temp+="
temp+="
detailid="+orderid+"'>"+orderid+"
temp+="
temp+="
if(f)
{
temp+="
seeUser("+rs.getString("userid")+")'>"+rs.getString("username")+"
temp+="
delid="+orderid+"'>删除
}
temp+="";
}
catch(SQLExceptione){}
returntemp;
}
}
七、系统评价及心得体会
1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。
本次的设计总体来书设计的比较简单,没有考虑的详细,好些地方没有考虑进去。
也有些地方是做的比较满意的,有可圈点的地方。
首先,比如书店里各种书的现有库存量。
所以自己再设计时将库存量默认为是无限大,所以不存在在购买时,书已经卖完的情况。
这种情况显然是与现实不符合的,这算是一个不足之处。
其次,在数据库的设计中,三个表之间没有什么较大的联系与约束,所以增加了在编程方面的工作量。
合理之处有:
在界面的设计方面设计的比较简单而且人性化,对买书的操作流程设计的比较合理,可以对所有书进行分类查询,以及将所选书先放在虚拟的购物车中,最后在结算。
这些都比较让客户刚觉到方便,和现实没有太大差别,再者还对每种卖出的书的数量做了统计,可以看出那些书是畅销书
其实在设计的时候可以根据书的销量标记那些书是畅销书,让消费者一目了然。
2、在学习过程中的感受。
在本次课程设计中,好些东西都不会,所以数据库方面的东西比较好做,但是由于对Access数据库使用不太了解,所以花了一部分时间去看。
所以在无形之中,学会了Access数据库的使用,也算是一个收获吧。
其次是感觉到会的东西太少,做的时候,最好的帮手其实是图书馆,不会的时候可以去图书馆去借阅相关的图书,不仅可以解决问题,也可以学到相应的知识。
再者就是团队之间的合作是很重要的,和组员之间的合理合作与分工可以大大节约时间,与组员的讨论则可以使自己的作品更加完善,发现更多的不足之处。
八、参考文献
PHP+MySQL动态网站开发————《清华大学出版社》
PHP5与MySQL5网络程序-开发原理与实践教程————《电子工业出版社》
九、附录:
源代码
(略,详见电子版实验报告)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 网上 购书 系统