| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 763 人关注过本帖
标题:哪位高手帮我解决个问题,有关销售系统~
只看楼主 加入收藏
gx404961234
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-11-25
收藏
 问题点数:0 回复次数:5 
哪位高手帮我解决个问题,有关销售系统~
某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:
1)销售员的代号
2)产品的代号
3)这种产品的当天的销售额
  每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
4)输出统计报表  
                            销售统计报表
                             产品代号                   销售之和
销售员代号            1     2     3     4     5     
   1
   2
   3
   4
每种产品之和                                              总和
搜索更多相关主题的帖子: 系统 销售 
2008-11-26 22:30
gx404961234
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-11-25
收藏
得分:0 
高手们,帮帮忙呀~
2008-12-02 12:45
Annezg
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-6-5
收藏
得分:0 
/*计算上个月每个人每种产品的销售额。
1)按销售额对销售员进行排序,输出排序结果(销售员代号)
2)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
3)输出统计报表如下:*/
 
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#define Z 5
#define R 4                                             /*定义宏常量便于程序的一般化*/ /*R表示销售员个数*/
typedef struct                                          /*缩短结构体变量名*/
{
 int shangpin[Z];                                    /*定义结构体便于信息的存储和读写,辨别*/ /*R是表示商品的种类,最后一个为该销售员商品总和*/
}data;
void menu()
{   printf("    *******************************************************\n");
 printf("          0.结束操作\n");
 printf("          1.计算上个月每个人每种产品的销售额\n");
 printf("          2.按销售额对销售员进行排序,输出排序结果\n");
 printf("          3.统计每种产品的总销售额,输出排序结果\n");
 printf("          4.输出统计报表\n");
 printf("    ******************************************************\n");
}
void data_read(data *x)                                  /*读入函数使程序简洁*/
{
 FILE *fp;
 char fname[10];
 int i;
    printf("您想查询哪个月?\n");
 printf("请输入月份:");           /*输入文件名,这样可以进行各个月份信息读入*/
 scanf("%s",fname);
 strcat(fname,".txt");/*连接文件属性*/
 if((fp=fopen(fname,"rb"))==NULL)                      /*打开文件*/
 {
  printf("can not open the file\n");
  exit(0);
 }
 for(i=0;i<R;i++)                                     /*读出信息*/
 if(fread(x+i,sizeof(data),1,fp)!=1)
  printf("读入信息出错!\n");      
}
void data_count(data *x)                                 /*计算上个月每个人每种产品的销售额*/
{
 FILE *fp;
 char fname[10];
 int j,t;                                             /*用于控制循环*/
 int i,k,s;                                           /*用于定义职工序号,产品序号,产品数量*/
 system("cls");
 printf("您想计算哪个月?\n");
 printf("请输入月份:");           /*输入文件名,这样可以进行各个月份信息写入*/
 scanf("%s",fname);
 strcat(fname,".txt");
 if((fp=fopen(fname,"wb"))==NULL)                      /*打开文件*/
 {
  printf("can not open the file\n");
  exit(0);
 }
 for(j=0;j<R;j++)                                     /*对商品数量清零*/
  for(t=0;t<Z;t++)
   (x+j)->shangpin[t]=0;
 printf("please put the information about the 职工编号,产品编号,销售数量\n");    /*写入信息*/
 for(j=0;;j++)
 {
  scanf("%d%d%d",&i,&k,&s);
  if(i==0)                                         /*输入职工为0时结束信息输入*/
   break;
  if(i>R||i<0||k>Z||k<0)  
  {
   printf("the information error!\n");          /*避免输入信息出错*/
   continue;
  }
  else
   (x+i-1)->shangpin[k-1]=(x+i-1)->shangpin[k-1]+s;/*统计各个人的各种产品的数量,-1为了和数组中的序号相匹配*/
 }
 for(j=0;j<R;j++)
  if(fwrite((x+j),sizeof(data),1,fp)!=1)            /*把信息写入文件中便有以后调用*/
   printf("write error!\n");
 fclose(fp);                                           /*关闭文件避免信息遗漏*/
}
void range_sxy(data *x)                               /*按销售额对销售员进行排序,输出排序结果*/
{
 FILE *fp;
 char fname[10];
 int i,k,j,t,bianhao[R]={0},z;
 system("cls");
 printf("你要哪个月的?\n");
 printf("请输入月份:");           /*输入文件名,这样可以进行各个月份信息读入*/
 scanf("%s",fname);
 strcat(fname,".txt");
 if((fp=fopen(fname,"rb"))==NULL)                      /*打开文件*/
 {
  printf("can not open the file\n");
  exit(0);
 }
 for(i=0;i<R;i++)                                     /*读出信息*/
 if(fread(x+i,sizeof(data),1,fp)!=1)
  printf("读入信息出错!");                        /*读入信息提示*/
 for(i=0;i<R;)                                    /*用于存储职工编号*/
  bianhao[i]=i++;
 printf("请输入按何种产品排序\n");
 scanf("%d",&k);
 k=k-1;                                               /*便于与结构体中的数组值对应*/
 for(i=0;i<R;i++)                                     /*按K种产品对销售员排序,选择法排序*/
 {
  t=i;
  for(j=i+1;j<R;j++)
   if((x+bianhao[t])->shangpin[k]<(x+bianhao[j])->shangpin[k])/*调用职工各自对应的结构体内的产品数量*/
    t=j;
   if(t!=i)
   {
    z=bianhao[i];
    bianhao[i]=bianhao[t];
    bianhao[t]=z;
   }
 }
 printf("按%d产品对销售员排序为:\n",k+1);
 for(i=0;i<R;i++)
  printf("%5d",bianhao[i]+1);
 getch();
 fclose(fp);
}
void range_shangpin(data *x)                            /*统计每种产品的总销售额,输出排序结果*/
{
    FILE *fp;
 char fname[10];
 int i,j,sum[Z]={0},bianhao[Z]={0},z,t,k;
    system("cls");
 printf("您想计算哪个月的?\n");
 printf("请输入月份:");           /*输入文件名,这样可以进行各个月份信息读入*/
 scanf("%s",fname);
 strcat(fname,".txt");
 if((fp=fopen(fname,"rb"))==NULL)                      /*打开文件*/
 {
  printf("can not open the file\n");
  exit(0);
 }
    for(i=0;i<R;i++)                                     /*读出信息*/
 if(fread(x+i,sizeof(data),1,fp)!=1)
  printf("读入信息出错!");
 for(i=0;i<Z;i++)                                     /*对各种商品求和*/
  for(j=0;j<R;j++)
   sum[i]=sum[i]+(x+j)->shangpin[i];
 for(i=0;i<Z;)                                        /*用于存储商品编号*/
  bianhao[i]=i++;
 for(i=0;i<Z;i++)
 printf("%3d",bianhao[i]);
    for(i=0;i<Z;i++)                                     /*对产品从高到低排序,选择法排序*/
 {
  t=i;
  for(j=i+1;j<Z;j++)                               /*产品变化时,产品编号也随之变化,便于输出*/
   if(sum[t]<sum[j])                          
    t=j;
   if(t!=i)
   {
    k=sum[i];
    sum[i]=sum[t];
    sum[t]=k;
    z=bianhao[i];
    bianhao[i]=bianhao[t];
    bianhao[t]=z;
   }
 }
 printf("输出产品排序\n");
 printf("产品编号  数量\n");
 for(i=0;i<Z;i++)
  printf("%-10d%-10d\n",bianhao[i]+1,sum[i]);
 getch();
 fclose(fp);
}
void data_out(data *x)                                    /*输出统计报表*/
{
    FILE *fp;
 char fname[10];
    int i,j,sum[Z+1]={0};
    system("cls");
 printf("您想计算哪个月?\n");
 printf("请输入月份:");           /*输入文件名,这样可以进行各个月份信息读入*/
 scanf("%s",fname);
 strcat(fname,".txt");
 if((fp=fopen(fname,"rb"))==NULL)                      /*打开文件*/
 {
  printf("can not open the file\n");
  exit(0);
 }
    for(i=0;i<R;i++)                                     /*读出信息*/
 if(fread(x+i,sizeof(data),1,fp)!=1)
  printf("读入信息出错!");
    for(i=0;i<Z;i++)                                     /*对各种商品求和*/
  for(j=0;j<R;j++)
   sum[i]=sum[i]+(x+j)->shangpin[i];
    for(i=0;i<Z;i++)                                     /*求商品总和*/
  sum[Z]=sum[Z]+sum[i];
 printf("输出统计报表如下:\n");                       /*按要求输出统计表*/
 printf("产品代号  销售之和  销售员代号\n");
 for(i=0;i<R;i++)
  for(j=0;j<Z;j++)
   printf("%-10d%-10d%-10d\n",j+1,(x+i)->shangpin[j],i+1);
  printf("***********************************\n");
  for(i=0;i<Z;i++)
  {  
   if(i==0)
    printf("%d产品之和 %-10d   总和  %-10d\n",i+1,sum[i],sum[Z]);
   else
    printf("%d产品之和 %-10d\n",i+1,sum[i]);
  }
  getch();
}
void main()
{
 int i,choice;
 data sxy[R];                                      /*R表示职工的个数,前面的宏常量*/
 for(i=0;;i++)
 {
  system("cls");                                   /*清频命令*/
  menu();                                          /*菜单函数提示用户怎样选择*/
  printf("你想做什么?\n");
  printf("请选择:");                /*输入要进行的操作*/
  scanf("%d",&choice);
  if(choice==0)                                    /*退出程序*/
   break;
  else
   switch(choice)
  {
   case 1 : data_count(sxy);break;            /*计算上个月每个人每种产品的销售额*/
   case 2 : range_sxy(sxy);break;          /*按销售额对销售员进行排序,输出排序结果*/
   case 3 : range_shangpin(sxy);break;        /*统计每种产品的总销售额,输出排序结果*/
   case 4 : data_out(sxy);break;              /*输出统计报表*/
  }
 }
}


这个题目比我们现在要做的简单
2009-10-15 11:35
快速回复:哪位高手帮我解决个问题,有关销售系统~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034040 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved