📄 xs.c
字号:
#include<stdio.h>
#include<stdlib.h>
#define max 31*4*5*5
#include<graphics.h>
struct goods
{
int p_num;
int num;
int g_num;
} s[max];
struct persons
{
int num[7];
}p[6],w;
/*主函数*/
int n;/*全局变量*/
int x0,y0;
main()
{
int output1(),output2(),output3(),output4(),save(),mulu(),arg();
int x0,y0;
char a;
while(1)
{
textbackground(5);
textcolor(11);
clrscr();
x0=30,y0=3;
gotoxy(x0-5,y0); puts("*******销售管理系统********");
gotoxy(x0-7,y0+3);puts("请按以下格式键入销售信息(按-1结束):");
gotoxy(x0-10,y0+4);puts("销售员代号(<=4) 产品代号(<=5) 销售额");
a=bioskey(0)%256;
if(a=-1)break;
}
for(n=0;n<max;n++)
{
scanf("%d",&s[n].p_num);
if(s[n].p_num==(-1))
break;
else
scanf("%d%d",&s[n].g_num,&s[n].num);
}
mulu();
}
/*菜单*/
int mulu()
{
char a;
arg();
while(1)
{
textbackground(10);
textcolor(14);
clrscr();
a=0,x0=30,y0=3;
gotoxy(x0+1,y0); puts("********销售管理系统*********");
gotoxy(x0-20,y0+=3);puts("1.计算上个月每个人每种产品的销售额");
gotoxy(x0-20,y0+=2);puts("2.按销售额对销售员进行排序,输出排序结果(销售员代号)");
gotoxy(x0-20,y0+=2);puts("3.统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果");
gotoxy(x0-20,y0+=2);puts("4.输出统计报表");
gotoxy(x0-20,y0+=2);puts("0: 退 出 系 统");
gotoxy(x0-20,y0+=3);printf("请输入数字选择(0-4): ");
a=bioskey(0)%256;
switch(a)
{
case '1':output1(); break;
case '2':output2();break;
case '3':output3();break;
case '4':output4(); break;
case '0':closefile(); exit(0);
default:printf("您按错键了,请确定后重新按!谢谢!");
getch();
}
}
}
int arg()
{ int k,a,j;
for(k=1;k<=5;k++)
{ p[0].num[k]=k;
for(a=1;a<=6;a++)
p[k].num[a]=0;
}
for(k=1;k<=4;k++)
p[k].num[0]=k;
for(k=1;k<=4;k++)
for(a=1;a<=5;a++)
for(j=0;j<31*4*5*5;j++)
if(s[j].p_num==k && s[j].g_num==a)
p[k].num[a]=p[k].num[a]+s[j].num;
/*每种产品的销售额*/
for(a=1;a<=5;a++)
for(k=1;k<=4;k++)
p[5].num[a]=p[5].num[a]+p[k].num[a];
/* 每个人的销售额*/
for(k=1;k<=5;k++)
for(a=1;a<=5;a++)
p[k].num[6]=p[k].num[6]+p[k].num[a];
}
int output1()
{ int i,k;
textbackground(5);
textcolor(11);
clrscr();
x0=0,y0=0;
gotoxy(x0+19,y0+3); puts("************上个月每个人销售情况如下:************");
gotoxy(x0+34,y0+4);puts("按任意键返回主菜单");
gotoxy(x0+25,y0+=7);puts("产品代码 ");
gotoxy(x0,y0);printf("销售员码");
gotoxy(x0+=13,y0+=1);
for(k=1;k<=5;k++)
{printf("%d",p[0].num[k]);
gotoxy(x0+=8,y0);}
gotoxy(x0-=56,y0+=3);
for(i=1;i<=4;i++)
{for(k=0;k<=5;k++)
{gotoxy(x0+=8,y0);printf("%d",p[i].num[k]);}
gotoxy(x0-=48,y0+=3);}
getch(); mulu();
}
/*按销售额对销售员进行排序,输出排序结果(销售员代号)*/
int output2()
{
int i,r,j;char a;
textbackground(5);
textcolor(11);
clrscr();
x0=0,y0=0;
gotoxy(x0+16,y0+3); puts("**********按销售额对销售员排序情况如下**********");
gotoxy(x0+29,y0+4); puts("按任意键返回主菜单");
printf("\n\n\n");
gotoxy(x0,y0);puts("销售员代码 销售总额 ");
/*按销售额排序*/
for(i=1;i<4;++i)
{
r=i;
for(j=i+1;j<=4;j++)
if(p[r].num[6]<p[j].num[6])
r=j;
if(r!=i)
{ w=p[i];
p[i]=p[r];
p[r]=w;
}
}
for(i=1;i<=4;i++)
printf(" %d\t\t\t%d\n\n",p[i].num[0],p[i].num[6]);
getch(); mulu();
}
/*统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果 */
int output3()
{
int k,i,r,t;char a;
textbackground(5);
textcolor(11);
clrscr();
x0=0,y0=0;
gotoxy(x0+20,y0+3); puts("******每种产品的总销售额顺序情况如下******");
gotoxy(x0+32,y0+4);puts("按任意键返回主菜单");
printf("\n\n\n");
gotoxy(x0,y0);puts("产品代码 总销售额 ");
for(k=1;k<5;k++)
{
r=k;
for(t=k+1;t<=5;t++)
if(p[5].num[r]<p[5].num[t]) r=t;
if(r!=k)
for(i=0;i<=5;i++)
{ p[i].num[6]=p[i].num[k];
p[i].num[k]=p[i].num[r];
p[i].num[r]=p[i].num[6];
}
}
for(k=1;k<=5;k++)
printf(" %d\t\t%d \n\n",p[0].num[k],p[5].num[k]);
getch(); mulu();
}
/* 输出统计报表*/
int output4()
{int i,k;
int flage=0;
textbackground(5);
textcolor(11);
clrscr();
x0=0;y0=0;n=0;
gotoxy(x0+23,y0+3);printf("************销售统计报表*************\n\n");
gotoxy(x0+23,y0+4);puts(" 按任意键返回主菜单");
gotoxy(x0+2,y0+7);printf("\t\t\t产品代号 ");
printf("\n");
gotoxy(x0,y0+5);printf("销售员码1\t2\t3\t4\t5\t销售之和\n\n ");
for(i=1;i<=4;i++)
{for(k=0;k<=6;k++)
{gotoxy(x0,y0+6);printf("%d\t",p[i].num[k]);n++;}
if(n%7==0)
printf("\n\n");
}
gotoxy(x0,y0+10); printf("总和\t");
for(k=1;k<=6;k++)
printf("%d\t",p[5].num[k]);
if(flage==0)/*保证只存一次*/
{save();
flage=1;
printf("\n\n 信息已成功保存!----->文件名:GOODS_IN.TXT<");getch();
}mulu();
}
int save()/*向磁盘写*/
{
FILE *fp;
int i,k;
if((fp=fopen("c:\\GOODS_IN.TXT","wt"))==NULL)
{
printf("\n\n不能打开文件,按任意键退出!");
getch();
exit(1);
}
fprintf(fp," 产品代号 \n销售员码1\t2\t3\t4\t5\t销售之和\n\n");
for(i=1;i<=4;i++)
{ for(k=0;k<=6;k++)
fprintf(fp,"%d\t",p[i].num[k]);
fprintf(fp,"\n\n");
}
fprintf(fp,"总和 ");
for(k=1;k<=6;k++)
fprintf(fp,"%d\t",p[5].num[k]);
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -