销售管理系统设计C语言
第一次写的代码,C语言老师布置的期末课程设计作业,自我感觉还可以。当初在网上搜题找了好久都没找到可以看懂的(基础很差,所以此程序很简单易懂),实习周问了老师才总算写完了程序,不容易啊。最后希望这个代码可以给初学C语言的同学有所帮助
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>
#include<string.h>
typedef struct //定义结构体变量
{
char date[10]; //表单日期
int c; //销售员号
int c1; //产品号
int c2;
int c3;
int c4;
int c5;
} CP;
int main() //主函数
{
int caidan(); //声明函数
int shur();
int xianshi();
int chazhao();
int zengjia();
int xiugai();
int tongji();
int a,i;
caidan();
printf("\n输入序号选择程序:");
for(i=1;;i++)
{
scanf("%d",&a);
switch(a)
{
case 1:caidan(); //主菜单
break;
case 2:system("cls");
shur(); //便条输入
break;
case 3:system("cls");
xianshi(); //显示所有便条
break;
case 4:system("cls");
chazhao(); //查找数据
break;
case 5:system("cls");
zengjia(); //增加便条
break;
case 6:system("cls");
xiugai(); //修改便条
break;
case 7:system("cls");
tongji(); //统计表单
break;
}
if(a==0)
{
break;
}
printf("\n输入序号选择程序:");
}
return 0;
}
int caidan() //菜单函数
{
printf("\n1:菜单\n2:输入\n3:显示\n4:查找\n5:追加\n6:修改\n7:统计\n0:退出\n");
}
int shur() /*便条输入*/
{
int i=0,num; //定义变量
FILE *fp;
CP t[100];
printf("请输入要写的便条条数:\n");
scanf("%d",&num);
printf("日期 销售员 b1 b2 b3 b4 b5 ");
for(i=0; i<num; i++)
//获取数据
{
printf("\n--------------------------------------------------------------\n");
scanf("%s\t%d\t%d\t%d\t%d\t%d\t%d",&t[i].date,&t[i].c,&t[i].c1,&t[i].c2,&t[i].c3,&t[i].c4,&t[i].c5);
}
if((fp=fopen("d:\\销售记录表.txt","ab"))==NULL)
{
printf("不能打开文件\n");
exit(1);
}
for(i=0; i<num; i++)
{
fprintf(fp,"%s\t%d\t%d\t%d\t%d\t%d\t%d",t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5); //打印数据到文档中
fprintf(fp,"\r\n");
}
fclose(fp);
printf("\n--------------------------------------------------------------\n");
printf("输入成功,按空格结束,并返回主菜单\n");
getch();
caidan(); //主菜单
}
int xianshi() //输出表单
{
FILE *fp;
char ch;
if((fp=fopen("D:\\销售记录表.txt","r"))==NULL)
{
printf("0000");
exit(0);
}
rewind(fp);
printf("表单:\n日期\t销售员\t1号\t2号\t3号\t4号\t5号\n");
printf("\n--------------------------------------------------------------\n");
while((ch=fgetc(fp))!=EOF)
{
putchar(ch);
}
printf("\n--------------------------------------------------------------\n");
fclose(fp);
printf("输出成功,按空格结束,并返回主菜单\n");
getch();
caidan(); //主菜单
}
int chazhao() //查找数据
{
FILE *fp;
int i=0,a,b,n=0,k=1;
char ch;
CP t[100];
if((fp=fopen("D:\\销售记录表.txt","r"))==NULL)
{
printf("0000");
exit(0);
}
printf("查找销售员请输入1\n查找产品请输入2\n退出请输入3\n");
scanf("%d",&a);
if(a==1)
{
while(fscanf(fp,"%s\t%d\t%d\t%d\t%d\t%d\t%d",&t[i].date,&t[i].c,&t[i].c1,&t[i].c2,&t[i].c3,&t[i].c4,&t[i].c5)!=EOF) //提取数值
{
i++;
n++;
}
fclose(fp);
printf("输入销售员编号:");
scanf("%d",&b);
printf("\n");
printf("表单:\n日期\t销售员\t1号\t2号\t3号\t4号\t5号\n");
printf("\n--------------------------------------------------------------\n");
for(i=0;i<=n;i++)
if(t[i].c==b)
{
printf("%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5);
k=0;
}
if(k)
printf("无记录\n");
printf("输出成功,按空格结束,并返回主菜单\n");
getch();
caidan(); //主菜单
}
if(a==2)
{
while(fscanf(fp,"%s\t%d\t%d\t%d\t%d\t%d\t%d",&t[i].date,&t[i].c,&t[i].c1,&t[i].c2,&t[i].c3,&t[i].c4,&t[i].c5)!=EOF)
{
i++;
n++;
}
fclose(fp);
printf("输入产品编号:");
scanf("%d",&b);
printf("\n");
printf("表单:\n日期\t销售员\t1号\t2号\t3号\t4号\t5号\n");
printf("\n--------------------------------------------------------------\n");
switch(b)
{
case 1:for(i=0;i<n;i++)
if(t[i].c1!=0)
printf("%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",t[i].date,t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5);
break;
case 2:for(i=0;i<n;i++)
if(t[i].c2!=0)
printf("%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",t[i].date,t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5);
break;
case 3:for(i=0;i<n;i++)
if(t[i].c3!=0)
printf("%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",t[i].date,t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5);
break;
case 4:for(i=0;i<n;i++)
if(t[i].c4!=0)
printf("%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",t[i].date,t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5);
break;
case 5:for(i=0;i<n;i++)
if(t[i].c5!=0)
printf("%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",t[i].date,t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5);
break;
}
printf("输出成功,按空格结束,并返回主菜单\n");
getch();
caidan(); //主菜单
}
if(a==3)
{
printf("按空格结束,并返回主菜单\n");
getch();
caidan(); //主菜单
}
}
int zengjia() //增加表单
{
int i=0,num; //定义变量
FILE *fp;
CP t[100];
printf("请输入要写的便条条数:\n");
scanf("%d",&num);
printf("\n日期\t销售员\tb1\tb2\tb3\tb4\tb5\n");
for(i=0; i<num; i++)
//获取数据
{
printf("\n--------------------------------------------------------------\n");
scanf("%s\t%d\t%d\t%d\t%d\t%d\t%d",&t[i].date,&t[i].c,&t[i].c1,&t[i].c2,&t[i].c3,&t[i].c4,&t[i].c5);
}
if((fp=fopen("d:\\销售记录表.txt","ab"))==NULL)
{
printf("不能打开文件\n");
exit(1);
}
for(i=0; i<num; i++)
{
fprintf(fp,"%s\t%d\t%d\t%d\t%d\t%d\t%d",t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5); //打印数据到文档中
fprintf(fp,"\r\n");
}
fclose(fp);
printf("--------------------------------------------------------------\n");
printf("输入成功,按空格结束,并返回主菜单\n");
getch();
caidan(); //主菜单
}
int xiugai() //修改表单
{
FILE *fp;
CP t[100];
int a,i=0,n=0,b=1;
if((fp=fopen("D:\\销售记录表.txt","r+"))==NULL)
{
printf("0000");
exit(0);
}
while(fscanf(fp,"%s\t%d\t%d\t%d\t%d\t%d\t%d",&t[i].date,&t[i].c,&t[i].c1,&t[i].c2,&t[i].c3,&t[i].c4,&t[i].c5)!=EOF) //提取数值
{
i++;
n++;
}
fclose(fp);
printf("\t日期\t销售员\tb1\tb2\tb3\tb4\tb5 \n");
printf("\n--------------------------------------------------------------\n");
for(i=0;i<n;i++,b++)
{
printf("%d:\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",b,t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5);
}
printf("请输入要修改第几个便条:");
scanf("%d",&a);
printf("\n");
printf("%d:\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",a,t[a-1].date,t[a-1].c,t[a-1].c1,t[a-1].c2,t[a-1].c3,t[a-1].c4,t[a-1].c5);
printf("\n请输入修改后的结果\n");
printf("日期\t销售员\tb1\tb2\tb3\tb4\tb5 \n");
printf("\n--------------------------------------------------------------\n");
scanf("%s\t%d\t%d\t%d\t%d\t%d",t[a-1].date,&t[a-1].c,&t[a-1].c1,&t[a-1].c2,&t[a-1].c3,&t[a-1].c4,&t[a-1].c5);
if((fp=fopen("D:\\销售记录表.txt","w"))==NULL)
{
printf("0000");
exit(0);
}
for(i=0; i<n; i++)
{
fprintf(fp,"%s\t%d\t%d\t%d\t%d\t%d\t%d",t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5); //打印数据到文档中
fprintf(fp,"\r\n");
}
fclose(fp);
printf("输入成功,按空格结束,并返回主菜单\n");
getch();
caidan(); //主菜单
}
int tongji() //统计报表
{
FILE *fp;
int i,n,a1,a2,a3,a4,a5,b; //n便条数,a产品数,b产品总额
CP t[100];
a1=a2=a3=a4=a5=b=n=0;
i=1;
if((fp=fopen("d:\\销售记录表.txt","r"))==NULL)
{
printf("不能打开文件\n");
exit(1);
}
while(fscanf(fp,"%s\t%d\t%d\t%d\t%d\t%d\t%d",&t[i].date,&t[i].c,&t[i].c1,&t[i].c2,&t[i].c3,&t[i].c4,&t[i].c5)!=EOF) //提取数值
{
i++;
n++;
}
printf("输出统计表单:\n");
printf("\t日期\t销售员\tb1\tb2\tb3\tb4\tb5 \n");
printf("\n--------------------------------------------------------------\n");
for(i=1;i<=n;i++)
{
printf("\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t\n",t[i].date,t[i].c,t[i].c1,t[i].c2,t[i].c3,t[i].c4,t[i].c5);
a1+=t[i].c1;
a2+=t[i].c2;
a3+=t[i].c3;
a4+=t[i].c4;
a5+=t[i].c5;
b=a1+a2+a3+a4+a5;
}
printf("\n--------------------------------------------------------------\n");
printf("\t\t便条数\tb1\tb2\tb3\tb4\tb5") ;
printf("\n--------------------------------------------------------------\n");
printf("统计:\t\t%d\t%d\t%d\t%d\t%d\t%d\n",n,a1,a2,a3,a4,a5);
printf("总销售额:%d\n",b);
printf("输出成功,按空格结束,并返回主菜单\n");
getch();
caidan(); //主菜单
}