c语言设计销售管理系统,哪位大神帮忙修改一下啊,使它实现录入功能
某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。每位销售员每天上缴1张便条。试设计一个便条管理系统,使之能提供以下功能:
1. 便条信息录入功能(便条信息用文件保存)。对当前便条进行输入并存储,在程序的运行过程中,数据的存储采用结构体数组,但是最终便条信息用文件保存。
2. 统计当前月的销售情况,以天为单位,统计每人每天的便条信息。
3. 计算当前月份的每个人每种产品的销售额。
4. 按当前月的销售额对销售员进行排序,输出排序结果。
代码是
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define M 155
void detail();
void foreach();
void menu();
void readdata();
void seller();
void total();
void choice();
struct ss
{
int sid;
int pid;
int sn;
}ss[M];
int n;
int s[4][5]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}};
void main()
{
readdata();
foreach();
menu();
}
void readdata()
{
FILE *fp;
if((fp=fopen("list","r"))==NULL)
{
printf("Can't open the file!\n");
exit(0);
}
else
for(n=0;!feof(fp);n++)
{
fscanf(fp,"%d%d%d\n",&ss[n].sid,&ss[n].pid,&ss[n].sn);
}
fclose(fp);
}
void foreach()
{
int i;
for(i=0;i<n;i++)
{
switch(ss[i].pid)
{
case 1:
switch(ss[i].sid)
{
case 1:s[0][0]+=ss[i].sn;break;
case 2:s[1][0]+=ss[i].sn;break;
case 3:s[2][0]+=ss[i].sn;break;
case 4:s[3][0]+=ss[i].sn;break;
}
break;
case 2:
switch(ss[i].sid)
{
case 1:s[0][1]+=ss[i].sn;break;
case 2:s[1][1]+=ss[i].sn;break;
case 3:s[2][1]+=ss[i].sn;break;
case 4:s[3][1]+=ss[i].sn;break;
}
break;
case 3:
switch(ss[i].sid)
{
case 1:s[0][2]+=ss[i].sn;break;
case 2:s[1][2]+=ss[i].sn;break;
case 3:s[2][2]+=ss[i].sn;break;
case 4:s[3][2]+=ss[i].sn;break;
}
break;
case 4:
switch(ss[i].sid)
{
case 1:s[0][3]+=ss[i].sn;break;
case 2:s[1][3]+=ss[i].sn;break;
case 3:s[2][3]+=ss[i].sn;break;
case 4:s[3][3]+=ss[i].sn;break;
}
break;
case 5:
switch(ss[i].sid)
{
case 1:s[0][4]+=ss[i].sn;break;
case 2:s[1][4]+=ss[i].sn;break;
case 3:s[2][4]+=ss[i].sn;break;
case 4:s[3][4]+=ss[i].sn;break;
};
break;
}
}
}
void menu()
{
int w,c;
do{
puts("\t\t********************菜单*********************\n\n");
puts("\t\t 1.查看每人每种产品的销售额\n");
puts("\t\t 2.按销售额对销售员排序(销售员代号)\n");
puts("\t\t 3.输出统计报表\n");
puts("\t\t 4.退出\n");
puts("\n\n\t\t*********************************************\n");
printf("请选择(1-4):");
scanf("%d",&c);
if(c<1||c>4)
{
w=1;
getchar();
}
else w=0;
}while(w==1);
switch (c)
{
case 1:
detail();break;
case 2:
seller();break;
case 3:
total();break;
case 4:
exit(0);
}
}
void detail()
{
int i,j;
for(i=0;i<4;i++)
{
printf("\n\t\t%d号销售员销售情况\n",i+1);
for(j=0;j<5;j++);
printf("\n\t\t%d号产品销售数量:%d\n",j+1,s[i][j]);
}
choice();
}
void seller()
{
int i,j,k;
int sp[4]={0,0,0,0};
for(i=0;i<4;i++)
for(j=0;j<5;j++)
sp[i]+=s[i][j];
for(i=0;i<4;i++)
{k=0;
for(j=0;j<4;j++)
if(sp[k]<sp[j])k=j;
printf("\t\t第%d名是%d号销售员\n",i+1,k+1);sp[k]=-1;
}
choice();
}
void total()
{ int i,j;
printf("\n\t销售员\t产品\t销量\n");
for(i=0;i<4;i++)
for(j=0;j<5;j++)
printf("\t %d\t %d\t %d\n",i+1,j+1,s[i][j]);
choice();
}
void choice()
{
int c;
printf("请选择接下来想做什么\t1>返回菜单\t2>退出系统 []\b\b");
scanf("%d",&c);
if(c==1)
menu();
else
exit(0);
}