销售管理系统综合设计报告.docx
《销售管理系统综合设计报告.docx》由会员分享,可在线阅读,更多相关《销售管理系统综合设计报告.docx(28页珍藏版)》请在冰豆网上搜索。
![销售管理系统综合设计报告.docx](https://file1.bdocx.com/fileroot1/2023-1/4/6dc6bee5-a93e-4e02-a7f9-bc0b265a81e0/6dc6bee5-a93e-4e02-a7f9-bc0b265a81e01.gif)
销售管理系统综合设计报告
信息技术学院
课程设计(大作业)任务书
课程设计题目:
销售管理系统
课程设计要求:
设计一产品及销售员信息管理系统,使之能提供以下功能:
销售信息包括:
产品价格的添加、查询、删除等,销售员的添加、查询、删除等。
1、系统以菜单方式工作
2、产品及销售员信息录入功能(产品价格及销售员信息用文件保存),可不定时地增加信息,编号不允许重复;
3、产品及销售员信息浏览功能
4、产品及销售员信息查询功能
查询方式:
按编号查询
5、产品及销售员信息的删除
输入编号,查询该信息,如果存在,则删除该信息。
6、产品及销售员信息的修改
输入编号,查询该信息,如果存在,则修改该信息。
工作计划及安排:
6月20日:
查阅资料,分析系统需求,设计系统流程图,分割模块。
6月21日:
设计模块,写结构算法。
6月22日:
编写代码,上机调试,改进程序,实现功能。
6月23日:
撰写报告。
6月24日:
整理改进报告,为答辩做准备。
指导教师签字
年月日
设计报告
一、需求分析
根据任务要求进行分析,本系统主要包括销售及销售员信息录入、销售及销售员信息查询、销售及销售员信息删除、销售及销售员信息修改功能。
具体要说明如下:
1.销售及销售员信息录入
(1)货物及销售员编号不可以重复。
(2)随时添加销售信息。
2.销售及销售员信息浏览
(1)只可以浏览不可以修改。
(2)同时输出所有的有关信息。
3.销售及销售员信息查询
(1只输出所需信息,不可修改。
4.销售及销售员信息删除
(1)首先调用print输出所有信息,方便知道自己要删除的信息。
(2)输入编号,信息整条删除。
(3)再次调用print,方便查看删除效果。
5.销售及销售员信息修改
(1)首先调用print输出所有信息,方便知道自己要修改的编号。
(2)输入编号,可修改除编号外的信息。
(3)再次调用print,方便查看修改后效果。
6、销售及销售员的信息的保存
二.总体设计
1.系统总模块设计
根据系统总模块设计系统需求分析设计总模块如图1所示。
图1 信息管理系统功能结构
2.各功能模块说明
根据上述的分析,将系统按功能分为以下模块
主程序模块tel.cpp;调用各模块中的函数实现对通讯录的管理。
头文件模块tel.h;定义相关结构,定义常量及全局变量,声明所有模块的函数。
文件模块file.cpp;读文件及建立链表的函数,将链表写入磁盘文件。
浏览模块print1.cpp;输出产品信息。
Print2.cpp;输出销售员信息。
查询模块search.cpp;查询商品信息。
found.cpp;销售员管理查询
录入模块insert.cpp;销售信息的录入。
查询模块found.cpp;按销售员管理查询。
search.cpp;查询商品信息
删除模块delate.cpp;按编号删除销售员信息。
del.cpp;删除产品信息。
修改模块chang.cpp;按编号修改产品信息。
mod.cpp;修改销售员姓名
排序模块sortbypid1.cpp;对产品进行排序。
sortbypid2.cpp;对销售员排序
三、详细设计
1.系统流程图描述系统总流程如图2所示
2.模块设计
(1)主要结构设计
系统主要功能销售员信息,销售员信息的结构体定义如下:
3.控制结构设计
(1)主程序模块first.cpp
first模块有主函数main。
主函数main流程图如图2所示。
图2主函数处理流程
四、代码实现
#include
#include
#include
#defineLEN1sizeof(PROD1)
#defineLEN2sizeof(PROD2)
voidsaveprod1();
voiddel();
voidsearch();
voidprint1();
voidsortbypid1();
voidchange();
intadd_sale();
voidsaveprod2();
intadd_saleman();
voidsortbypid2();
voidprint2();
voidmod();
voiddelate();
typedefstructsale
{
intpid;//产品编号
charname[20];//产品名称
floatprice;//产品价格
}PROD1;
typedefstructsale2
{
intsid;//销售员编号
charpname[20];//销售员名字
}PROD2;
PROD1sale[5];
PROD2sale2[5];
intpn=0;
intsn=0;
inti,j;
intadd_sale()//添加商品信息
{
intpid,w,z;
floatprice;
charname[20];
FILE*fp;
if((fp=fopen("f:
\\price.dat","rb"))==NULL)
{
printf("cannotopenfile!
\n");
exit(0);
}
for(w=0;w<3;w++)
{
if(fread(&sale[w],LEN1,1,fp)!
=1)
{
printf("error!
");
break;
}
}
for(pn=0;sale[pn].pid!
=0;pn++);
z=3-pn;
printf("已有%d个商品信息,请再输入%d组数据\n",pn,z);
while(pn<3)
{
printf("请输入产品编号:
");
scanf("%d",&pid);
sale[pn].pid=pid;
if(sale[pn].pid==sale[pn-1].pid||sale[pn].pid==sale[pn-2].pid)
{
printf("已有该编号!
\n");
continue;
}
printf("请输入产品名称和价格:
");
scanf("%s%f",name,&price);
sale[pn].price=price;
strcpy(sale[pn].name,name);
pn++;
}
sortbypid1();
returnpn;
}
voidsaveprod1()//把信息保存在磁盘上
{
FILE*fp;
inti;
if((fp=fopen("f:
\\price.dat","wb"))==NULL)//从磁盘打开文件
{
printf("Filecan'topen!
\n");
exit(0);
}
for(i=0;i<3;i++)
if(fwrite(&sale[i],LEN1,1,fp)!
=1)
printf("filewriteerror\n");
fclose(fp);
}
voidsearch()//查询商品信息
{
FILE*fp;
if((fp=fopen("f:
\\price.dat","rb"))==NULL)
{
printf("cannotopenfile!
\n");
exit(0);
}
for(intw=0;w<3;w++)
{
fread(&sale[w],LEN1,1,fp);
}
intk,l;
printf("请输入要查询的编号:
\n");
scanf("%d",&k);
for(l=0;l<3;l++)
{
if(sale[l].pid==k)
break;
}
printf("\t\t\t编号名称价格\t\n");
printf("\t\t\t%d%s%.f\n",sale[l].pid,sale[l].name,sale[l].price);
if(l>=3||l<0)
{
printf("**************\n");
printf("*没有这个编号*\n");
printf("**************\n");
}
fclose(fp);//关闭文件
}
voidchange()//修改商品信息
{
FILE*fp;
floatp;
if((fp=fopen("f:
\\price.dat","rb"))==NULL)
{
printf("cannotopenfile!
\n");
exit(0);
}
for(intw=0;w<3;w++)
{
fread(&sale[w],LEN1,1,fp);
}
printf("请输入要修改的编号:
\n");
scanf("%d",&j);
for(i=0;i<3;i++)
if(sale[i].pid==j)break;
if(j!
=sale[i].pid)
{
printf("没有这个编号\n");
}
else
{
printf("编号商品姓名商品价格\n");
printf("%d%s%.2f\n",sale[i].pid,sale[i].name,sale[i].price);
printf("请输入你要修改的价格:
\n");
scanf("%f",&p);
sale[i].price=p;
printf("修改成功\n");
}
saveprod1();
fclose(fp);
}
voiddel()//删除产品
{
FILE*fp;
if((fp=fopen("f:
\\price.dat","rb"))==NULL)
{
printf("cannotopenfile!
\n");
exit(0);
}
for(i=0;i<3;i++)
{
fread(&sale[i],LEN1,1,fp);
}
intt,num,k=0,h;
printf("请输入你要删除产品的编号:
\n");
scanf("%d",&num);
for(h=0;sale[h].pid>0;h++);
for(k=0;k<3;k++)
if(num==sale[k].pid)break;
if(num!
=sale[k].pid||num<=0)
{
printf("没有这个编号\n");
}
else
{
printf("编号商品姓名商品价格\n");
printf("%d%s%.2f\n",sale[k].pid,sale[k].name,sale[k].price);
for(t=k;tsale[t]=sale[t+1];
h--;
printf("删除成功\n");
}
saveprod1();
fclose(fp);
}
voidprint1()//总览商品信息
{
FILE*fp;
if((fp=fopen("f:
\\price.dat","rb"))==NULL)
{
printf("cannotopenfile!
\n");
exit(0);
}
printf("\t\t\t编号\t商品姓名\t商品价格\n");
for(inti=0;i<3;i++)
{
printf("\t\t\t%d\t%s\t%.2f\n",sale[i].pid,sale[i].name,sale[i].price);
}
fclose(fp);
}
voidsortbypid1()//对产品进行排序
{
for(i=1;ifor(j=0;jif(sale[j].pid>sale[j+1].pid)
{
PROD1temp;
temp=sale[j];
sale[j]=sale[j+1];
sale[j+1]=temp;
}
}
intadd_saleman()//添加销售员
{
intsid;
charname[20];
while(pn<3)
{
printf("Inputsid:
");
scanf("%d",&sid);
sale2[pn].sid=sid;
if(sale2[pn].sid==sale2[pn-1].sid||sale2[pn].sid==sale2[pn-2].sid)
{printf("已有该编号\n");
continue;}
printf("Inputthesaler'sname:
");
scanf("%s",name);
strcpy(sale2[pn].pname,name);
pn++;
}
sortbypid2();
printf("DataFinish!
\n");
returnpn;
}
voidsaveprod2()//保存到磁盘
{
FILE*fp;
inti;
if((fp=fopen("f:
\\salemen.dat","rb"))==NULL)
{
printf("Filecan'topen!
\n");
exit(0);
}
for(i=0;i<3;i++)
if(fwrite(&sale2[i],LEN2,2,fp)!
=1)
printf("filewriteerror\n");
fclose(fp);
}
voidfound()//销售员管理查询
{
FILE*fp;
if((fp=fopen("f:
\\salemen.dat","rb"))==NULL)
{
printf("cannotopenfile!
\n");
exit(0);
}
for(intw=0;w<3;w++)
{
fread(&sale2[w],LEN2,2,fp);
}
intk,l;
printf("请输入要查询的销售员编号:
\n");
scanf("%d",&k);
for(l=0;l<3;l++)
{
if(sale2[l].sid==k)
break;
}
printf("编号名字\n");
printf("%d%s\n",sale2[l].sid,sale2[l].pname);
if(l>=3||l<0)
{
printf("**************\n");
printf("*没有这个编号*\n");
printf("**************\n");
}
fclose(fp);
}
voidmod()//修改销售员姓名
{
FILE*fp;
if((fp=fopen("f:
\\salemen.dat","rb"))==NULL)
{
printf("cannotopenfile!
\n");
exit(0);
}
for(intw=0;w<3;w++)
{
fread(&sale2[w],LEN2,2,fp);
}
intk,l;
charnname[10];
printf("请输入编号:
\n");
scanf("%d",&k);
for(l=0;l<3;l++)
{
if(sale2[l].sid==k)break;}
if(l>=3||l<0)
{
printf("没有这个编号\n");
printf("\n");
}
else
{
printf("编号姓名\t\n");
printf("%d%s\n",sale2[l].sid,sale2[l].pname);
printf("将名字修改为:
");
scanf("%s",nname);
strcpy(sale2[l].pname,nname);
printf("修改成功\n");
}
sortbypid2();
fclose(fp);
}
voiddelate()//删除销售员信息
{
FILE*fp;
if((fp=fopen("f:
\\salemen.dat","rb"))==NULL)
{
printf("cannotopenfile!
\n");
exit(0);
}
for(inti=0;i<3;i++)
{
fread(&sale2[i],LEN2,2,fp);
}
for(inth=0;sale2[h].sid>0;h++);
intk1,num,m=0;
printf("\n");
printf("请输入你要删除员工的编号:
\n");
scanf("%d",&num);
for(k1=0;k1sale2[k1]=sale2[k1+1];
h--;
printf("删除成功\n");
saveprod2();
fclose(fp);
}
voidprint2()//总览
{
FILE*fp;
if((fp=fopen("f:
\\salemen.dat","rb"))==NULL)
{
printf("cannotopenfile!
\n");
exit(0);
}
printf("编号姓名\n");
for(inti=0;i<3;i++)
{
fread(&sale2[i],LEN2,2,fp);
}
for(inth=0;sale2[h].sid>0;h++);
for(i=0;iprintf("%3d%s\n",sale2[i].sid,sale2[i].pname);
fclose(fp);
}
voidsortbypid2()//对销售员排序
{
inti,j;
for(i=1;ifor(j=0;jif(sale2[j].sid>sale2[j+1].sid)
{
PROD2temp;
temp=sale2[j];
sale2[j]=sale2[j+1];
sale2[j+1]=temp;
}
}
intmain(void)
{
intchoice;
intz;
intw=0;
intk=0;
while
(1)
{
printf("----MainMenu----\n");
printf("====================\n");
printf("1-Pricemanagement\n");
printf("2-Salemanmanagement\n");
printf("0-Exit\n");
printf("====================\n");
printf("请输入的选择(0-2):
\n");
scanf("%d",&choice);
while(choice<0||choice>2)
scanf("%d",&choice);
if(choice==0)
{
printf("谢谢使用该系统\n");
break;
}
switch(choice)
{
case1:
do
{
printf("\n");
printf("\t\t\tSubMenu1-product\n");
printf("\t=====================================================\n");
printf("\t\t\t1-输入商品信息\n");
printf("\t\t\t2-查询商品信息\n");
printf("\t\t\t3-修改商品信息\n");
printf("\t\t\t4-删除商品信息\n");
printf("\t\t\t5-商品信息总览\n");
printf("\t\t\t0-退出\n");
printf("\t=====================================================\n");
scanf("%d",&z);
printf("\n");
system("CLS");
switch(z)
{
case1:
FILE*fp;
if((fp=fopen("f:
\\price.dat","rb"))==NULL)
{
printf("cannotopenfile!
\n");
exit(0);
}
for(w=0;w<3;w++)
{
if(fread(&sale[w],LEN1,1,fp)!
=1)
{
printf("error!
");
break;
}
}
for(;sale[k].pid!
=0;k++);
if(k==3)
{
printf("已经有三个商品信息\n");
}
else
{
system("CLS");
printf("请输入商品编号,名称和价格:
\n");
add_sale();
system("CLS");
}
saveprod1();
break;
case2:
system("CLS");
printf("查询\n");
search();
break;
case3:
system("CLS");
printf("修改\n");
change();
break;
case4:
system("CLS");
printf("删除\n");
printf("\