#include //头文件 #include //头文件 #include //头文件 #define M 100 //货物种类 #define N 100 //顾客数目 struct goods //单个货物信息格式 {int number; //产品编号char name[20]; //产品名称int price1; //进价(或利润)int price2; //售价int amount; //数量 }; struct orderlist //订单格式 {struct goods L[M]; }; struct customer //客户信息内容和格式 {char name[20]; //姓名char password[6]; //服务密码int count; //订单号 }; struct customer khl[N]; //所有客户信息 struct goods base[M]; //库存信息 struct orderlist odl[10*N];//订单表 struct goods lackl[M]; //缺货表 struct goods suml[M+1]; //销售报表 int PP=0; //订单编号 int QQ=0; //客户编号 int goodssum=0; //货物总数//主函数 int main() //主函数开始!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! {int SysUseWay(); //系统使用说明函数声明int chushihua(); //系统初始化函数声明int welcome(); //欢迎界面函数声明int kh(); //客户函数声明int buyer(); //采购部函数声明int manager(); //公司经理函数声明int goodbye(); //欢送函数声明int n,m=9; //变量声明//SysUseWay(); //系统使用说明书chushihua(); //系统初始化while(m==9) //循环三岔口{welcome(); //欢迎界面scanf("%d",&n);switch(n) //各奔东西{case 0 : ;break;case 1 : kh(); break; //客户之家case 2 : buyer(); break; //采购之家case 3 : manager(); break; //经理之家default : printf("输入错误!请退出重从新输入");}if(n==0)break;printf(" 继续进入主界面请按 9 退出请按0\n");scanf("%d",&m);}goodbye(); //欢送界面return 0; } //主函数结束!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//欢迎界面函数定义 int welcome() {printf("................................................................................\n");printf("\n");printf(" ~~~~~~~~欢迎使用商品销售系统~~~~~~~~\n");printf(" 公司客户请按 1\n");printf(" 采购人员请按 2\n");printf(" 公司经理请按 3\n");printf(" 退出主界面请按 0\n");return 0; }//初始化函数 int chushihua() {int i=0,j=0;for(i=0;i0){printf("................................................................................\n");printf("货物编号 货物名称 货物数量 进价 售价\n");printf(" %3d %-20s %6d %6d %6d \n",base[i].number,base[i].name,base[i].amount,base[i].price1,base[i].price2);printf("................................................................................\n");}elsecontinue;}printf("................................................................................\n");return 0; }//采购函数--处理缺货函数 int solvelack() {int i=0,k=0;int printlack(); //采购函数--处理缺货函数--查看函数声明int supplement(); //采购函数--处理缺货函数--添货函数声明printlack(); //查看是否缺货printf(" 如果需要进货,请按1 ; 否则,请按0 \n");scanf("%d",&k);switch(k){case 1:supplement();break;case 0:;break;default :printf("输入错误!\n");}return 0; } int printlack() //采购函数--处理缺货函数--查看函数定义 {int i=0,count=0;if(goodssum==0){printf(" !!!仓库没货!!!请采购人员及时进货!!!\n");return 0;}printf("................................................................................\n");for(i=0;i0){printf("产品编号\n");scanf("%d",&i);while(i>=M){printf("此货物不存在,请重新输入\n");scanf("%d",&i);}base[i].number=i;printf("产品名称:\n");scanf("%s",base[i].name);printf("进货数量:\n");scanf("%d",&j);if(j>0){base[i].amount+=j;goodssum+=j;}elsebreak;printf("\n货物进价:");scanf("%d",&base[i].price1);printf("\n货物售价:");scanf("%d",&base[i].price2);}return 0; }//客户函数 int kh() { int login(); //客户函数--登陆函数声明 int registe(); //客户函数--注册函数声明 int welcomekh(); //客户函数--欢迎函数声明 int searchkh(int falg); //客户函数--查询订货情况的函数声明 int order(int falg); //客户函数--订货函数声明 int i,k=0,flag=0; int n=9,m=9; welcomekh(); //欢迎欢迎 while(m==9) //登陆?注册循环二岔路 { printf(" 登陆请按1, 注册请按2, 否则请按 0\n"); scanf("%d",&i); switch(i) { case 0 : ;break; case 1 : flag=login(); break; case 2 : registe(); break; default :printf("输入错误!\n"); } if(i==0)break; printf(" 登陆或注册请按 9 否则请按0\n"); scanf("%d",&m); }while(n==9) //订购?查询循环二岔路 { printf(" 查询请按 1, 订购请按 2, 否则请按 0\n"); scanf("%d",&i); switch(i) { case 0 : ;break; case 1 : searchkh(flag); break; case 2 : order(flag); break; default :printf("输入错误!\n"); } if(i==0)break; printf(" 继续查询或订购请按 9 否则请按0\n"); scanf("%d",&n); } return 0; }int welcomekh() //客户函数---欢迎函数定义 {printf("..............................................................................\n");printf(" ~~~~~~~~欢迎来到客户之家~~~~~~~~\n");printf("..............................................................................\n");return 0; }//客户函数---登陆函数定义 int login() { int n,count=0; char password[6]; printf("-------------------请输入服务编号-----------------------\n"); scanf("%d",&n); printf("-------------------请输入六位密码-----------------------\n"); scanf("%s",password); while(strcmp(password,khl[n].password)) {printf("~~~~~~~~~~~~~~~请重新输入六位密码~~~~~~~~~~~~~~~~~~~~\n");printf("\n");printf(" 退出登陆,请输入123456\n");scanf("%s",password);if(!strcmp(password,"123456"))break; } if(!strcmp(password,"123456")) return 0; else return n; }//客户函数---注册函数定义 int registe() { printf("~~~~~~~~~~您的服务编号是: %d ,请你一定要记牢您! ~~~~~~~~~~~~~~\n",QQ); printf("~~~~~~~~~~~~~~~请输入您的用户名:~~~~~~~~~~~~~~~~~~\n"); scanf("%s",khl[QQ].name); printf("~~~~~~~~~~~~~~~~请输入六位密码:~~~~~~~~~~~~~~~~~~~\n"); printf("\n"); scanf("%s",khl[QQ].password); QQ++; return 0; }//客户函数---查询函数定义 int searchkh(int flag) { int n,i=0; n=flag; printf("................................................................................\n"); printf(" Hello %s 您的服务编号是: %d\n",khl[n].name,n); printf("................................................................................\n"); if(khl[n].count!=-1){for(i=0;i=M)||(base[k].number==-1)){printf("此货物不存在,请重新输入\n");scanf("%d",&k);} printf("数量\n"); scanf("%d",&m); while(m>0) {if(base[k].amount=M)||(base[k].number==-1)){printf("此货物不存在,请重新输入\n");scanf("%d",&k);}printf("订购数量\n");scanf("%d",&m); } khl[n].count=PP; PP++; return 0; }//经理函数定义 int manager() {int i=0;for(i=0;i