程序设计基础及数据结构课程设计设计题目:销售管理系统系(院):经济管理学院专业:信息管理与信息系统班级:信管姓名:学号:姓名:学号:姓名:学号:姓名:学号:指导教师:学年学期: 2013 ~ 2014 学年第 1 学期2013年12 月16 日课程设计任务书目录引言 (1)1 需求分析 (1)2 系统设计 (1)总体方案设计 (2)算法设计 (2)实现方法 (3)流程图 (3)3 代码编写 (4)4 程序运行及调试 (9)程序调试 (9)运行与测试 (11)总结 (15)致谢 (16)参考文献 (17)摘要目前,销售管理系统在企业管理中逐步占据重要地位,企业销售管理成为企业经营管理的核心内容之一,它的特点是信息量大、更新速度快、要求信息反馈速度、准确。
销售管理系统的应用,解决了人工管理过程中的管理低下、数据部准确、管理部及时等一系列问题;进一步提高了企业经营运作的速度,提升企业的管理水平、提高企业的经济效益,事企业的销售管理更加科学、合理;使企业能够随着市场的变化而随时调整自身的销售计划,并在瞬息万变的市场竞争中立于不败之地。
随着商品因为生活,商业等方面的增多,商业的发展也日益的迅猛,由于顾客量的增多,商品出入时间的广泛,商场收益的日益增多,仅仅依靠手写的老式输入记账法,无法满足商场的需求的,同时也浪费人力和时间。
开发这个系统,目的就在于能够更好的对商品信息情况,商品销售情况,销售统计等进行精确的修改查询,以便更好的完善和更新商品销售信息。
本系统采用Turbo C 编写, 设计一个C语言程序——销售管理系统,系统以菜单方式工作,录入信息用文件保存,修改更新相关销售信息,计算每个人每种产品的销售额,统计每种产品的总销售量,查询每种产品的销售信息。
本系统具有良好的灵活性、开放性,用户可以方便地进行信息管理,改变现在的管理内容,该系统还为客户提供了友好的界面。
关键词:销售管理系统,信息管理,Turbo C引言随着计算机的广泛应用以及计算机技术的迅猛发展,基于计算机的销售管理系统将逐步代替传统的管理模式。
计算机检索迅速、可靠性高、存储量大、保密性好、寿命长、成本低等优点,极大的提高了销售管理效率。
为了更高效的完成销售方面的工作,也为了有更多的时间来处理更多的别的事务,用计算机管理销售信息代替手工管理是大势所趋,企业也将因此摆脱原有的管理模式,完全进入信息化销售管理。
1 需求分析在当今全球信息化大潮流中,互联网(即因特网——Internet)异军突起,计算机发展得越加迅猛,给20世纪末的人类社会增添了无限的活力。
现今社会是信息化的大社会。
与人们的生活息息相关。
传统的手工管理方式现在已经逐渐被信息化管理所取代。
商品销售管理系统对超市商品管理有着极其重要的作用,传统的手工管理方式现在已经逐渐被信息化管理所取代,但现在大多数商品企业的销售管理,只是实现简单的电脑存储、计算操作,随着计算机的快速发展,只是简单的电脑存储、计算操作,已经不能满足企业透明化的需求。
商品销售管理系统实现的功能如下:1.输入基本数据和销售数据:基本数据包括产品数据,销售数据包括销售员编号、销售产品编号、销售产品数量。
2.编辑数据:可添加、删除、修改产品数据销售数据。
3.计算:计算每个销售员的销售总额;计算每种产品的销售数量及销售额。
4.查询:可按销售员的编号查询销售情况;也可按产品编号查询销售情况。
5.浏览:可浏览输入、修改或计算的数据。
6.退出:退出系统2 系统设计总体方案设计按系统分析的功能要求将系统划分为以下几个主要功能模块,如图。
算法设计算法:第一步:进入系统,按界面提示选择0~6按键,进入所需要的界面。
第二步:若选择1进入,按系统提示进行初始化并输入商品信息;若选择2进入,按系统提示对已有商品信息进行修改更新;若选择3进入,进入信息删除界面,输入商品号修改相应商品信息;若选择4进入销售量统计界面,按要求输入记录,对不同商品的销售量进行统计;若选择5进入销售量修改界面,修改不同销售员的销售量;若选择6,则进入浏览界面中,对已输入数据进行浏览;选择0则退出程序。
第三步:完成所需要求,退出系统。
图系统功能模块图实现方法分别通过顺序结构、选择结构,按照顺序,通过判断输入数据是否满足条件进行操作,同时调用C语言本身具有的一些函数,如struct(),getch(),_sleep(),strcmp()等等函数,在关键的地方进行选择判断,从而保证系统的进行与操作正确。
流程图1、主函数main()流程图图主函数流程图2、输入数据函数void goods()流程图图输入数据函数流程图3、输入数据函数void modify()流程图图输入数据函数流程图4、根据销售员编号来查询数据 void search_salID()流程图图查询数据流程图3 代码编写源程序/*#include <> /*I/O函数*/#include <> /*其他说明——主要是为了应用exit()函数*/#include <>*/ /*屏幕操作函数*/int INDEX[32];struct goods{ /*声明货物数据结构体类型*/ int id;int price;int SM1,SM2,SM3;char name[21];}goods[32];Page_title()函数 /*主界面函数*/void page_title(char *menu_item){clrscr();printf("******** Sales Management System ********\n\n- %s -\n\n",menu_item);}d==0) break;printf("NO:"); /*输入记录*/ scanf("%d",&goods[n].id);printf("NAME:");scanf("%s",&goods[n].name);printf("price:");scanf("%d",&goods[n].price);return_confirm();}d==i&&goods[n].id!=0){printf("NO:%d\n",goods[n].id); /*输入数据*/printf("NAME:%s\n",goods[n].name);printf("price:%d\n",goods[n].price);return n;}}printf("\nInput no error.\n");return -1;}d=0;printf("\nGoods been deleted.\n"); /*提示删除成功*/}return_confirm();}d);printf("Name:");scanf("%s",&goods[n].name);printf("Price:");scanf("%d",&goods[n].price);}return_confirm();}d!=0){printf("No:%d Name:%s amount:",goods[n].id,goods[n].name);scanf("%d",&t);switch(s){case 1 : goods[n].SM1=t;break;case 2 : goods[n].SM2=t;break;case 3 : goods[n].SM3=t;break;}}}return_confirm();}M1,goods[n].SM2,goods[n].SM3);printf("\nPlease input new amount:\nSM1:");scanf("%d",&goods[n].SM1);printf("SM2:");scanf("%d",&goods[n].SM2);printf("SM3:");scanf("%d",&goods[n].SM3);}return_confirm();}d;break; /*货物编号显示*/case '2' : t[n]=goods[n].SM1;break; /*销售员销售记录的汇总与显示*/case '3' : t[n]=goods[n].SM2;break;case '4' : t[n]=goods[n].SM3;break;case '5' : t[n]=goods[n].SM1+goods[n].SM2+goods[n].SM3;break;}}for(n=0;n<32;n++){x=0;p=-1;for(m=0;m<32;m++){if(t[m]>x){x=t[m];p=m;}}t[p]=-1;INDEX[n]=p;}}d,goods[x].name);/*所有信息的汇总显示*/printf("%d\t%d\t",goods[x].price,goods[x].SM1);printf("%d\t%d\t",goods[x].SM2,goods[x].SM3);printf("%d\n",goods[x].SM1+goods[x].SM2+goods[x].SM3);}}k=getch();if(k<'6'&&k>'0') sort_it(k);else if(k=='0') break;else continue;}}程序与流程图仔细对照,如果流程图是正确的话,程序写错了,是很容易发现的。
2.如果实在找不到错误,可以采用“分段检查”的方法。
在程序不同的位置设几个printf函数语句,输出有关变量的值,往下检查。
直到找到在哪一段中数据不对为止。
这时就已经把错误局限在这一段中了。
不断减小“查错区”,就可能发现错误所在。
3.也可以用“条件编译”命令进行程序调试(在程序调试阶段,若干printf 函数语句就要进行编译并执行。