二手交易网站课程设计说明书.docx

上传人:b****8 文档编号:10528155 上传时间:2023-02-21 格式:DOCX 页数:55 大小:1.35MB
下载 相关 举报
二手交易网站课程设计说明书.docx_第1页
第1页 / 共55页
二手交易网站课程设计说明书.docx_第2页
第2页 / 共55页
二手交易网站课程设计说明书.docx_第3页
第3页 / 共55页
二手交易网站课程设计说明书.docx_第4页
第4页 / 共55页
二手交易网站课程设计说明书.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

二手交易网站课程设计说明书.docx

《二手交易网站课程设计说明书.docx》由会员分享,可在线阅读,更多相关《二手交易网站课程设计说明书.docx(55页珍藏版)》请在冰豆网上搜索。

二手交易网站课程设计说明书.docx

二手交易网站课程设计说明书

中北大学

应用软件架构设计实验周

课程设计说明书

 

学院:

电子计算机科学与技术学院

专业:

软件工程

题目:

二手物品市场

学生姓名:

师少兵

学号

0906054116

成绩

学生姓名:

耿庆博

学号

0906054137

成绩

学生姓名:

郭凯强

学号

0906054115

成绩

学生姓名:

于潇

学号

0906054104

成绩

学生姓名:

周小龙

学号

0906054147

成绩

指导教师

庞敏

2013年1月9日

1引言

1.1编写目的

本文档是为了让客户了解开发者所了解到的软件功能是否满足了客户的预想的功能,以及个功能模块之间是否存在与客户之间相违背的地方,如果关于该软件有什么需要改进的地方请客户及时提出方便开发人员更好的、更全面的开发该软件,该说明书也将作为开发者前期开发的重要依据。

开发人员编写该文档主要是为了让客户确认开发者即将开发的软件的功能是否有不足之处,有什么功能是没有必要开发的,有哪些功能是不合理的,希望通过该说明书能够让开发者和用户更好的沟通,并作为后期软件交付时软件是否符合用户标准的一个重要参考。

1.2背景说明

每年大四学生毕业时都有很多物品需要出售,这几年我发现学校一直没有一个正当的商品展示平台。

同学们的日常用品出售信息智能是通过口头传递或者发帖到各大论坛,这导致要出售的物品不能快速售出,论坛的秩序也变得混乱不堪。

因此大学急需一个二手物品展示平台来维持正常的论坛秩序,同时帮助大四学生快速将自己的学习用品以及其他日常用品快速出售,同时低年级的同学及附近村民也可以根据个人所需浏览网站获取信息。

该项目由耿庆博提出,由师少兵、耿庆博、于潇、周小龙、郭凯强共同开发,用户主要为在校大学生,该项目由中北大学运营。

1.3定义

列出本文件中用到的专门术语的定义和缩写词的原词组。

跳蚤市场:

俗称二手市场。

相传1884年,巴黎政府为维护干净市容,要求许多捡破烂为生的贫民将市区的废弃物搬运到荒废的军营,这些贫民以平时在垃圾堆里寻宝的功力,自行在废弃物中挑拣尚能用的物品过滤出售,没多久就形成一处固定的市集。

电子数码:

在百惠跳骚街的一个区域,主要用来放置电子数码产品信息。

下架:

与上架相对应的一个商品状态,物品下架之后其他用户不能看到该商品,此时商品的发布者可以查看商品。

1.4参考资料

(1)徐锋,陈喧.UML面向对象基础.北京:

中国水利水电出版社,2006

(2)王珊、萨师煊.数据库系统概论(第四版).北京:

高等教育出版社,2006

(3)冀振燕.UML系统分析与设计教程.北京:

人民邮电出版社,2010

(4)(美)沙赫.软件工程面向对象和传统的方法.北京:

机械工业出版社,2007

(5)孙涌.软件工程教程.北京:

机械工业出版社,2010

(6)杨树林胡洁萍.JAVA语言最新实用案例教程.北京:

清华大学出版社,2006

(7)BruceEckel,JAVA编程思想,北京:

机械工业出版社,2005

(8)孙晓龙、赵莉,JSP动态网站技术入门与提高,北京:

人民邮电出版社,2001

(9)张孝祥、徐明华,JSP基础与案例开发详解,北京:

清华大学出版社,2009

(10)唐爱国,杭志等,JSP技术详解与应用实践,北京:

清华大学出版社,2009

2总体设计

2.1需求规定

输入

处理

输出

用户名、密码、确认密码、qq、手机号码、昵称

将用户注册信息存放到数据库

注册成功信息

用户名、密码

查询数据库处理登陆信息

返回登陆结果

出售商品信息

将商品信息添加到数据库

将物品信息显示到列表

评价信息

保存评论内容及时间信息

评论信息及评论人

2.2运行环境

a.硬件环境要求:

PentiumⅡ或更高的微机。

b.内存要求:

容量至少64M。

c.必要环境:

JDK1.6及以上

d.安装所需硬盘:

10G以上

2.3基本设计概念和处理流程

图2-1组织结构图

 

图2-2交易通信图

图2-3发布商品通信图

图2-4系统用例图

2.4结构设计

2.4.1结构

图2-5系统功能结构图

2.4.2人工处理过程

●用户注册用户信息

●搜索商品

●登陆发布商品信息

●超级管理员添加普通管理员

3数据库设计

3.1概念结构设计

表3-1商品表(goods)

字段

类型

NULL

默认值

说明

其他

id

int

商品id

主键,自动增长

userid

int

用户编号

外键

name

varchar(100)

商品名称

category

vrachar(50)

分类

cgrade

varchar(50)

成色

全新、9成新、8成新

sellingprice

float

0.0

转卖价

专卖价必须不高于原价

costprice

float

0.0

原价

desc

mediumtext

描述

location

char(100)

所在地

conphone

char(11)

联系电话

conqq

char(15)

QQ

state

char(15)

商品状态

上架/下架

edittime

int

最近编辑时间

表3-2用户表(user)

字段

类型

NULL

默认值

说明

其他

id

int

用户编号

主键,自动增长

name

varchar(32)

用户名

只能是字母和数字

密码

varchar(32)

密码

md5加密后的字符串

reg_email

char(30)

注册邮箱

reg_cardid

char(20)

身份证号

reg_ip

char(20)

注册ip

reg_time

int(11)

注册时间

last_time

int(11)

上次登录时间

last_ip

char(20)

上次登录ip

image

varchar(100)

默认头像

个人头像

exp

int

1

经验值

购买商品会增加

表3-3评论表(comments)

字段

类型

NULL

默认值

说明

其他

id

int

评论id

主键,自动增长

userid

int

用户id

user表外键

goodsid

int

商品id

goods表外键

content

char(500)

评论内容

uptime

int

评论时间

表3-4分类表(category)

字段

类型

NULL

默认值

说明

其他

id

int

分类id

father_id

int

0

其上级id

name

varchar(50)

分类名称

表3-5等级经验表(rank_exp)

字段

类型

NULL

默认值

说明

其他

rank

int

等级

exp

int

经验值

新注册用户经验值默认值为1

rank_name

char(20)

等级名称

表3-6公告表(notice)

字段

类型

NULL

默认值

说明

其他

id

int

文章id

title

varchar(200)

标题

content

mediumtext

内容

author

char(50)

作者

uptime

int

日期

hits

int

0

点击量

每点击一次标题,点击量加1

表3-7关键字表(kword)

字段

类型

NULL

默认值

说明

其他

id

int

id

userid

int

用户编号

keyword

varchar(50)

关键字

num

char(50)

被搜索次数

3.2逻辑结构设计

图3-1系统E-R图

3.4安全保密设计

在数据库我们对密码进行了二次的SHA1加密,而且还使用了密钥。

即使我们的数据库信息被泄露,也不会被轻易地破解。

4系统出错处理设计

4.1出错信息

1.用户可能通过在浏览器中直接输入地址进入个人中心。

我们会通过session来控制会员是否已经登录,如果用户没有登录会直接跳转到“首页”或者“登录界面”。

2.展示的商品是通过获取URL中的参数来查询数据库的,如果用户恶意地或无意地修改了URL参数,我们会首先查询是否存在该商品,如果不存在直接跳转到首页,否则显示相应的信息。

4.2补救措施

重启服务器、数据库

5模块详细设计

5.1MODELS设计

php

