j2ee 漫画杂志 详细设计说明书.docx

上传人:b****6 文档编号:6285724 上传时间:2023-01-05 格式:DOCX 页数:5 大小:19.55KB
下载 相关 举报
j2ee 漫画杂志 详细设计说明书.docx_第1页
第1页 / 共5页
j2ee 漫画杂志 详细设计说明书.docx_第2页
第2页 / 共5页
j2ee 漫画杂志 详细设计说明书.docx_第3页
第3页 / 共5页
j2ee 漫画杂志 详细设计说明书.docx_第4页
第4页 / 共5页
j2ee 漫画杂志 详细设计说明书.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

j2ee 漫画杂志 详细设计说明书.docx

《j2ee 漫画杂志 详细设计说明书.docx》由会员分享,可在线阅读,更多相关《j2ee 漫画杂志 详细设计说明书.docx(5页珍藏版)》请在冰豆网上搜索。

j2ee 漫画杂志 详细设计说明书.docx

j2ee漫画杂志详细设计说明书

j2ee漫画杂志详细设计说明书

j2ee漫画杂志详细设计说明书在线动漫杂志详细设计说明书课程名称:

JAVAEE课程设计院系:

项目成员:

编写人:

任课教师:

指导教师:

二零一一年六月15目录1引言31.1项目的研究背景和目的31.2背景42、程序系统的结构53、程序设计说明53.1、程序描述53.2、功能53.4输入项73.5输出项73.6、算法83.7流程逻辑163.8接口213.9注释设计213.10限制条件213.11测试计划223.12尚未解决的问题231引言1.1项目的研究背景和目的中国已经提出经过5年至10年时间,动漫产业至少要占GDP1%的发展目标。

这意味着,我国动漫产业未来至少具有1000亿元产值的巨大发展空间。

风靡一时的期刊杂志「画书大王」应时而生,从开始疯狂盗版日本漫画到后来因为政府行为而不得不改变策略支持原创,再到后来的停刊,虽然只有仅仅不到两年的时间,但它无疑是中国漫画史上革命性的刊物,为培养中国漫画创作人走出了重要的一步。

而后,中国漫画进入了漫长的冰河时期,体制的落后、市场的混乱、认知的偏差以及国外盗版漫画的盛行,均使得本土漫画发展举步维艰,倍受冷落,只有极少数漫画爱好者在黑暗中艰难创业。

随着网络的发展以及在各个方面对于人们日常生活的渗透,漫画的迎来了又一个迅猛发展的时期。

与此同时,政府加大了对动漫的关注与投入以后,许多出版机构和民间资本开始不断进入动漫行业,使本土漫画燃起了星星之火。

近年来,通过网络游戏、COSPLAY秀和国外动漫多渠道进入的影响,并在一批本土漫画创业者的积极推动下,中国漫画市场延续了进入新千年以后迅猛的发展势头,并且步伐变得更加大步流星。

1.2背景考虑到当前漫画产业的发展现状和网络技术的发展,在这个领域充满了机会,经过小组成员共同讨论,我们决定要开发的系统的是《在线动漫杂志》,该系统将由小组6人共同完成,通过这个平台的实现提高我们JAVAEE的应用水平,同时也能更好地了解我们共同的爱好——漫画,为漫画产业的发展添砖加瓦,也让自己未来的发展方向多了一种可能。

2、程序系统的结构3、程序设计说明3.1、程序描述该系统主要是实现网上在线浏览漫画及其周边小说COS等,满足漫画爱好者之间的心得交流,开辟相应的论坛。

会员对于网站管理也能提出一些建议。

系统开发的特点是:

采用B/S结构,数据主要保存在服务器中,并且满足并发处理,多个类可重用。

3.2、功能该系统的功能有:

1、用户权限的管理。

2、数据库的设计与实现,由于网站预期访问量非常大,且集中程度很高,因此数据库的设计工作量非常大。

3、漫画及周边搜索(主要按名称搜索,也可按连载日期或作者搜索)。

4、COS经典搜索。

5、上传功能。

6、漫画、图片页面展示。

6、更新提示。

7、漫画、小说、图片等内容管理。

8、论坛搭建。

9、过刊管理。

10、人气排行显示。

11、论坛精华显示。

12、广告服务。

3.4输入项名称标识符数据类型有效范围输入方式数据来源用户名userIDString字符数大于6手动输入用户密码passwordString字符数大于6手动输入用户昵称usernameString字符数大于0手动输入用户QQ号QQnumberint字符数为8或11手动输入用户电子邮件emailstring包含@和.手动输入用户最爱风格LovestyleString大于5位手动输入用户最爱作者LovewriterString字符数大于0手动输入用户搜索内容searchContentString不能为空手动输入用户评价evaluationString【】不能为空手动输入用户3.5输出项名称标识符数据类型有效范围输出方式数据来源用户名usernameString不能为空页面显示数据库漫画TelInt字符数为8或11页面显示数据库电子邮件emailstring包含@和.页面显示数据库家庭地址addressString大于5位页面显示数据库商品类型goodsTypeString字符数大于0页面显示数据库商品数量goodsAmountString数值大于0页面显示数据库商店地址goodsAddressString字符数大于6页面显示数据库价格PriceInt大于0页面显示数据库搜索结果searchContentString和image不能为空页面显示数据库订单结果RecordString[]不能为空页面显示数据库营业统计SettlementString[]不能为空页面显示数据库以及计算交易记录transactionRecordString[]不能为空页面显示数据库评价EvaluationString[]不能为空页面显示数据库3.6、算法Model类的实现:

数据的插入:

clientLogin:

(以clientLogin类为例)publicvoidinsertData()//往表中插入记录{SqlConnectioncon=newSqlConnection(“DataSource=.\\SQLEXPRESS;InitialCatalog=nationTrade;IntegratedSecurity=True“);con.Open();SqlCommandInsertCommand=newSqlCommand(“INSERTINTOclientLoginVALUES(@userID,@password,@authority)“,con);InsertCommand.Parameters.Add(“@password“,SqlDbType.VarChar,12);InsertCommand.Parameters[“@password“].Value=password;InsertCommand.Parameters.Add(“@userID“,SqlDbType.VarChar,16);InsertCommand.Parameters[“@userID“].Value=userID;InsertCommand.Parameters.Add(“@authority“,SqlDbType.VarChar,12).Value=authority;InsertCommand.ExecuteNonQuery();con.Close();}数据更新:

SqlConnectioncon=newSqlConnection(“DataSource=.\\SQLEXPRESS;InitialCatalog=nationTrade;IntegratedSecurity=True“);con.Open();SqlCommandcommand=newSqlCommand(“updateclientLoginsetpassword=@password,authority=@authoritywhereuserID=@userID“,con);command.Parameters.Add(“@password“,SqlDbType.VarChar,12);command.Parameters[“@password“].Value=password;command.Parameters.Add(“@userID“,SqlDbType.VarChar,16);command.Parameters[“@userID“].Value=userID;command.Parameters.Add(“@authority“,SqlDbType.VarChar,12).Value=authority;command.ExecuteNonQuery();con.Close();数据查询:

获取单一字段:

publicStringgetImageUrl(StringuserID)//查询头像路径{SqlConnectioncon=newSqlConnection(“DataSource=.\\SQLEXPRESS;InitialCatalog=nationTrade;IntegratedSecurity=True“);con.Open();SqlCommandselectCommand=newSqlCommand(“selectuserPhotofromSellerInfowhereuserID=@userID“,con);selectCommand.Parameters.Add(“@userID“,SqlDbType.VarChar,1000).Value=userID;SqlDataReaderdataReader=selectCommand.ExecuteReader();if(dataReader.Read()){Stringscore=dataReader.GetString(0);con.Close();returnscore;}else{con.Close();returnnull;}}获取多个字段值:

publicString[]getSellerRegisterInfo(StringuserID){SqlConnectioncon=newSqlConnection(“DataSource=.\\SQLEXPRESS;InitialCatalog=nationTrade;IntegratedSecurity=True“);con.Open();SqlCommandselectCommand=newSqlCommand(“selectuserName,sex,IDCard,accountfromSellerInfowhereuserID=@userID“,con);selectCommand.Parameters.Add(“@userID“,SqlDbType.VarChar,1000).Value=userID;String[]infor=newString[4];SqlDataReaderdataReader=selectCommand.ExecuteReader();if(dataReader.Read()){infor[0]=dataReader.GetString(0);infor[1]=dataReader.GetString

(1);infor[2]=dataReader.GetString

(2);infor[3]=dataReader.GetString(3);con.Close();returninfor;}else{con.Close();returnnull;}}判断记录是否存在:

(以判断商店是否存在为例):

publicintisHasShop(StringuserID)//判断是否已经存在商店{SqlConnectioncon=newSqlConnection(“DataSource=.\\SQLEXPRESS;InitialCatalog=nationTrade;IntegratedSecurity=True“);con.Open();SqlCommandselectCommand=newSqlCommand(“selectisLookOverfromseller_ShopRelationswheresellerID=@userID“,con);selectCommand.Parameters.Add(“@userID“,SqlDbType.VarChar,16).Value=userID;SqlDataReaderdataReader=selectCommand.ExecuteReader();intscore=-1;if(dataReader.Read()){score=dataReader.GetInt32(0);}else{score=-1;}returnscore;}购物车的实现:

加入购物车的商品的购买信息的数据结构publicclassgoodsInTrolley{publicintgoodsID;//商品IDpublicintshopID;//商店IDpublicStringgoodsName;//商品名publicStringshopName;//商店名publicintamount;//数量publicfloatprice;//单价publicfloatsumMoney;//总价publicStringtype;//商品类型publicgoodsInTrolley(){////TODO:

在此处添加构造函数逻辑//}publicgoodsInTrolley(intgoodsID,intamount){this.goodsID=goodsID;this.amount=amount;GoodsInforExtendgoodsInfor=newGoodsInforExtend();String[]infor=goodsInfor.getGoodsMainInfor(goodsID);this.goodsName=infor[0];this.price=float.Parse(infor[1]);this.type=infor[2];this.shopID=int.Parse(infor[3]);this.shopName=infor[4];sumMoney=price*amount;}}购物车类:

publicclassTrolley{publicArrayListgoodsList=newArrayList();//购物车商品列表publicStringbuyerID;//买家IDpublicTrolley(StringbuyerID){////TODO:

在此处添加构造函数逻辑//this.buyerID=buyerID;}publicvoidaddGoods(goodsInTrolleygoods){inttag=0;//判断购物车是否已经加入此商品foreach(goodsInTrolleyoneGoodingoodsList){if(oneGood.goodsID==goods.goodsID){tag=1;oneGood.amount=oneGood.amount+goods.amount;}}if(tag!

=1){goodsList.Add(goods);}}publicvoiddeleteGoods(goodsInTrolleygoods){foreach(goodsInTrolleyoneGoodingoodsList){if(oneGood.goodsID==goods.goodsID){goodsList.Remove(oneGood);}}}publicboolsettlement(){GoodsInforExtendgoodsInfor=newGoodsInforExtend();SqlConnectioncon=newSqlConnection(“DataSource=.\\SQLEXPRESS;InitialCatalog=nationTrade;IntegratedSecurity=True“);con.Open();SqlCommandcommand=con.CreateCommand();foreach(goodsInTrolleygoodingoodsList){intshopID=good.shopID;intamount=good.amount;floatsumMoney=good.sumMoney;if(amountsurplus)//库存不够myTrans.Rollback();//回滚command.CommandText=“updateGoodssetamount=amount-@buyAmountwheregoodsID=@goodsID“;command.Parameters.AddWithValue(“@buyAmount“,amount);command.Parameters.AddWithValue(“@goodsID“,good.goodsID);command.ExecuteNonQuery();//修改库存//插入交易记录command.CommandText=“INSERTINTOGoodsTransactionRecord(buyerID,shopID,goodsID,amount,money,date,isSuccess)VALUES(@buyerID,@shopID,@goodsID,@amount,@money,@date,@isSuccess)“;command.Parameters.Add(“@goodsID“,SqlDbType.Int,16);command.Parameters[“@goodsID“].Value=good.goodsID;command.Parameters.Add(“@shopID“,SqlDbType.Int,16);command.Parameters[“@shopID“].Value=shopID;command.Parameters.Add(“@buyerID“,SqlDbType.VarChar,16);command.Parameters[“@buyerID“].Value=buyerID;command.Parameters.Add(“@amount“,SqlDbType.Int,12);command.Parameters[“@amount“].Value=amount;command.Parameters.Add(“@money“,SqlDbType.Float,16);command.Parameters[“@money“].Value=sumMoney;command.Parameters.Add(“@date“,SqlDbType.DateTime,16);command.Parameters[“@date“].Value=DateTime.Now;command.Parameters.Add(“@isSuccess“,SqlDbType.Int,16).Value=0;command.ExecuteNonQuery();//事务提交myTrans.Commit();returntrue;}catch(Exceptionex){Console.WriteLine(“RollbackExceptionType:

{0}“,ex.GetType());returnfalse;}}其中包含的函数的功能有:

往购物车中添加商品信息,将购物车中的购买信息写入数据库并用到数据库的锁机制和事务处理在ASP.NET的应用Controller类的实现:

以卖家信息注册为例:

publicvoidsellerRegister(StringuserID,intshopID,StringuserName,Stringsex,StringIDCard,StringuserPhoto,Stringaccount){SellerInfosellerInfor=newSellerInfo(userID,shopID,userName,sex,IDCard,userPhoto,account);//调用MODEL类SellerInfoExtendsellerExtend=newSellerInfoExtend();if(!

sellerExtend.isHasSeller(userID)){sellerInfor.insertData();//调用Moodel类}else{sellerInfor.updateSubmit();//调用Model类}}3.7流程逻辑用户注册流程:

商品购买流程买家收货流程:

评价流程:

3.8接口3.9注释设计

(1)加在模块首部的注释:

用于说明模块的整体功能

(2)加在各分支点处的注释:

用于说明验证的条件(3)加在各变量上的注释:

用于说明变量存储的数据的意义(4)加在使用的逻辑的注释:

用于说明3.10限制条件

(1)最好在IE7以上浏览器运行

(2)一个用户对应一个论坛昵称3.11测试计划对用户基本信息注册(买家注册)功能的测试:

用户名字段输入数据预期结果空提示出错位数小于6位的字符窜提示出错位数大于等于6位的字符窜正常密码字段输入数据预期结果空报错位数小于6位报错密码和密码确认不一致报错位数大于等于6位且密码和密码确认一致正常手机号码字段输入数据预期结果空报错输入包含非数字报错数字位数不等于8位或者11位报错输入数字的位数为8位或者11位正常对用户详细信息的注册(卖家注册)功能的测试:

真实姓名字段输入数据预期结果空报错字符位数超过16位的字符串报错小于16位的字符串正常身份证号字段输入数据预期结果空报错含有非数字字符并且不是在末尾位,而且不是x报错位数不等于15位或者18位报错15位数字正常18位数字正常15位或18位末尾带有x正常银行账号字段输入数据预期结果空报错含有非数字报错数字正常测试由赵伟、金贞主负责,先进行黑盒测试再进行白盒测试,测试时间为12月21号-12月22号3.12尚未解决的问题1、没有网上银行交易相关证书,无法实现在线交易,测试过程中只能模拟该项功能。

2、没有实现在线客户直接实时交流的功能3、退货部分存在缺陷

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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