服装销售系统分析解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、【题目】:服装销售系统

【要求】

(1)系统包含三类用户:管理员、店长、销售员。

(2)向管理员提供以下功能:自身密码修改、其他用户添加删除、用户信息修改、统计。商品信息添加、修改、删除、查找、统计。

(3)向店长提供以下功能:登录、注销、自身密码修改、自身信息修改,商品信息修改、商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品储备信息。(4)向销售员提供以下功能:商品浏览、查找、出售,查看自己本日报表、本月报表。

[提示]

(1)总体设计:整个服装销售系统可设计为管理员模块、店长模块、销售员模块、商品模块等。(2)数据结构采用结构体。

二、结构图

根据需求分析,该程序中销售员应实现如下功能:商品浏览、

销售记录

商品查找、出售商品、销售记录、用户注销,具体结构图如下。

店长应实现如下功能:登录、注销、自身密码修改、自身信息修改,商品信息修改、商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品储备信息,具体结构图如下。

出售商品用户注销

管理员需要实现如下功能:自身密码修改、其他用户添加删除、

用户信息修改、统计。商品信息添加、修改、删除、查找、统计。具

体结构图如下。

三、程序中典型的流程图分析

(一)添加模块

(1)分析:信息添加模块职工的基本信息包括:用户、商品基本信息,对它们输入后,要存进原文件,流程图如下。

(二)浏览模块

(1)分析:浏览功能首先需要查找信息是否存在,在查找时,因为磁盘文件无序,所以采用直接查找的办法。在容错上有较好的能力,输错时系统会有提示, 也会作出相应的反映。算法和以上的分程序有相同的优点。

[流程

输出错误信息

(三)查询模块

(1)分析:基本信息的查询按查询方式:按商品的名称查询,可供选择的方式比较丰富。

但本程序只使用了一种。在查询小模块中采用了直接查找的方法,这主要是由于磁盘文件无

序的缘故。程序在选择结构上采用了if和else的嵌套形式,看起来有点繁杂,没有用switch

语句直观明了,这个地方可以改成更好的。

(四)删除模块

(1)分析:商品信息存放在磁盘中,程序须将该文件全部取出来,在内存中把要删掉的内容除去,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐。可以改为另一种办法:设置一个标示符,对有这些标识符的记录在下次输入时跳过,在新商品信息输入时,将其覆盖就行了。在对文件进行删除时,考虑到很多方面,女口:查询不到时系统该如何处理等。人性化设计有在删除之前询问是否继续。

[流程图]

开始

商品的名称

结束

五)修改模块

(1)分析:修改与删除程序相似,管理员信息存放在磁盘中,程序须将该文

件全部取出来,在内存中把要修改的内容修改,然后在重新输入到磁盘,这种算法比较合理,但有一点烦琐,可以改进。

四、题目分析

1、按照系统需要三类用户用它作为主函数:int main()

{

user *use; DRESS *dress; ADMIN *adm;

use=(user *)malloc(200*sizeof(user)); userIntiate(use);

adm=(ADMIN *)malloc(sizeof(ADMIN)); adminIntiate(adm);

dress=(DRESS *)malloc(500*sizeof(DRESS)); dressIntiate(dress);

while(1)

{

if(first(use,adm,dress)==3) continue;

}

}

2、三类用户的选择登陆为

int *first(user *use,ADMIN *adm,DRESS *dress) {

int chose;

int temp,temp2;

while(1)

{ system("cls");

printf(" //==== ===== 功能菜单 = =======//\n"

)

printf(" // //\n")

;

printf(" // //\n");

printf(" // 1,销售员登陆//\n");

printf(" // 2,店长登陆//\n");

printf(" // 3,管理员登陆//\n");

printf(" // //\n");

printf(" //== ===//\n");

printf("\n /============================= 请选择服务的种类

====================/\n");

scanf("%d",&chose); if(chose<1||chose>5)

{

printf("你的选择出现错误!按任意键重新的进入选择菜单! \n"); system("pause");

continue;

}

switch(chose)

{

case 1:

{ system("cls");

if(userload(use)==1)

{ usermenu(use,dress);

}

system("pause");

break;

}

case 2:

{ system("cls");

if(monload(use)==1)

{ monmenu(use,dress);

}

break;

}

case 3:

{

system("cls"); temp=adminload(adm);

if(temp==1)

{ system("pause"); temp2=adminmenu(adm,use,dress); return 3;

}

system("pause"); continue;

}

default: exit(0);

}

}//while()

}

3、当选择管理员的时候就用如下程序,注明(管理员的初始账号是admin,密码是123456) int regnew(user *use)

{ char name[21];

char pass[7]={0};

int chose;

相关文档
最新文档