销售管理系统课程设计报告样本文档格式.docx
- 文档编号:21933524
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:31
- 大小:284.85KB
销售管理系统课程设计报告样本文档格式.docx
《销售管理系统课程设计报告样本文档格式.docx》由会员分享,可在线阅读,更多相关《销售管理系统课程设计报告样本文档格式.docx(31页珍藏版)》请在冰豆网上搜索。
6)输出统计报表
2.2总体设计
在本软件中,关键利用函数调用来实现对食品销售统计和管理。
本软件实现了销售信息统计功效(包含每个销售员每种产品销售情况)、销售信息查询功效(按销售员查询、按销售总量查询等)和销售信息储存功效,和输出统计报表功效,和从文件中读取数据功效等,从而达成对食品销售情况管理。
2.3总体程序模块图
输入
清单
天数
及销
售员
销售
情况
图2.1总体程序模块
2.4总体设计步骤图
Y
Menu_select()=1
N
Length=enter(rec);
Menu_select()=2
Break;
Y
Salor(rec,length);
Menu_select()=3
List1(rec,length);
;
;
Y
N
=7
lN
Y
Y
图2.2总体设计步骤
3系统功效模块设计
3.1Main()主函数模块
主函数是程序入口,采取模块化设计。
首先在主程序中打印出主菜单界面,将会显示出八个功效函数,作为进入系统操作一个方法,选择对应代号便会进入对应功效操作,当选择“000”时便会退出操作。
图3.1主菜单界面
3.2enter()输入清单函数模块
本函数先经过system(“cls”)函数将主菜单界面清除;
然后依据定义清单天数输入销售员代号及各产品销售量,并经过for函数将输入内容存入结构体数组中,然后退出该模块。
图3.2输入清单函数模块
图3.3输入清单函数步骤
3.3保留模块
该模块调用fopen函数将其保留在文件中。
假如函数带回一个空指针,则不能打开该文件,退出;
保留成功后就会关闭文件,并显示保留成功。
然后按任意键便会继续运行程序。
图3.4保留数据界面
图3.5保留函数步骤
3.4读入数据模块
该模块采取指针函数*fp,用fscanf对文件中数据进行调用,此时屏幕会显示“恭喜您已成功从文件中读出数据”,然后便可利用文件中数据进行下面操作。
图3.6读入数据界面
图3.7读入数据步骤
3.5查询销售员销售额模块
该模块采取数组函数实现对销售员销售情况调用,采取if条件函数可直接输出查询情况,只需输入销售员代号即可。
图3.8查询销售员销售额界面
图3.9查询销售员销售额步骤
3.6排序模块
此部分用voidlist1()函数,首先定义两个数组,然后利用for结构实现函数体循环,用for条件函数实现销售员销售额排序。
图3.10排序界面
图3.11排序步骤
3.7统计表模块
定义两个数组,经过对数组附初值实现对每一个产品销售额求和
和产品排序。
图3.12统计表界
图3.13统计表步骤
4程序调试及分析
1)开始时不能从文件中读取数据,每次输入数据只能在此次函数调用中使用,下次仍需重新输入,问题出在没有对附地址栏即fscanf(fp,"
%10d%7d%7d%7d%7d%7d"
t[i].name,t[i].a1,t[i].a2,t[i].a3,t[i].a4,&
[i].a5,修改后加入地址栏便能从文件中直接读入数据。
2)在Main()函数中开始少一个case结构,造成在voidlist2函数中“getch”未定义,加入case5:
a(rec,length);
break;
后便能正常运行。
3)在清单输入模块中,开始只能输入一天销售统计,原因是少了循环程序编译,添加for(j=0;
j<
num;
j++)和for(i=0;
i<
4;
i++)后便能由外界定义输入清单天数。
4)在求销售产品总和模块中,忽略了将最终结果返回sum,虽不影响程序运行,但这也是程序不完善之处。
5总结及体会
在做课程设计以前,我对销售管理信息系统了解只是停留在理论和知识水平上,并没有认真去操作实践。
只是所谓“纸上谈兵”而已,缺乏实际操作技术,缺乏对所学知识融会贯通。
经过这次课程设计,我经过自学、在同学们帮助下完成了《食品店销售管理系统》设计和开发。
在课程设计整个过程中我碰到了很多问题,但我全部在慢慢地学习过程中一点一点地克服了。
同时我发觉真正学好、学懂一门新语言是有难度,值得庆幸是,在此期间指导老师给了我很大帮助和激励。
使我经过这次课程设计,同时又学习了很多在日常考试过程中学习不到知识和自己动手能力。
在边自学边设计过程中,我查阅了很多资料,请教了不少同学和老师。
在刚开始编程时候还是不能得心应手。
在一次又一次修改过程中不停地进步和提升,不过还是有些功效我无法把它用到我程序中来,真有点遗憾,同时因为这次时间比较紧,无法更深入地去钻研这门课程。
这次课程设计是我本学期所学知识综合应用,使我对一学期所学内容有了愈加深刻认识,使得所学知识得到融会贯通,得到了以前学习任何一门课全部没有提升和进步,对我来说是一次很好锻炼,这不仅把以前所学知识再重温习一遍,而且又学会了一门新语言。
总而言之,经过此次课程设计,我最终完成了《食品店销售管理系统》课程设计。
在做本课程过程中,我不仅愈加深刻体会了VC这门语言,还对结构体数组有了比较熟练了解,更关键是学到了很多编程思想。
我会在以后学习中去愈加熟练掌握C语言。
致谢
在以前,自己在上课时没有很好听课,下来后也没有很好去实践操作。
致使自己编程水平和同学们相差很远。
经过此次实践,在老师和同学帮助下,我编程能力有了一定提升。
即使没有达成理想中效果,但较我本身而言,已经有了较大进步。
其实学习也能表现出团结力量,假如班上同学全部只顾自己学习,同学之间遇见什么问题也不相互讨论,只靠只身力量去处理学习中碰到问题在很多时候全部是极难实现。
在此次课程设计中,同学们让我再次体会到了团结力量,在此我感谢同学们对我帮助。
在以前,老师给我感觉全部总是高高在上,然而在这次课程设计时。
指导老师行动根本让我改变了对老师成见。
在课程设计过程中,我碰到了很多很浅显问题,在问询老师时,她们是那样认真讲解,碰到实在不知道问题,她们会手把手说教,直到我们弄懂为止。
在此我感谢老师对我们孜孜不倦教育。
最终,我再次向帮助我老师和同学致上最真挚谢意。
感谢她们对我帮助!
同时在以后学习当中,我会加倍努力,继续发扬同学们这种互帮互助精神!
参考文件
[1]谭浩强等.C语言程序设计教程.北京:
高等教育出版社,1997.
[2]谭浩强.C程序设计.第2版.北京:
清华大学出版社,1999.
[3]郭浩志.C语言程序设计.北京.北京邮电大学出版社,.
[4]林学焦.TurboC2.0用户手册.北京.学苑出版社,1993.
[5]谭浩强、张基温.C语言程序设计教程.北京:
高等教育出版社,.
源代码
#include<
stdio.h>
/*输入输出函数*/
stdlib.h>
/*通用应用程序函数*/
string.h>
/*字符串函数*/
ctype.h>
/*字符操作函数*/
typedefstruct/*定义结构体变量*/
{
intname;
inta1;
inta2;
inta3;
inta4;
inta5;
}
RECODE;
intmenu_select();
/*申明函数*/
intenter(RECODEt[]);
voidsalor(RECODEt[],intn);
intsum(RECODEt[],intn,intm);
voidlist1(RECODEt[],intn);
voidlist2(RECODEt[],intn);
voidlist3(RECODEt[],intn);
voidsave(RECODEt[],intn);
intload(RECODEt[]);
inta(RECODEt[],intp)
inti,q,w[5]={0,0,0,0,0};
printf("
请输入你查找人代号"
);
scanf("
%d"
&
q);
for(i=0;
i++)
t[i].name=i+1;
p;
if(q==t[i].name)
{
w[0]=w[0]+t[i].a1;
w[1]=w[1]+t[i].a2;
w[2]=w[2]+t[i].a3;
w[3]=w[3]+t[i].a4;
w[4]=w[4]+t[i].a5;
%d销售情况bread:
%dcake:
%dpie:
%dmilk:
%ddrink:
%d\n"
q,w[0],w[1],w[2],w[3],w[4]);
}
main()/*主函数*/
{
RECODErec[600];
intlength;
system("
cls"
/*清屏*/
for(;
)/*无限循环*/
switch(menu_select())/*依据用户选择判定该调用哪个功效函数*/
{
case1:
length=enter(rec);
case2:
salor(rec,length);
case3:
list1(rec,length);
case4:
list2(rec,length);
case5:
case6:
list3(rec,length);
case7:
save(rec,length);
case8:
length=load(rec);
case0:
exit(0);
}
}
intmenu_select()/*菜单函数*/
intn;
-----------------------食品销售管理系统---------------------\n\n"
-----------------------主菜单-------------------------------\n\n"
\t\t001输入清单天数\n"
\t\t002销售员月销售额\n"
\t\t003按销售额对销售员排序\n"
\t\t004产品销售额\n"
\t\t005查询销售情况\n"
\t\t006统计表\n"
\t\t007保留\n"
\t\t008直接读入数据\n"
\t\t000退出\n"
---------------------------------end---------------------------\n\n"
请选择序号从000至006:
"
n);
if(0<
n<
8)system("
returnn;
intenter(RECODEt[])/*清单输入函数*/
inti,num,j,z=0;
printf("
输入所要写入清单天数:
"
/*输入所要写入清单天数*/
num);
销售员代号breadcakepiemilkdrink\n"
for(j=0;
j++)
{
for(i=0;
i++)/*将所输入条数存入结构体数组中*/
{
printf("
\n\n----------------------------------------------------------------\n"
%d%d%d%d%d%d"
t[i].name,&
t[i].a1,&
t[i].a2,&
t[i].a3,&
t[i].a4,&
t[i].a5);
z++;
}
\n----------------------------------------------------------------------\n\n\n"
}}
returnz;
voidsalor(RECODEt[],intn)
inti,s;
intb1=0,b2=0,b3=0,b4=0,b5=0;
输入所要查看售货员代号(1-4):
s);
/*输入所要查看售货员代号*/
n;
i++)/*对每种产品销售额求和*/
if(t[i].name==s)
b1+=t[i].a1;
b2+=t[i].a2;
b3+=t[i].a3;
b4+=t[i].a4;
b5+=t[i].a5;
--------------------------------------------------------------------------\n"
%-10d%-10d%-10d%-7d%-7d%-7d"
s,b1,b2,b3,b4,b5);
\n按任意键继续......."
getchar();
intsum(RECODEt[],intn,inte)
inti,sum=0;
=n;
i++)/*求销售产品总和*/
if(e==t[i].name)
sum+=t[i].a1;
sum+=t[i].a2;
sum+=t[i].a3;
sum+=t[i].a4;
sum+=t[i].a5;
returnsum;
voidlist1(RECODEt[],intn)
inti,j,s;
intc[4],m[4];
/*定义两个数组*/
i++)
m[i]=i+1;
c[i]=sum(t,n,m[i]);
i++)/*按销售员销售额进行排序*/
for(j=i+1;
j++)
if(c[i]<
c[j])
s=m[i];
m[i]=m[j];
m[j]=s;
s=c[i];
c[i]=c[j];
c[j]=s;
销售员销售额(从高至低)\n"
i++)/*输出销售员代号*/
m[i]);
voidlist2(RECODEt[],intn)
intc[5],m[5];
5;
i++)/*产品代号*/
i++)/*给数组赋初值*/
c[i]=0;
i++)/*分别对每一个产品销售额求总和*/
if(m[j]==t[i].a1)
c[j]+=t[i].a1;
if(m[j]==t[i].a2)
c[j]+=t[i].a2;
if(m[j]==t[i].a3)
c[j]+=t[i].a3;
if(m[j]==t[i].a4)
c[j]+=t[i].a4;
if(m[j]==t[i].a5)
c[j]+=t[i].a5;
i++)/*按销售额对产品排序*/
if(c[i]<
s=c[i];
c[i]=c[j];
s=m[i];
m[i]=m[j];
产品代号\n"
10cake20bread30pie40milk50drink\n"
i++)/*输出产品代号和销售额*/
\n\t\t%-10d%-10d\n"
m[i]*10,c[i]);
按任意键继续......\n"
getch();
voidlist3(RECODEt[],intn)
inti,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
intc[4],b1[4]={0},b2[4]={0},b3[4]={0},b4[4]={0},b5[4]={0};
c[i]=sum(t,n,i+1);
/*求每个人总销售额*/
sum0+=c[i];
/*全部产品销售额*/
i++)/*求每个人每种产品总销售额*/
{
if(j+1==t[i].name)
b1[j]+=t[i].a1;
b2[j]+=t[i].a2;
b3[j]+=t[i].a3;
b4[j]+=t[i].a4;
b5[j]+=t[i].a5;
i++)/*每种产品总销售额*/
sum1+=b1[i];
sum2+=b2[i];
sum3+=b3[i];
sum4+=b4[i];
sum5+=b5[i];
-------------------------销售额清单----------------------\n\n\n"
产品代号\n"
--------breadcakepiemilkdrink总和\n\n"
%-10d%-10d%-10d%-10d%-10d%-10d%-10d\n"
i+1,b1[i],b2[i],b3[i],b4[i],b5[i],c[i]);
累计%-10d%-10d%-10d%-10d%-10d%-10d"
sum1,sum2,sum3,sum4,sum5,sum0);
\n按任意键继续......."
voidsave(RECODEt[],intn)
inti;
FILE*fp;
/*调用fopen函数*/
if((fp=fopen("
record.txt"
"
wb"
))==NULL)/*假如函数带回一个空指针值*/
cannotopenfile\n"
/*不能打开文件*/
exit
(1);
\nSavingfile\n"
fprintf(fp,"
n);
fprintf(fp,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 销售 管理 系统 课程设计 报告 样本