销售管理系统课程设计报告Word格式文档下载.docx
《销售管理系统课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《销售管理系统课程设计报告Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。
某公司有四个销售员(编号:
1-4),负责销售五种产品(编号:
1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:
a.销售员的代号
b.产品的代号
c.这种产品的当天的销售额
2)每位销售员每天可能上缴0-5张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
a.计算上个月每个人每种产品的销售额。
b.按销售额对销售员进行排序,输出排序结果(销售员代号)
c.统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
d.输出统计报表
2总体设计思路
2.1系统功能简介
1)输入销售员的销售信息并将其保存在文件中
2)从文件中读取销售员的销售信息
3)计算每个人每种产品的销售额
4)按销售额对销售员进行排序,输出排序结果(销售员代号)
5)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
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语言程序设计.北京.北京邮电大学出版社,2005.
[4]林学焦.TurboC2.0用户手册.北京.学苑出版社,1993.
[5]谭浩强、张基温.C语言程序设计教程.北京:
高等教育出版社,2006.
源代码
#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]