classMyDBextendsCI_Model{

protected$res;

publicfunction__construct(){

parent:

:

__construct();

$this->load->database();

}

//使用query方式执行SQL语句

publicfunctionquery($sql){

$res=$this->db->query($sql);

if($res){

$this->res=$res;

}

}

publicfunctionget($table){

$res=$this->db->get($table);

}

//返回结果集一个对象数组

publicfunctionresult_object(){

return$this->res->result();

}

//返回结果的关联数组

publicfunctionresult_array(){

return$this->res->result_array();

}

//返回当前请求的行数

publicfunctionnum_rows(){

return$this->res->num_rows();

}

//返回当前请求的列数

publicfunctionnum_fields(){

return$this->res->num_fields();

}

/**返回结果集的第$num条数据,object类型

*注意是第$num条,而不是一共$num条,functionrow_array()一样

**/

publicfunctionrow_object($num){

return$this->res->row($num);

}

//返回结果集的第$num条数据,array类型

publicfunctionrow_array($num){

return$this->res->row_array($num);

}

//返回结果集第一条记录,默认为object类型,可传参'array'则返回array类型

publicfunctionfirst_row($type='object'){

//if($type=='array')return$this->res->first_row('array');

return$this->res->first_row($type);

}

//返回结果集最后一条记录,默认为object类型,可传参'array'则返回array类型

publicfunctionlast_row($type='object'){

return$this->res->last_row($type);

}

//返回最后插入记录的id,适用于主键自增的表

publicfunctioninsert_id(){

return$this->db->insert_id();

}

//返回insert/update/delete操作影响的条目数

publicfunctionaffected_rows(){

return$this->db->affected_rows();

}

//设置查询的返回

publicfunctionlimit($start=0,$offset=10){

$this->db->limit($offset,$start);

}

//查询的排序方式,默认为id降序

publicfunctionorder_by($field='id',$order='desc'){

$this->db->order_by($field,$order);

}

//查询某个字段的和

publicfunctionselect_sum($field){

$this->dn->select_sum($field);

}

//GROUPBY字句

publicfunctiongroup_by($field){

$this->db->group_by($field);

}

publicfunctionhaving($hav){

$this->db->having($hav);

}

publicfunctionwhere_in($field,$in){

$this->dn->where_in($field,$in);

}

/**

*参数说明

*int$mode返回类型

*0返回多条记录

*1返回单条记录

*2返回记录的数目

*3返回limit,limit=array(start,end)

*string/array$table数据库表,两种传值模式

*普通模式:

*'tb_member,tb_money'

*数组模式:

*array('tb_member','tb_money')

*string/array$fields需要查询的数据库字段,允许为空,默认为查找全部,两种传值模式

*普通模式:

*'username,password'

*数组模式:

*array('username','password')

*string/array$where查询条件,允许为空,两种传值模式

*普通模式:

*'andtype=1andusernamelike"%os%"'

*数组模式:

*array('type=1','usernamelike"%os%"')

*string$orderby排序,默认为id倒序

*/

publicfunctionq_select($mode,$table,$fields='*',$where,$orderby='iddesc',$limit){

//参数处理

if(is_array($table)){

$table=implode(',',$table);

}

if(is_array($fields)){

$fields=implode(',',$fields);

}

if(is_array($where)){

$where=implode(',',$where);

}

if(is_array($limit)){

$limit=implode(',',$limit);

}

if($mode==2){

$this->query("SELECTidFROM{$table}WHERE1=1{$where}");

$return=$this->num_rows();

}elseif($mode==1){

$this->query("SELECT{$fields}FROM{$table}WHERE1=1{$where}ORDERBY{$orderby}");

$return=$this->first_row();

}else{

$this->query("SELECT{$fields}FROM{$table}WHERE1=1{$where}ORDERBY{$orderby}");

$return=$this->result_object();

}

return$return;

}

/**

*参数说明

*int$mode返回类型

*0返回多条记录

*1返回单条记录

*2返回记录的数目

*string$table数据库表

*普通模式:

*'tb_member,tb_money'

*string/array$fields需要查询的数据库字段,允许为空,默认为查找全部,两种传值模式

*普通模式:

*'username,password'

*数组模式:

*array('username','password')

*string/array$where查询条件,允许为空

*数组模式:

array('username'=>'test','password'=>'test')

*/

publicfunctionselect($mode,$table,$fields,$where=array('id>'=>-1)){

$this->db->where($where);

$this->db->select($fields);

$this->res=$this->db->get($table);

if($mode==2){

return$this->num_rows();

}elseif($mode==1){

return$this->first_row();

}else{

return$this->result_object();

}

}

/**

*参数说明

*int$mode返回类型

*0无返回值

*1返回影响的条目数

*2返回最后插入的id值

*string$table数据库表

*array$set插入的字段和值

*数组模式:

array('username'=>'test','password'=>'test')

**/

publicfunctioninsert($mode,$table,$set){

$t=count($set);

foreach($setas$key=>$value){

//$set[$key]=$this->db->escape($value);

}

$this->res=$this->db->insert($table,$set);

if($mode==2){

return$this->insert_id();

}elseif($mode==1){

return$this->affected_rows();

}else{

returnnull;

}

}

/**

*参数说明

*int$mode返回类型

*0无返回值

*1返回影响的条目数

*string$table数据库表

*array$set要修改的字段和值

*数组模式:

array('username'=>'test','password'=>'test')

*array$where限制条件

*数组模式:

array('age'=>20,'usernamelike'=>'%li%')

**/

publicfunctionupdate($mode,$table,$set,$where){

$this->db->where($where);

$this->res=$this->db->update($table,$set);

if($mode==1){

return$this->affected_rows();

}elseif($mode==0){

returnnull;

}

}

/**

*参数说明

*int$mode返回类型

*0无返回值

*1返回影响的条目数

*string$table数据库表

*array$where限制条件

*数组模式:

array('username'=>'test','password'=>'test')

**/

publicfunctiondelete($mode,$table,$where){

$this->db->where($where);

$this->res=$this->db->delete($table);

if($mode==1){

return$this->affected_rows();

}else{

returnnull;

}

}

/**

*多表连接查询

*参数说明

*int$mode0返回所有结果

*1返回第一条结果

*2返回结果数目

*array$field要查询的字段

*string$table1

*string$table2连接的两个表

*array$where限制条件

*array$join连接条件

**/

publicfunctionjoin_select($mode,$field,$table1,$table2,$where,$join){

$this->db->selec

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

当前位置:首页 > 高中教育 > 初中教育

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

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