销售管理系统课程设计报告.docx

上传人:小飞机 文档编号:2031396 上传时间:2023-01-02 格式:DOCX 页数:36 大小:414.37KB
返回 下载 相关 举报
销售管理系统课程设计报告.docx_第1页
第1页 / 共36页
销售管理系统课程设计报告.docx_第2页
第2页 / 共36页
销售管理系统课程设计报告.docx_第3页
第3页 / 共36页
销售管理系统课程设计报告.docx_第4页
第4页 / 共36页
销售管理系统课程设计报告.docx_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《销售管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《销售管理系统课程设计报告.docx(36页珍藏版)》请在三一办公上搜索。

1、1 设计内容和要求1.1 管理系统的发展及现状管理信息系统是现代信息管理工作不可缺少的一部分,是适应现代高科技信息管理尺度的要求、推动信息管理走向科学化、规范化的必要条件。只有信息管理规范了,才能给人们提供更好的生活环境及便利的生活空间。管理信息系统是一个能进行管理信息的收集、传递、加工、保存、维护和使用的系统。管理信息系统功能包括:信息收集、信息存储、问题处理及信息输出、信息管理。 现代社会、社会化趋势的扩大和社会产品需求使企业在生产经营活动中涉及的内外部信息积聚膨胀,随着科学技术突飞猛进和生产迅速发展,使人类知识量增长速度不断加快,信息量的增加,外部环境变化的变快,人工已无法胜任。如何收集

2、足够的信息资源,强有力的信息并加以利用,积极的开发和及时利用信息爆炸有效的信息资源,已成为现代社会的难题。因此必须有一个系统来对这些数据进行管理。1.2需求分析1.2.1背景食品店销售管理系统销售员的代号A.B.C.D产品的代号:面包bread、蛋糕cate、饼干pie、牛奶milk 饮料drink1.2.2内容及要求1)强化学习C语言中有关链表及外部文件的内容,独立设计一个销售管理系统。某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:a.销售员的代号b.产品的代号c.这种产品的当天的销售额2)每位销售

3、员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。a.计算上个月每个人每种产品的销售额。b.按销售额对销售员进行排序,输出排序结果(销售员代号)c.统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)d.输出统计报表2 总体设计思路2.1系统功能简介1)输入销售员的销售信息并将其保存在文件中2)从文件中读取销售员的销售信息3)计算每个人每种产品的销售额4)按销售额对销售员进行排序,输出排序结果(销售员代号)5)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输

4、出产品的代号和销售额)6)输出统计报表2.2总体设计在本软件中,主要运用函数调用来实现对食品销售的记录和管理。本软件实现了销售信息的记录功能(包括每个销售员每种产品的销售情况)、销售信息查询功能(按销售员查询、按销售总量查询等)和销售信息储存功能,以及输出统计报表的功能,和从文件中读取数据功能等,从而达到对食品销售情况的管理。23总体程序模块图 按销售额对销售员进行排序产品销售额读入数据保存Main()函数输入输入查询销售情况清单天数及销售员销售情况输出统计表 退出 图2.1总体程序模块2.4总体设计流程图开始 Y Menu_select()=1NY Length=enter(rec); Me

5、nu_select()=2 Break;NYSalor(rec,length); Break;Menu_select()=3 NYList1(rec,length); Break;Menuselect()=4 +4NMenuselect()=5List2(rec,length);berakYNMwnuselt()=6 ; YA(rec,length)break; ;List3(rec,length);breakMenu_selec_()=7 NSave(rc,length);Break=7YMenu select()=8 lNMenu_select=9Length=load(rec)break

6、 ;Y ; YExit(0);图2.2总体设计流程3 系统功能模块设计31 Main( )主函数模块主函数是程序入口,采用模块化设计。首先在主程序中打印出主菜单界面,将会显示出八个功能函数,作为进入系统操作的一种方式,选择相应的代号便会进入相应的功能操作,当选择“000”时便会退出操作。图31 主菜单界面32 enter( )输入清单函数模块 本函数先通过system(“cls”)函数将主菜单界面清除;然后根据定义的清单天数输入销售员代号及各产品的销售量,并通过for函数将输入的内容存入结构体数组中,然后退出该模块。 图32输入清单函数模块 图3.3输入清单函数流程 33保存模块该模块调用fo

7、pen函数将其保存在文件中。如果函数带回一个空指针,则不能打开该文件,退出;保存成功后就会关闭文件,并显示保存成功。然后按任意键便会继续运行程序。 图34保存数据界面 图3.5保存函数流程34读入数据模块该模块采用指针函数*fp,用fscanf对文件中的数据进行调用,此时屏幕会显示“恭喜您已成功从文件中读出数据”,然后便可运用文件中的数据进行下面的操作。 图36读入数据界面 图37读入数据流程35 查询销售员销售额模块该模块采用数组函数实现对销售员销售情况的调用,采用if条件函数可直接输出查询情况,只需输入销售员代号即可。图38查询销售员销售额界面 图39查询销售员销售额流程36排序模块此部分

8、用void list1( )函数,首先定义两个数组,然后利用for结构实现函数体的循环,用for的条件函数实现销售员销售额的排序。 图310排序界面 图311排序流程37统计表模块 定义两个数组,通过对数组附初值实现对每一种产品销售额的求和以及产品的排序。 图312统计表界 图313统计表流程 4 程序调试及分析1)开始时不能从文件中读取数据,每次输入的数据只能在本次函数调用中使用,下次仍需重新输入,问题出在没有对附地址栏即fscanf(fp,%10d%7d%7d%7d%7d%7d,ti.name,ti.a1,ti.a2,ti.a3,ti.a4,&i.a5,修改后加入地址栏便能从文件中直接读入

9、数据。2)在Main( )函数中开始少一个case结构,导致在void list2 函数中“getch”未定义,加入case 5:a(rec,length);break;后便能正常运行。3)在清单输入模块中,开始只能输入一天的销售记录,原因是少了循环的程序编译,添加for(j=0;jnum;j+)和for(i=0;i4;i+)后便能由外界定义输入清单的天数。4)在求销售产品总和的模块中,忽略了将最后结果返回sum,虽不影响程序的运行,但这也是程序的不完善之处。5 总结及体会在做课程设计以前,我对销售管理信息系统的理解只是停留在理论和知识的水平上,并没有认真的去操作实践。只是所谓的“纸上谈兵”而

10、已,缺乏实际的操作技术,缺乏对所学知识的融会贯通。通过这次课程设计,我通过自学、在同学们的帮助下完成了食品店销售管理系统的设计与开发。在课程设计的整个过程中我遇到了很多的问题,但我都在慢慢地学习过程中一点一点地克服了。同时我发现真正学好、学懂一门新的语言是有难度,值得庆幸的是,在此期间指导老师给了我很大的帮助和鼓励。使我通过这次课程设计,同时又学习了很多在平常考试过程中学习不到的知识和自己动手的能力。在边自学边设计的过程中,我查阅了很多的资料,请教了不少的同学和老师。在刚开始编程的时候还是不能得心应手。在一次又一次的修改过程中不断地进步和提高,但是还是有些功能我无法把它用到我的程序中来,真有点

11、遗憾,同时由于这次时间比较紧,无法更深入地去钻研这门课程。这次课程设计是我本学期所学知识的综合应用,使我对一学期所学的内容有了更加深刻的认识,使得所学的知识得到融会贯通,得到了以前学习任何一门课都没有的提高与进步,对我来说是一次很好的锻炼,这不仅把以前所学的知识再重温习一遍,而且又学会了一门新的语言。 总之,通过本次课程设计,我最终完成了食品店销售管理系统的课程设计。在做本课程的过程中,我不仅更加深刻的体会了VC这门语言,还对结构体数组有了比较熟练的了解,更重要的是学到了很多编程思想。我会在以后的学习中去更加熟练的掌握C语言。致谢在以前,自己在上课时没有很好的听课,下来后也没有很好的去实践操作

12、。致使自己的编程水平与同学们相差很远。通过此次实践,在老师和同学的帮助下,我的编程能力有了一定的提高。虽然没有达到理想中的效果,但较我自身而言,已经有了较大的进步。其实学习也能体现出团结的力量,如果班上的同学都只顾自己学习,同学之间遇见什么问题也不互相讨论,只靠只身的力量去解决学习中遇到的问题在很多的时候都是很难实现的。在此次课程设计中,同学们让我再次体会到了团结的力量,在此我感谢同学们对我的帮助。在以前,老师给我的感觉都总是高高在上,然而在这次课程设计时。指导老师的行动彻底让我改变了对老师的成见。在课程设计的过程中,我遇到了许多很浅显的问题,在询问老师时,他们是那样的认真讲解,遇到实在不懂得

13、问题,他们会手把手的说教,直到我们弄懂为止。在此我感谢老师对我们孜孜不倦的教诲。最后,我再次向帮助我的老师和同学致上最真挚的谢意。感谢他们对我的帮助!同时在以后的学习当中,我会加倍的努力,继续发扬同学们的这种互帮互助的精神!参考文献1谭浩强等.C语言程序设计教程.北京:高等教育出版社,1997.2谭浩强.C程序设计.第2版.北京:清华大学出版社,1999.3郭浩志.C语言程序设计.北京.北京邮电大学出版社,2005.4林学焦.Turbo C2.0用户手册.北京.学苑出版社,1993.5谭浩强、张基温. C语言程序设计教程.北京:高等教育出版社,2006. 源代码#include /*输入输出函

14、数*/ #include /*通用应用程序函数*/ #include /*字符串函数*/ #include /*字符操作函数*/ typedef struct /*定义结构体变量*/ int name; int a1; int a2; int a3; int a4; int a5; RECODE; int menu_select();/*声明函数*/ int enter(RECODE t);/*声明函数*/ void salor(RECODE t,int n);/*声明函数*/ int sum(RECODE t,int n,int m);/*声明函数*/ void list1(RECODE t

15、,int n);/*声明函数*/ void list2(RECODE t,int n);/*声明函数*/ void list3(RECODE t,int n);/*声明函数*/ void save(RECODE t,int n);/*声明函数*/ int load(RECODE t);/*声明函数*/ int a(RECODE t,int p)int i,q,w5=0,0,0,0,0;printf(请输入你查找的人的代号); scanf(%d,&q);for(i=0;i4;i+)ti.name=i+1;for(i=0;ip;i+) if(q=ti.name)w0=w0+ti.a1;w1=w1+

