搜索
您的当前位置:首页服装销售系统

服装销售系统

来源:乌哈旅游
 一、【题目】:服装销售系统 【要求】

(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\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\"); }

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

int regnew(user *use)

}

continue;

default: exit(0); }

}//while()

{ char name[21]; char pass[7]={0}; int chose; int i,j; int type; while(1)

{

system(\"cls\");

printf(\" scanf(\"%s\

printf(\" for(i=0;i<6;i++) { pass[i]=getch(); printf(\"*\"); }

printf(\"\\n\\n 员 1,店长 \");

scanf(\"%d\ while(1)

{ printf(\"\\n\\n 1,确认 0,重新输入\\n\"); scanf(\"%d\

用户名:\"); 密 码:\"); 请输入用户的类型:0,销售用户注册信息入完毕,是否确认? if(chose!=1&&chose!=0)

{ printf(\" 你的输入有误,请重新的输入!\\n\");

continue; }

if(chose==1)

{ for(i=0;iprintf(\" 注册成功!请继续使用! strcpy(use[i].username,name); strcpy(use[i].pass,pass); usernum++; use[i].flag=1; use[i].type=type; return 1; } }

else break; } } }

\\n\"); int deluser(user *use) { int i;

char name[20];

printf(\" 请输入你想要删除的用户的用户名:\"); scanf(\"%s\ for(i=0;i<200;i++)

{ if(strcmp(use[i].username,name)==0)

{ printf(\"\\n\\n\\n 用户 %s 删除成功!\\n\\n\\n\\n\ strcpy(use[i].username,\"unknown\"); use[i].flag=-1; return 1; } }

printf(\" 用户 %s 不存在!请查正在次操作!\\n\\n\\n\\n\ return 0; }

int useall(user *use) { int i;

system(\"cls\");

printf(\" 销售人员:\\n\"); for(i=0;i<200;i++) { if(use[i].type==0)

{ if(use[i].flag==1)

printf(\" 用户姓名: %s 用户密码: %s \\n\ } }

printf(\" 店长:\\n\"); for(i=0;i<200;i++) { if(use[i].type==1) { if(use[i].flag==1)

printf(\" \\n\ } } }

int adminload(ADMIN *adm) { char name[21]; char pass[7]={0}; int chose,chose2;

int i,j;

while(1)

{

system(\"cls\");

用户姓名:用户密码: %s %s printf(\" 管理员账号:\"); scanf(\"%s\

printf(\" 密 码:\");

for(i=0;i<6;i++)

{

pass[i]=getch(); printf(\"*\"); } while(1) {

printf(\"\\n\\n 用户登陆信息输入完毕,是否确认? 1,确认 0,重新输入\\n\"); scanf(\"%d\ if(chose!=1&&chose!=0) {

printf(\" 你的输入有误,请重新的输入!\\n\");

continue; }

if(chose==1) {

if(strcmp(adm->name,name)==0)

if(strcmp(adm->pass,pass)==0) {

printf(\" 登陆成功!请继续使用! \\n\");

strcpy(usertemp.username,name); return 1; }

printf(\" 输入的用户名或者密码有误!1,重新登陆 2,退出登陆!\\n\");

scanf(\"%d\ if(chose2==1) { system(\"cls\"); break; } else

{ system(\"cls\"); return 0; } }

if(chose==0) break; } }

}

int adminpass(ADMIN *adm) { int i;

char pass[20]={0}; char pass2[20]={0}; while(1) {

system(\"cls\");

printf(\" 请输入新的管理员密码:\"); for(i=0;i<6;i++) { pass[i]=getch(); printf(\"*\"); }

printf(\"\\n\\n\\n 请再次输入新的管理员密码:\"); for(i=0;i<6;i++) {

pass2[i]=getch(); printf(\"*\"); }

if(strcmp(pass,pass2)!=0)

{ printf(\"\\n\\n 两次输入的新的密码不一样,请重新的输入!\\n\\n\\n\");

system(\"pause\"); } else {

printf(\"\\n 密码修改成功!下一次管理员登陆请使用新的密码!\\n\\n\\n\");

strcpy(adm->pass,pass); system(\"pause\"); return 1; } } }

int adminout() { int chose; while(1)

{ system(\"cls\");

printf(\" 你确定要注销吗? 1,注销 0,取消\\n\\n\");

scanf(\"%d\ if(chose!=0&&chose!=1)

{ printf(\" 你的选项出现了错误,请重新的输入!\\n\\n\\n\");

system(\"pasue\"); continue; }

if(chose==1) {

printf(\" 管理员账户注销完毕!! \\n\\n\\n\\n\");

system(\"pause\"); return 1; }

else return 0; } } int out() { int chose; system(\"cls\");

printf(\" 真的要退出系统吗?退出后信息会全部的丢失!!1,退出 0,取消\");

scanf(\"%d\ if(chose==1)exit(0); else return 1; }

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

int chose1; while(1)

{

system(\"cls\");

printf(\"\\n 在线用户: %s\\n\\n\

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

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

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

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

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

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

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

===用户功能菜单 // ,添加用户,删除用户,统计用户,添加商品,删除商品

printf(\" // 6,查找商品

//\\n\");

printf(\" // 7,商品统计

//\\n\");

printf(\" // 8,修改密码

//\\n\");

printf(\" // 9,注销账户

//\\n\");

printf(\" // 0,退出系统

//\\n\");

printf(\"

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

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

========================/\\n\"); scanf(\"%d\ if(chose1<0||chose1>9) {

printf(\" 你的输入有误,请重新的输入!\\n\");

system(\"pasue\"); continue; }

switch(chose1)

{ case 1:

{ system(\"cls\"); }

regnew(use); system(\"pause\"); break;

case 2:

{ }

system(\"cls\"); deluser(use); system(\"pause\"); break;

case 3:

{ }

system(\"cls\"); useall(use); system(\"pause\"); break;

case 4:

{

system(\"cls\"); adddress(dress);

system(\"pasue\");

}

break;

case 5:

{ }

system(\"cls\"); deldress(dress); break;

case 6:

{ }

system(\"cls\"); finddress(dress); break;

case 7:

{

system(\"cls\");

dressall(dress);

system(\"pasue\");

}

break;

case 8:

{

system(\"cls\");

if(adminpass(adm)==1) continue;

break;

}

case 9:

{

system(\"cls\");

if(adminout()==1) return 3; }

case 0:{

system(\"cls\");

if(out()==1) continue;

}

break;

default: continue;

}

} }

int userload(user *use) { char name[21]; char pass[7]={0};

int chose,chose2;

int i,j; while(1)

{

system(\"cls\");

printf(\" scanf(\"%s\

printf(\" for(i=0;i<6;i++)

{

pass[i]=getch(); printf(\"*\"); } while(1) {

printf(\"\\n\\n 1,确认 0,重新输入\\n\");

用户名:\"); 密 码:\"); 用户登陆信息输入完毕,是否确认? scanf(\"%d\ if(chose!=1&&chose!=0) {

printf(\" 你的输入有误,请重新的输入!\\n\");

continue; }

if(chose==1)

{ for(i=0;i<200;i++) {

if(use[i].type==0)

if(strcmp(use[i].username,name)==0) if(strcmp(use[i].pass,pass)==0) {

printf(\" 登陆成功!请继续使用! \\n\");

strcpy(usertemp.username,name); return 1; } }

printf(\" 输入的用户名或者密码有误!1,重新登陆 2,退出登陆!\\n\");

scanf(\"%d\ if(chose2==1) {

system(\"cls\"); break; } else

{ system(\"cls\"); return 0; } }

if(chose==0) break; } } }

这里面包含了管理员的十个功能选项。

4,选择销售员和店长,(注明第一次运行时本来没有销售员和店长,需要管理员添加。) int userout() { int chose; while(1)

{ system(\"cls\");

printf(\"\\n 在线用户: %s\\n\\n\

printf(\" 你确定要注销吗? 1,注销 0,取消\\n\\n\");

scanf(\"%d\ if(chose!=0&&chose!=1) {

printf(\" 你的选项出现了错误,请重新的输入!\\n\\n\\n\");

system(\"pasue\"); continue; }

if(chose==1) {

printf(\" 销售员账户注销完毕!! \\n\\n\\n\\n\");

strcpy(usertemp.username,\"unknown\"); // system(\"pause\"); return 1; }

else return 0; }

}

int sold(user *use,DRESS *dress) { char name[20]; int num; int i; int j; int k;

system(\"cls\");

printf(\"\\n 线用户: %s\\n\\n\

printf(\" 请输入要出售的商品的名称:\"); scanf(\"%s\

printf(\"\\n 请输入出售的数量:\"); scanf(\"%d\ for(k=0;k<200;k++) {

if(strcmp(use[k].username,usertemp.username)==0) for(i=0;i<500;i++) {

if(strcmp(dress[i].name,name)==0) {

if(dress[i].now在 dress[i].now=dress[i].now-num;

printf(\"\\n\\n\\n 商品 %s已经销售出了 %d件\\n\

for(j=0;j<100;j++) {

if(use[k].mdb[j].flag==0) {

strcpy(use[k].mdb[j].name,name); use[k].mdb[j].flag=1; use[k].mdb[j].total=num; return 1; } } } } }

printf(\" 商品出售出现错误!!请重新操作!\\n\\n\\n\"); return 0; }

void mounth(user *use) { int i; int j;

char name[20];

strcpy(name,usertemp.username); system(\"cls\");

printf(\"\\n 在线用户: %s\\n\\n\ for(i=0;i<100;i++)

{ if(strcmp(use[i].username,name)==0) { for(j=0;j<100;j++) {

if(use[i].mdb[j].flag==1)

printf(\" 商品名称: 量 : %d\\n\ } } } }

int usermenu(user *use,DRESS *dress) { int i; int chose1; while(1)

{

system(\"cls\");

%s ,出售数 printf(\"\\n 在线用户: %s\\n\\n\

printf(\" //=======用户功能菜单=====//\\n\");

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

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

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

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

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

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

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

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

printf(\"

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

,商品浏览,商品查找,出售商品,销售记录,用户注销 // //

//

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

========================/\\n\"); scanf(\"%d\ if(chose1<0||chose1>9) {

printf(\" \\n\");

system(\"pasue\"); continue; }

switch(chose1) { case 1: { system(\"cls\"); dressall(dress); break;

}

case 2: { system(\"cls\"); finddress(dress); break;

}

你的输入有误,请重新的输入!

case 3:

{ system(\"cls\"); }

sold(use,dress); system(\"pause\"); break;

case 4:

{ system(\"cls\");

mounth(use);

system(\"pause\");

}

break;

case 5:

{ system(\"cls\");

if(userout()==1) return 3;

break;

}

default: continue;

}

} }

int monpass(user *use)

{ int i;

char pass[20]={0}; char pass2[20]={0}; while(1)

{ printf(\" 请输入新的密码:\"); for(i=0;i<6;i++) {

pass[i]=getch(); printf(\"*\"); }

printf(\"\\n\\n\\n 请再次输入新的密码:\"); for(i=0;i<6;i++) {

pass2[i]=getch(); printf(\"*\"); }

if(strcmp(pass,pass2)!=0) {

printf(\"\\n\\n 两次输入的新的密码不一样,请重新的输入!\\n\\n\\n\");

system(\"pause\"); }

else {

printf(\"\\n 密码修改成功!下一次登陆请使用新的密码!\\n\\n\\n\");

for(i=0;i<200;i++) {

if(strcmp(use[i].username,usertemp.username)==0) {

strcpy(use[i].pass,pass); system(\"pause\"); } } return 1; } } }

void monsee(user *use) { int i; int j;

char name[20]; system(\"cls\");

printf(\"\\n 在线用户: %s\\n\\n\ for(i=0;i<100;i++)

{ if(use[i].flag==1&&use[i].type==0) {

printf(\"销售员姓名: %s\\n\ for(j=0;j<100;j++) {

if(use[i].mdb[j].flag==1)

printf(\" 商品名称: %s ,量 : %d\\n\ } } } }

int monload(user *use) {

char name[21]; char pass[7]={0}; int chose,chose2;

int i,j;

while(1)

售数出 {

system(\"cls\");

printf(\" 用户名:\"); scanf(\"%s\

printf(\" for(i=0;i<6;i++)

{

pass[i]=getch(); printf(\"*\"); } while(1) {

printf(\"\\n\\n 1,确认 0,重新输入\\n\"); scanf(\"%d\ if(chose!=1&&chose!=0)

{ printf(\" 入!\\n\");

continue; }

if(chose==1) {

密 码:\"); 用户登陆信息输入完毕,是否确认? 你的输入有误,请重新的输 for(i=0;i<200;i++) {

if(use[i].type==1)

if(strcmp(use[i].username,name)==0) if(strcmp(use[i].pass,pass)==0) {

printf(\" 登陆成功!请继续使用! \\n\");

strcpy(usertemp.username,name); return 1; } }

printf(\" 输入的用户名或者密码有误!1,重新登陆 2,退出登陆!\\n\");

scanf(\"%d\ if(chose2==1) {

system(\"cls\"); break; } else {

system(\"cls\"); return 0; } }

if(chose==0) break; } } }

int monout() {

int chose; while(1) {

system(\"cls\");

printf(\"\\n 在线用户: %s\\n\\n\

printf(\" 你确定要注销吗? 1,注销 0,取消\\n\\n\");

scanf(\"%d\ if(chose!=0&&chose!=1) {

printf(\" 你的选项出现了错误,请重新的输

入!\\n\\n\\n\");

system(\"pasue\"); continue; }

if(chose==1) {

printf(\" 店长账户注销完毕!! \\n\\n\\n\\n\");

strcpy(usertemp.username,\"unknown\"); return 1; }

else return 0; } }

int fix(DRESS *dress) {

char name[20],name2[20]; int total; int now; int i;

system(\"cls\");

printf(\"\\n 在

线用户: %s\\n\\n\

printf(\" 请输入需要修改信息的商品的名称:\"); scanf(\"%s\ for(i=0;i<500;i++) {

if(strcmp(dress[i].name,name)==0) {

printf(\"商品信息:\\n 名称: %s,现存: %d,总共: %d\\n\

printf(\"\\n\\n 请输入修改以后的商品的名称:\"); scanf(\"%s\

printf(\"\\n\\n 请输入修改以后的商品的现存:\"); scanf(\"%d\

printf(\"\\n\\n 请输入修改以后的商品的总共:\"); scanf(\"%d\

strcpy(dress[i].name,name2); dress[i].now=now; dress[i].total=total; printf(\"\\n\\n\");

printf(\"修改以后的商品信息:\\n 名称: %s,现存: %d,总共: %d\\n\ return 1;

} }

printf(\" 修改信息失败!请查正以后重新的操作!!\\n\\n\\n\"); return 0; }

int monmenu(user *use,DRESS *dress) {

int i; int chose1; while(1)

{

system(\"cls\");

printf(\"\\n 在线用户: %s\\n\\n\

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

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

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

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

===用户功能菜单 // ,商品浏览,商品查找

printf(\" // 3,销售员业绩

//\\n\");

printf(\" // 4,商品信息修改

//\\n\");

printf(\" // 5,密码修改

//\\n\");

printf(\" // 6,用户注销

//\\n\");

printf(\" //

//\\n\");

printf(\"

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

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

========================/\\n\"); scanf(\"%d\ if(chose1<1||chose1>8)

{ printf(\" 你的输入有误,请重新的输入!\\n\");

system(\"pasue\"); continue; }

switch(chose1)

{ case 1:

{ system(\"cls\"); }

dressall(dress); break;

case 2:

{ system(\"cls\"); }

finddress(dress); break;

case 3:

{ system(\"cls\"); }

monsee(use); system(\"pause\"); break;

case 4:

{

system(\"cls\");

fix(dress);

system(\"pause\");

}

break;

case 5:

{ }

system(\"cls\"); monpass(use); break;

case 6:

{ system(\"cls\");

if(monout()==1) return 3;

break;

}

default: continue;

}

}

}

五、程序截图

1、运行程序时出现的图象:

2、由于程序事先没有设置店长和销售员的帐号,所以要先选择3、管理员登陆,会出现如下图: 注明:管理员初始帐号admin密码是123456 3、进入后会出现如下的图象:

以上是管理员的功能,店长和销售员的帐号要通过添加用户来增加。 4、选择添加用户后会出现: 以上可以选择注册两种类型的人员。 5、统计用户会出现已经注册的人:

6、还有一系列的东西不一一贴出,推出时点注销帐户,然后用注册的帐号可以进入其他人员的功能表,下面列举销售人员的功能:

这些是销售员的功能,实现这些功能之前,首先要管理员注册商品信息。其他的不一一列举。 六、总结

在老师的带领下进行了C语言程序实践学习。在短短一周的实习期间使我获取了不少新知识也巩固了许多老知识。基本掌握了简单程序的编写方法和编程的基本流程,掌握了模块设计方法,能理解和运用简单结构化程序设计的思想和方法,掌握和提高利用C语言进行程序设计的能力。 C语言是需要有一定基础、而且动手能力强的学科。上机实验是学习程序设计语言必不可少的实践环节,特别是C语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、巩固贯穿系统知识、掌握程序设计方法、提高程序设计能力。

这一周的实习是我们把理论与实践结合的一次尝试,通过对这题的学习与理解,将很繁琐的问题慢慢捋清思路,进一步理解和运用结构化程序设计的思想和方法。初步掌握开发一个小型实用系统的基本方法,学会调试一个比较长程序的基本方法,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。

最后,谢谢老师悉心指导。

课程设计评语

对课程论文的评语: 平时成绩: 总 成 绩:

课程论文成绩: 评阅人签名:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top