信息系统分析与设计题目:唯品会APP分析与设计学院:管理与经济学院班级: 2012XX专业:信息管理与信息系统小组成员:2012XXXX XXXX2012XXXX XXXX2012XXXX XXXX2012XXXX XXXX2012XXXX XXXX目录一、系统结构二、模块功能三、需求分析3.1、首页分类推荐模块3.2、收藏模块3.3、购物车模块3.4、商品分类模块3.5、账户设置模块3.6、客服模块四、业务流程图4.1、业务流程图(总图)4.2、账户设置详细业务流程图五、数据流程图5.1、顶层数据流程图5.2、一层数据流程图5.3、二层数据流程图(订单处理)六、订单部分的数据字典6.1、数据元素条目6.2、数据结构条目6.3、数据流条目6.4、数据存储条目6.5、处理过程条目6.6、外部实体条目七、E-R图八、数据库表8.1、用户信息表8.2、商品分类表8.3、商品信息表8.4、订单信息表8.5、订单详情表8.6、商家信息表8.7、品牌信息表8.8、财务信息表8.9、客服信息表8.10、仓库信息表8.11、出库单信息表8.12、入库单信息表九、存储过程9.1、初始化商品信息9.2、增加商品信息9.3、修改商品信息9.4、删除商品信息一、系统结构一级二级三级四级五级首页商品状态分类商品展示商品详情商品图片收藏收藏单品单品详情单品图片收藏品牌品牌列表品牌商品购物车添加商品抢购商品结算商品生成订单订单详情订单状态顶单商品支付金额商品分类品牌分类品牌名称品牌商品条件分类筛选条件条件商品唯品客服自助服务自助服务类别问题查询问题分类问题查询账户设置功能功能分类功能查询设置功能设置条件设置状态三、需求分析1、首页分类推荐模块页面描述点击APP进入“首页”商品分类推荐→“商品状态分类”展示各类商品上线状态→“商品展示”列举和销售状态→“商品详情”包括“商品图片”展示和“商品信息”的具体描述,通过首页的商品分类推荐模块可以使用户对目前各商品的状态和销售状况以及全面的商品信息有具体全面的了解,可以满足用户对商品的最低需求。
2、收藏模块页面描述点击“收藏”→分为“收藏单品”和“收藏品牌”→“收藏单品”为用户收藏的单一产品,包含该商品的图片和该商品的详细信息→“收藏品牌”为用户收藏的某一种品牌,包含该品牌的所有商品以及商品的详细信息,通过收藏模块可以满足用户对自己心仪的单一商品和心仪的某一品牌进行暂时的收藏,方便用户以后的购买需求。
3、购物车模块该区域图片下端不完整,因涉及个人隐私故裁剪,请自行补充页面描述点击“购物车”→可以“添加商品”和“抢购商品”以及“结算商品”→“结算商品”可以“生成订单”→“订单详情”包括“订单状态”和“订单商品”来显示整个订单信息,通过“购物车”来“添加商品”和“结算商品”方便用户购买商品和浏览该商品生成的“订单详情”对后续的下单工作和订单状态了如指掌。
4、商品分类模块页面描述点击“商品分类”→商品有“品牌分类”和“条件分类”两种→“品牌分类”为用户提供品牌名称选择来筛选商品,“条件分类”根据用户设置的条件来提供相应的商品,通过该模块用户可以更方便快捷的找到自己所需求的商品。
5、账户设置模块页面描述点击“我的”→进入“我的账户”显示账户的功能分类以及订单状态→进入“设置”显示设置功能和设置状态,通过账户设置模块用户可以根据个人需要进行管理设置自己的账户,充分体现用户的自主性。
6、客服模块页面描述点击“唯品客服”→进入“服务中心”显示“自助服务”和“问题查询”两个基本模块→“自助服务”可以为用户提供完全的物流查询、催促配送、催促退款、补寄发票和自助退货的系统自动化服务,→“问题查询”为用户提供不同类别所包含的不同问题来解决客户在整个购买过程中所遇到的最基本的待解决问题,客服模块不仅满足用户的基本需求还要体现唯品会最人性化的一面。
四、业务流程图1、业务流程图(总图)2、账户设置详细业务流程图五、数据流程图1、顶层数据流程图2、一层数据流程图3、二层数据流程图(订单处理)六、订单部分的数据字典1、数据元素条目数据元素条目总编号:1—01编号:01名称:订单编号别名:订单编号说明:本系统订单编号数据值类型:离散类型:数字长度:10有关数据结构:商品信息表、商品分类表、用户信息表数据结构条目名称:订单登记卡总编号:2—01说明:填写订单的卡片编号:01结构:有关的数据流、数据存储:订单编号商品信息表订单名称用户信息表下单日期订单信息表生成日期收货信息应付金额外部实体条目名称:订单详情总编号:6—01 说明:订单的输入、生成、查看编号:01输入数据流:用户→订单处理系统输出数据流:订单处理系统→用户、仓储管理系统、财务管理系统七、E-R图八、数据库表3、商品信息表4、订单信息表5、订单详情表6、商家信息表7、品牌信息表12、入库单信息表1、初始化商品信息1.1、商品初始化代码如下:void initgoods(){FILE *fp;product tmps,show;char datafile[40]="goods";int count=0;fp=fopen(datafile,"wb+");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}printf("请输入商品的序号、名称、价格、折扣\n");while(count<=size){printf("\n请输入商品的序号:");scanf("%ld",&tmps.number);if(tmps.number==0)break;printf("请输入商品的名称:");scanf("%s",);printf("请输入商品的价格:");scanf("%f",&tmps.price);printf("请输入商品的折扣:");scanf("%f",&tmps.discount);tmps.memberprice=tmps.price*tmps.discount;if(fwrite(&tmps,sizeof(product),1,fp)!=1){printf("文件%s打不开\n",datafile);exit(1);}count++;}if(count>size)printf("输入数据已满\n");fclose(fp);printf("所输入商品的信息如下:\n");fp=fopen(datafile,"rb");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}printf("序号\t名称\t价格\t折扣\t会员价\n");while(fread(&show,sizeof(product),1,fp)!=0)printf("%ld\t%s\t%.1f\t%.1f\t%.1f\n",show.number,,show.price,show. discount,show.memberprice);fclose(fp); }1.2、商品初始化界面2、增加商品信息2.1、增加商品信息代码如下:void addgoods(){FILE *fp;product tmps,show;char datafile[40]="goods";int count=0;fp=fopen(datafile,"ab+");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}printf("请输入商品的序号、名称、价格、折扣、会员价\n");while(count<=size){printf("\n请输入商品的序号:");scanf("%ld",&tmps.number);if(tmps.number==0)break;printf("请输入商品的名称:");scanf("%s",);printf("请输入商品的价格:");scanf("%f",&tmps.price);printf("请输入商品的折扣:");scanf("%f",&tmps.discount);tmps.memberprice=tmps.price*tmps.discount;if(fwrite(&tmps,sizeof(product),1,fp)!=1){printf("文件%s打不开\n",datafile);exit(1);}count++;}if(count>size)printf("输入数据已满\n");fclose(fp);printf("所输入商品的信息如下:\n");fp=fopen(datafile,"rb");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}printf("序号\t名称\t价格\t折扣\t会员价\n");while(fread(&show,sizeof(product),1,fp)!=0)printf("%ld\t%s\t%.1f\t%.1f\t%.1f\n",show.number,,show.price,show. discount,show.memberprice);fclose(fp);}2.2、增加商品信息界面3、修改商品信息3.1、修改商品信息代码如下:void modifygoods(){FILE *fp;product tmps,s[size],show,temp;char name[9],next,datafile[40]="goods";int recnumber,i,result=0;float price,discount,memberprice;begin:printf("请输入要修改商品的名称");scanf("%s",name);fp=fopen(datafile,"rb");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}while(feof(fp)==0){if(fread(&temp,sizeof(product),1,fp)!=0){if(strcmp(,name)==0)result=1;}}if(result==0){printf("要修改的商品%s不存在\n",name);fclose(fp);goto begin;}fp=fopen(datafile,"rb");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}recnumber=0;while((fread(&tmps,sizeof(product),1,fp))!=0){if(strcmp(,name)==0){printf("请输入要修改商品%s的价格\n",name);scanf("%f",&price);printf("请输入要修改商品的折扣价\n");scanf("%f",&discount);memberprice=price*discount;s[recnumber].number=tmps.number;strcpy(s[recnumber].name,);s[recnumber].price=price;s[recnumber].discount=discount;s[recnumber].memberprice=memberprice;recnumber++;}else{s[recnumber].number=tmps.number;strcpy(s[recnumber].name,);s[recnumber].price=tmps.price;s[recnumber].discount=tmps.discount;s[recnumber].memberprice=tmps.memberprice;recnumber++;}}fclose(fp);fp=fopen(datafile,"wb+");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}for(i=0;i<recnumber;i++){if(fwrite(&s[i],sizeof(product),1,fp)!=1){printf("文件%s打不开\n",datafile);exit(1);}}fclose(fp);printf("修改成功!\n");printf("是否继续修改(y/n)\n");next=getche();if(next=='y'||next=='Y')goto begin;printf("所修改商品的信息如下:\n");fp=fopen(datafile,"rb");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}printf("序号\t名称\t价格\t折扣\t会员价\n");while(fread(&show,sizeof(product),1,fp)!=0)printf("%ld\t%s\t%.1f\t%.1f\t%.1f\n",show.number,,show.price,show. discount,show.memberprice);fclose(fp);}3.2、修改商品信息界面4、删除商品信息4.1、删除商品信息代码如下:void delgoods(){FILE *fp;product tmps,s[size],show,temp;char name[9],next,datafile[40]="goods";int recnumber,i,result=0;float price,discount,memberprice;begin:printf("请输入要删除商品名称:");scanf("%s",name);fp=fopen(datafile,"rb");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);while(feof(fp)==0){if(fread(&temp,sizeof(product),1,fp)!=0){if(strcmp(,name)==0)result=1;}}if(result==0){printf("要删除的商品%s不存在\n",name);fclose(fp);goto begin;}fclose(fp);fp=fopen(datafile,"rb");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}recnumber=0;while((fread(&tmps,sizeof(product),1,fp))!=0){if(strcmp(,name)!=0){s[recnumber].number=tmps.number;strcpy(s[recnumber].name,);s[recnumber].price=tmps.price;s[recnumber].discount=tmps.discount;s[recnumber].memberprice=tmps.memberprice;recnumber++;}}fclose(fp);fp=fopen(datafile,"wb+");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}for(i=0;i<recnumber;i++){if(fwrite(&s[i],sizeof(product),1,fp)!=1)printf("文件%s打不开\n",datafile);exit(1);}}fclose(fp);printf("删除成功!\n");printf("是否继续删除(y/n)\n");next=getche();if(next=='y'||next=='Y')goto begin;printf("删除商品信息如下:\n");fp=fopen(datafile,"rb");if(fp==NULL){printf("文件%s打不开\n",datafile);exit(1);}printf("序号\t名称\t价格\t折扣\t会员价\n");while(fread(&show,sizeof(product),1,fp)!=0)printf("%ld\t%s\t%.1f\t%.1f\t%.1f\n",show.number,,show.price,show. discount,show.memberprice);fclose(fp);}4.2、删除商品信息界面。