16、ti.a2;w2=w2+ti.a3;w3=w3+ti.a4;w4=w4+ti.a5; printf(%d的销售情况bread:%d cake:%d pie:%d milk:%d drink:%dn,q,w0,w1,w2,w3,w4); main()/*主函数*/ RECODE rec600; int length; system(cls); /*清屏*/ for( ; ; ) /*无限循环*/ switch(menu_select() /*根据用户的选择判断该调用哪个功能函数*/ case 1:length=enter(rec);break; case 2:salor(rec,length);

17、break; case 3:list1(rec,length);break; case 4:list2(rec,length);break; case 5:a(rec,length);break; case 6:list3(rec,length);break; case 7:save(rec,length);break; case 8:length=load(rec);break; case 0:exit(0); int menu_select() /*菜单函数*/ int n; printf(-食品销售管理系统-nn); printf(-主菜单-nn); printf( tt001 输入清单

18、的天数n); printf( tt002 销售员月销售额n); printf( tt003 按销售额对销售员排序n); printf( tt004 产品销售额n); printf( tt005 查询销售情况n); printf( tt006 统计表n); printf( tt007 保存n); printf( tt008 直接读入数据n); printf( tt000 退出n); printf(-end-nn); printf( 请选择序号从000至006: ); scanf(%d,&n); if(0n8) system(cls); /*清屏*/ return n; int enter(REC

19、ODE t)/*清单输入函数*/ int i,num,j,z=0; system(cls); /*清屏*/ printf(输入所要写入的清单的天数:); /*输入所要写入的清单的天数*/ scanf(%d,&num); printf(销售员代号 bread cake pie milk drinkn); for(j=0;jnum;j+) for(i=0;i4;i+)/*将所输入的条数存入结构体数组中*/ printf(nn-n); scanf(%d%d%d%d%d%d,&ti.name,&ti.a1,&ti.a2,&ti.a3,&ti.a4,&ti.a5); z+; printf(n-nnn);

20、 return z; void salor(RECODE t,int n) int i,s; int b1=0,b2=0,b3=0,b4=0,b5=0; printf(输入所要查看的售货员的代号(1-4):); scanf(%d,&s); /*输入所要查看的售货员的代号*/ for(i=0;in;i+) /*对每种产品的销售额求和*/ if(ti.name=s) b1+=ti.a1; b2+=ti.a2; b3+=ti.a3; b4+=ti.a4; b5+=ti.a5; printf(销售员代号 bread cake pie milk drinkn); printf(-n); printf(%

21、-10d%-10d%-10d%-7d%-7d%-7d,s,b1,b2,b3,b4,b5); printf(n按任意键继续.); getchar(); int sum(RECODE t,int n, int e) int i,sum=0; for(i=0;i=n;i+)/*求销售产品的总和*/ if(e=ti.name) sum+=ti.a1; sum+=ti.a2; sum+=ti.a3; sum+=ti.a4; sum+=ti.a5; return sum; void list1 (RECODE t,int n) int i,j,s; int c4,m4; /*定义两个数组*/system(

22、cls); /*清屏*/ for(i=0;i4;i+) mi=i+1; for(i=0;i4;i+) ci=sum(t,n,mi); for(i=0;i4;i+)/*按销售员的销售额进行排序*/ for(j=i+1;j4;j+) if(cicj) s=mi; mi=mj; mj=s; s=ci; ci=cj; cj=s; printf(销售员的销售额(从高至低)n); for(i=0;i4;i+)/*输出销售员代号*/ printf(%dn,mi); printf(n按任意键继续.); getchar(); void list2(RECODE t,int n) int i,j,s; int c

23、5,m5; for(i=0;i5;i+)/*产品代号*/ mi=i+1; for(i=0;i5;i+)/*给数组赋初值*/ ci=0; for(i=0;in;i+)/*分别对每一种产品的销售额求总和*/ for(j=0;j5;j+) if(mj=ti.a1) cj+=ti.a1; if(mj=ti.a2) cj+=ti.a2; if(mj=ti.a3) cj+=ti.a3; if(mj=ti.a4) cj+=ti.a4; if(mj=ti.a5) cj+=ti.a5; for(i=0;i5;i+)/*按销售额对产品排序*/ for(j=i+1;j5;j+) if(cicj) s=ci;ci=c

24、j; cj=s; s=mi;mi=mj; mj=s; system(cls); /*清屏*/ printf(产品的代号 n);printf(10 cake 20 bread 30 pie 40 milk 50 drinkn); for(i=0;i5;i+)/*输出产品的代号和销售额*/ printf(ntt%-10d%-10dn,mi*10,ci); printf(按任意键继续 .n); getch();system(cls); void list3(RECODE t,int n) int i,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0; int c

25、4,b14=0,b24=0,b34=0,b44=0,b54=0; system(cls); for(i=0;i4;i+) ci=sum(t,n,i+1);/*求每个人的总销售额*/ for(i=0;i4;i+) sum0+=ci;/*所有产品的销售额*/ for(i=0;in;i+)/*求每个人每种产品的总销售额*/ for(j=0;j4;j+) if(j+1=ti.name) b1j+=ti.a1; b2j+=ti.a2; b3j+=ti.a3; b4j+=ti.a4; b5j+=ti.a5; for(i=0;i4;i+)/*每种产品的总销售额*/ sum1+=b1i; sum2+=b2i;

26、 sum3+=b3i; sum4+=b4i; sum5+=b5i; printf(-销售额清单-nnn); printf( 产品的代号n); printf(-bread cake pie milk drink 总和nn); for(i=0;i4;i+) printf( %-10d%-10d%-10d%-10d%-10d%-10d%-10dn,i+1,b1i,b2i,b3i,b4i,b5i,ci); printf( 合计 %-10d%-10d%-10d%-10d%-10d%-10d,sum1,sum2,sum3,sum4,sum5,sum0); printf(n 按任意键继续.); getcha

27、r(); void save(RECODE t,int n) int i; FILE *fp;/*调用fopen函数*/ if(fp=fopen(record.txt,wb)=NULL)/*如果函数带回一个空指针值*/ printf(can not open filen);/*不能打开文件*/ exit(1); printf(nSaving filen); fprintf(fp,%d,n); fprintf(fp,rn); for(i=0;in;i+) fprintf(fp,%-10d%-7d%-7d%-7d%-7d%-7d,ti.name,ti.a1,ti.a2,ti.a3,ti.a4,ti

28、.a5);/*将便条的信息输出到fp指向的文件上*/ fprintf(fp,rn); fclose(fp);/*关闭文件*/ printf(*save success*nn);/*显示保存成功*/ printf(按任意键继续.); getchar(); int load(RECODE t) int i,n; FILE *fp; if(fp=fopen(record.txt,rb)=NULL)/*如果函数带回一个空指针值*/ printf(can not open filen);/*不能打开文件*/ exit(1); fscanf(fp,%d,&n); for(i=0;in;i+) fscanf(fp,%10d%7d%7d%7d%7d%7d,&ti.name,&ti.a1,&ti.a2,&ti.a3,&ti.a4,&ti.a5);/*从fp指向的文件上读入便条信息*/ fclose(fp); printf(n 恭喜您已成功从文件中读出数据!n);/*成功读入信息*/ printf(按任意键继续.nn); getch(); return n; 1.2.202317:4217:42:3223.1.25时42分5时42分32秒1月. 2, 232 一月 20235:42:32 下午17:42:322023年1月2日星期一17:42:32

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号