收藏 分销(赏)

C语言专业课程设计服装销售系统.doc

上传人:快乐****生活 文档编号:2727296 上传时间:2024-06-05 格式:DOC 页数:38 大小:158.54KB 下载积分:12 金币
下载 相关 举报
C语言专业课程设计服装销售系统.doc_第1页
第1页 / 共38页
C语言专业课程设计服装销售系统.doc_第2页
第2页 / 共38页


点击查看更多>>
资源描述
服装销售系统 一.【要求】 (1) 系统包含三类用户:管理员、店长、销售员。 (2) 向管理员提供以下功效:本身密码修改、其它用户添加删除、用户信息修改、统计。商品信息添加、修改、删除、查找、统计。 (3) 向店长提供以下功效:登录、注销、本身密码修改、本身信息修改,商品信息修改、商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品贮备信息。 (4) 向销售员提供以下功效:商品浏览、查找、出售,查看自己本日报表、本月报表。 (5) [提醒] (1) 总体设计:整个服装销售系统可设计为管理员模块、店长模块、销售员模块、商品模块等。 (2) 数据结构采取结构体。 二、结构图 依据需求分析,该程序中销售员应实现以下功效:商品浏览、商品查找、出售商品、销售统计、用户注销,具体结构图以下。店长应实现以下功效:登录、注销、本身密码修改、本身信息修改,商品信息修改、商品信息设计,查看日报表、月报表、商品销售量报表、查找浏览器修改商品贮备信息,具体结构图以下。 销售员 商品浏览 商品查找 出售商品 销售统计 用户注销 店长 商品浏览 商品查找 销售员业绩 商品信息修改 密码修改 用户注销 管理员需要实现以下功效:本身密码修改、其它用户添加删除、用户信息修改、统计。商品信息添加、修改、删除、查找、统计。具体结构图以下。 管理员 删除用户 退出系统 注销账户 修改密码 商品统计 查找商品 删除商品 添加商品 统计用户 添加用户 三、程序中经典步骤图分析 (一)添加模块 (1)分析:信息添加模块职员基础信息包含:用户、商品基础信息,对它们输入后,要存进原文件,步骤图以下。 文件打开否 输入信息 是否继续 将信息输出到磁盘 调用printf_back()函数 结束 开始 输犯错误信息 (二)浏览模块 (1)分析:浏览功效首先需要查找信息是否存在,在查找时,因为磁盘文件无序,所以采取直接查找措施。在容错上有很好能力,输错时系统会有提醒,也会作出对应反应。算法和以上分程序有相同优点。 [步骤 开始 打开文件否 输犯错误信息 查找商品信息 是否查找到 输出商品信息 操作存盘 是否继续 结束 (三)查询模块 (1)分析:基础信息查询按查询方法:按商品名称查询,可供选择方法比较丰富。但本程序只使用了一个。在查询小模块中采取了直接查找方法,这关键是因为磁盘文件无序缘故。程序在选择结构上采取了if和else嵌套形式,看起来有点繁杂。开始 文件打开 查询方法 是否继续 结束 输犯错误信息 商品名称 (四)删除模块 (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) int regnew(user *use) { char name[21]; char pass[7]={0}; int chose; int i,j; int type; while(1) { system("cls"); printf(" 用户名:"); scanf("%s",&name); printf(" 密 码:"); for(i=0;i<6;i++) { pass[i]=getch(); printf("*"); } printf("\n\n 请输入用户类型:0,销售员 1,店长 "); scanf("%d",&type); while(1) { printf("\n\n 用户注册信息入完成,是否确定? 1,确定 0,重新输入\n"); scanf("%d",&chose); if(chose!=1&&chose!=0) { printf(" 你输入有误,请重新输入!\n"); continue; } if(chose==1) { for(i=0;i<usernum+1;i++) if(use[i].flag==0) { printf(" 注册成功!请继续使用! \n"); strcpy(use[i].username,name); strcpy(use[i].pass,pass); usernum++; use[i].flag=1; use[i].type=type; return 1; } } else break; } } } int deluser(user *use) { int i; char name[20]; printf(" 请输入你想要删除用户用户名:"); scanf("%s",name); for(i=0;i<200;i++) { if(strcmp(use[i].username,name)==0) { printf("\n\n\n 用户 %s 删除成功!\n\n\n\n",name); strcpy(use[i].username,"unknown"); use[i].flag=-1; return 1; } } printf(" 用户 %s 不存在!请查正在次操作!\n\n\n\n",name); 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",use[i].username,use[i].pass); } } printf(" 店长:\n"); for(i=0;i<200;i++) { if(use[i].type==1) { if(use[i].flag==1) printf(" 用户姓名: %s 用户密码: %s \n",use[i].username,use[i].pass); } } } int adminload(ADMIN *adm) { char name[21]; char pass[7]={0}; int chose,chose2; int i,j; while(1) { system("cls"); printf(" 管理员账号:"); scanf("%s",&name); printf(" 密 码:"); for(i=0;i<6;i++) { pass[i]=getch(); printf("*"); } while(1) { printf("\n\n 用户登陆信息输入完成,是否确定? 1,确定 0,重新输入\n"); scanf("%d",&chose); 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",&chose2); 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",&chose); 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",&chose); 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",usertemp.username); 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",&chose1); 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",&name); printf(" 密 码:"); for(i=0;i<6;i++) { pass[i]=getchar(); printf("*"); } while(1) { printf("\n\n 用户登陆信息输入完成,是否确定? 1,确定 0,重新输入\n"); scanf("%d",&chose); 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",&chose2); 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",usertemp.username); printf(" 你确定要注销吗? 1,注销 0,取消\n\n"); scanf("%d",&chose); 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",usertemp.username); printf(" 请输入要出售商品名称:"); scanf("%s",&name); printf("\n 请输入出售数量:"); scanf("%d",&num); 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<num) break; dress[i].now=dress[i].now-num; printf("\n\n\n 商品 %s已经销售出了 %d件\n",name,num); 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",usertemp.username); for(i=0;i<100;i+
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服