销售管理系统课程设计_第1页
销售管理系统课程设计_第2页
销售管理系统课程设计_第3页
销售管理系统课程设计_第4页
销售管理系统课程设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计基础及数据结构课程设计 设计题目: 销售管理系统 系(院): 经济管理学院 专 业: 信息管理与信息系统 班 级: 信管 姓 名: 学 号: 姓 名: 学 号: 姓 名: 学 号: 姓 名: 学 号: 指导教师: 学年学期: 2013 2014 学年 第 1 学期 2013年 12 月 16 日程序设计基础与数据结构课程设计报告课程设计任务书课程设计题目商品销售管理系统课程设计目的(1)培养学生正确的设计思想,将理论与实际相结合,严肃认真、实事求是的科学态度和勇于探索的创新精神。(2)培养学生综合运用所学知识与生产实践经验,分析和解决工程技术问题的能力。(3)通过课程设计实践,建立系统

2、设计的整体思想,锻炼编写程序、调试程序的能力,学习文档编写规范,培养独立学习、吸取他人经验、探索前言知识的习惯。同时,C+语言程序设计课程设计可以充分弥补课堂教学及普通实验中知识深度与广度有限的缺陷,更好地帮助学生从全局角度把握课程体系。课程设计环境硬件:P4以上计算机软件:Visual C+/Turbo CMicrosoft Windows XP课程设计任务和要求任务:用C语言对学生成绩进行编程;要求: 1、要充分认识C+语言程序设计课程设计的重要性,认真做好各项准备工作;既要虚心接受老师的指导,又要充分发挥主观能动性,要结合课题,独立思考,努力钻研,勤于实践,勇于创新;收集资料,自学相关知

3、识,拓宽知识面,根据课题的基本要求,自行完成设计任务。要按时、独立完成规定的工作任务,不弄虚作假,不抄袭他人;严格遵守学习和劳动纪律,不无故缺席,不迟到早退,不懈怠,不拖拉,要积极主动;严格要求自己,树立严肃、严密、严谨的科学态度,按时、按质、按量完成。工作进度计划序号起止日期工 作 内 容012013.12.162013.12.17查找资料,熟悉操作环境,开始编写程序022013.12.182013.12.20编写程序,调试程序032013.12.212013.12.23写实验报告指导老师签字(盖章): 年 月 日目 录引言 11 需求分析 12 系统设计 12.1 总体方案设计 22.2

4、算法设计 22.3 实现方法 32.4 流程图 33 代码编写 44 程序运行及调试94.1 程序调试 94.2 运行与测试11总结15致谢16参考文献 17程序设计基础与数据结构课程设计报告摘 要 目前,销售管理系统在企业管理中逐步占据重要地位,企业销售管理成为企业经营管理的核心内容之一,它的特点是信息量大、更新速度快、要求信息反馈速度、准确。销售管理系统的应用,解决了人工管理过程中的管理低下、数据部准确、管理部及时等一系列问题;进一步提高了企业经营运作的速度,提升企业的管理水平、提高企业的经济效益,事企业的销售管理更加科学、合理;使企业能够随着市场的变化而随时调整自身的销售计划,并在瞬息万

5、变的市场竞争中立于不败之地。随着商品因为生活,商业等方面的增多,商业的发展也日益的迅猛,由于顾客量的增多,商品出入时间的广泛,商场收益的日益增多,仅仅依靠手写的老式输入记账法,无法满足商场的需求的,同时也浪费人力和时间。开发这个系统,目的就在于能够更好的对商品信息情况,商品销售情况,销售统计等进行精确的修改查询,以便更好的完善和更新商品销售信息。本系统采用Turbo C编写, 设计一个C语言程序销售管理系统,系统以菜单方式工作,录入信息用文件保存,修改更新相关销售信息,计算每个人每种产品的销售额,统计每种产品的总销售量,查询每种产品的销售信息。本系统具有良好的灵活性、开放性,用户可以方便地进行

6、信息管理,改变现在的管理内容,该系统还为客户提供了友好的界面。 关键词:销售管理系统,信息管理,Turbo C 引 言随着计算机的广泛应用以及计算机技术的迅猛发展,基于计算机的销售管理系统将逐步代替传统的管理模式。计算机检索迅速、可靠性高、存储量大、保密性好、寿命长、成本低等优点,极大的提高了销售管理效率。为了更高效的完成销售方面的工作,也为了有更多的时间来处理更多的别的事务,用计算机管理销售信息代替手工管理是大势所趋,企业也将因此摆脱原有的管理模式,完全进入信息化销售管理。1 需求分析在当今全球信息化大潮流中,互联网(即因特网Internet)异军突起,计算机发展得越加迅猛,给20世纪末的人

7、类社会增添了无限的活力。现今社会是信息化的大社会。与人们的生活息息相关。传统的手工管理方式现在已经逐渐被信息化管理所取代。 商品销售管理系统对超市商品管理有着极其重要的作用,传统的手工管理方式现在已经逐渐被信息化管理所取代,但现在大多数商品企业的销售管理,只是实现简单的电脑存储、计算操作,随着计算机的快速发展,只是简单的电脑存储、计算操作,已经不能满足企业透明化的需求。商品销售管理系统实现的功能如下:1. 输入基本数据和销售数据:基本数据包括产品数据,销售数据包括销售员编号、销售产品编号、销售产品数量。2. 编辑数据:可添加、删除、修改产品数据销售数据。3. 计算:计算每个销售员的销售总额;计

8、算每种产品的销售数量及销售额。4. 查询:可按销售员的编号查询销售情况;也可按产品编号查询销售情况。5. 浏览:可浏览输入、修改或计算的数据。6. 退出:退出系统2 系统设计2.1 总体方案设计按系统分析的功能要求将系统划分为以下几个主要功能模块,如图2.1。2.2 算法设计算法:第一步:进入系统,按界面提示选择06按键,进入所需要的界面。第二步:若选择1进入,按系统提示进行初始化并输入商品信息;若选择2进入,按系统提示对已有商品信息进行修改更新;若选择3进入,进入信息删除界面,输入商品号修改相应商品信息;若选择4进入销售量统计界面,按要求输入记录,对不同商品的销售量进行统计;若选择5进入销售

9、量修改界面,修改不同销售员的销售量;若选择6,则进入浏览界面中,对已输入数据进行浏览;选择0则退出程序。第三步:完成所需要求,退出系统。输入商品数据商品销售管理系统主菜单输入编辑查询计算浏览退出输入销售总数据修改商品和销售数据删除商品和销售数据添加商品和销售数据按销售员编号查询按商品编号查询图2.1 系统功能模块图2.3 实现方法分别通过顺序结构、选择结构,按照顺序,通过判断输入数据是否满足条件进行操作,同时调用C语言本身具有的一些函数,如struct(),getch(),_sleep(),strcmp()等等函数,在关键的地方进行选择判断,从而保证系统的进行与操作正确。2.4 流程图1、主函

10、数main()流程图while(1);clrscr();清屏幕welcome();输出“Please select 1-6-0-menu=:”提示选择输入menu switch(menu)1输入货物记录2编辑货物数据3删除货物记录4插入数量记录5修改数量记录6浏览汇总信息0退出图2.2 主函数流程图2、输入数据函数void goods()流程图void good;函数声明clrscr();清屏幕输出子菜单输入NO switch(M)1输入货物编号2输入货物名称3输入货物价格ANY KEY返回主界面图2.3 输入数据函数流程图3、输入数据函数void modify()流程图void modify

11、();函数声明clrscr();清屏幕输出子菜单输入NO switch(M)1输入货物编号2输入新货物编号3输入新货物名称4输入货物新价格ANY KEY返回主界面图2.4 输入数据函数流程图4、根据销售员编号来查询数据 void search_salID()流程图 输入要查询的销售员的编号for(i=0;i<N;i+)NYif(strcmp(sadai.salman.ID,ID)=0) 在屏幕输出他的相关销售数据,flag=1if(flag=0) 输出"The number is not exist !" save()图2.5 查询数据流程图 3 代码编写3.1 源程

12、序/*#include <stdio.h> /*I/O函数*/#include <stdlib.h> /*其他说明主要是为了应用exit()函数*/#include <conio.h>*/ /*屏幕操作函数*/int INDEX32;struct goods /*声明货物数据结构体类型*/int id;int price; int SM1,SM2,SM3;char name21;goods32;3.2 Page_title()函数 /*主界面函数*/void page_title(char *menu_item) clrscr(); printf("

13、;* Sales Management System *nn- %s -nn",menu_item);/ /*界面显示*/3.3 return()函数 /*返回函数*/void return_confirm(void) printf("npress any key return to menun"); /*按任意键返回*/ getch();/3.4 goods()函数void goods_new(void) /*货物销售记录新建*/int n;page_title("insert goods information");for(n=0;n<

14、;32;n+)if(goodsn.id=0) break;printf("NO:"); /*输入记录*/scanf("%d",&goodsn.id);printf("NAME:");scanf("%s",&);printf("price:");scanf("%d",&goodsn.price);return_confirm();/int search_id(void) /*通过编号搜索货物记录*/int n,i;printf(&q

15、uot;Please input goods number:");scanf("%d",&i);for(n=0;n<32;n+)if(goodsn.id=i&&goodsn.id!=0)printf("NO:%dn",goodsn.id); /*输入数据*/printf("NAME:%sn",);printf("price:%dn",goodsn.price);return n;printf("nInput no error.n");

16、return -1;/void goods_del(void) /*货物销售记录删除*/int n;page_title("Delete goods information");if(n=search_id()!=-1)goodsn.id=0;printf("nGoods been deleted.n"); /*提示删除成功*/return_confirm();/void goods_edit(void) /*货物销售记录编辑*/int n;page_title("Edit goods information");if(n=searc

17、h_id()!=-1)printf("nPlease input new information:nNo:"); /*输入新的记录*/scanf("%d",&goodsn.id);printf("Name:");scanf("%s",&);printf("Price:");scanf("%d",&goodsn.price);return_confirm();/3.4 amount()函数void amount_input(void

18、) /*货物销售数量输入*/int s,n,t;page_title("Insert sales amount");printf("nPlease select NOn1-SM1 2-SM2 3-SM3n");scanf("%d",&s);for(n=0;n<32;n+)if(goodsn.id!=0)printf("No:%d Name:%s amount:",goodsn.id,);scanf("%d",&t);switch(s)case 1 :

19、goodsn.SM1=t;break;case 2 : goodsn.SM2=t;break;case 3 : goodsn.SM3=t;break;return_confirm();/void amount_edit(void) /*货物销售数量编辑*/int n;page_title("Edit amount");if(n=search_id()!=-1)printf("SM1:%d SM2:%d SM3:%dn",goodsn.SM1,goodsn.SM2,goodsn.SM3);printf("nPlease input new amo

20、unt:nSM1:");scanf("%d",&goodsn.SM1);printf("SM2:");scanf("%d",&goodsn.SM2);printf("SM3:");scanf("%d",&goodsn.SM3);return_confirm();/3.5 sort()函数 /*对销售数据进行排序整合*/void sort_it(char nn)int n,m,p,x,t32;for(n=0;n<32;n+)switch(nn)case &#

21、39;1' : tn=goodsn.id;break; /*货物编号显示*/case '2' : tn=goodsn.SM1;break; /*销售员销售记录的汇总与显示*/case '3' : tn=goodsn.SM2;break;case '4' : tn=goodsn.SM3;break;case '5' : tn=goodsn.SM1+goodsn.SM2+goodsn.SM3;break;for(n=0;n<32;n+)x=0;p=-1;for(m=0;m<32;m+)if(tm>x)x=tm

22、;p=m;tp=-1;INDEXn=p;/3.6 browser()函数 /*浏览基本信息和销售数据*/void browser(void)int n,x;char k;sort_it('1');while(1)page_title("BROWSE");printf("Please select the number of sortn");printf("NotNametPricetSM1tSM2tSM3tsumn"); /*信息汇总与显示*/for(n=0;n<32;n+)if(INDEXn!=-1)x=IND

23、EXn;printf("%dt%st",goodsx.id,);/*所有信息的汇总显示*/printf("%dt%dt",goodsx.price,goodsx.SM1);printf("%dt%dt",goodsx.SM2,goodsx.SM3);printf("%dn",goodsx.SM1+goodsx.SM2+goodsx.SM3);k=getch();if(k<'6'&&k>'0') sort_it(k);else if(k

24、='0') break;else continue;/3.7 main()函数 /*主函数*/void main(void) menu: page_title("MENU");printf("Please input the numbernn");printf("1 INSERT GOODSn2 MODIFY GOODSn");printf("3 DELETE GOODSn4 INPUT GOODS AMOUNTn5 MODIFY GOODS AMOUNTn");printf("6 BRO

25、WSE GOODS INFORMATIONn0 EXITn");switch(getch()case '1' : goods_new();break; /*输入销售货物记录*/case '2' : goods_edit();break; /*编辑销售货物记录*/case '3' : goods_del();break; /*删除销售货物记录*/case '4' : amount_input();break; /*输入销售数量记录*/case '5' : amount_edit();break; /*编辑销

26、售数量记录*/case '6' : browser();break; /*浏览汇总信息*/case '0' : exit(0); /*退出*/goto menu;4 程序运行及调试 4.1 程序调试先进行人工检查,即静态检查。在写好一个程序以后,不要匆匆忙忙上机,而应对纸面上的程序进行人工检查。这一步是十分重要的,它能发现程序设计人员由于疏忽而造成的多数错误。 为了更有效地进行人工检查,所编的程序应注意力求做到以下几点:应当采用结构化程序方法编程,以增加可读性;尽可能多加注释,以帮助理解每段程序的作用;在编写复杂的程序时不要将全部语句都写在main函数中,而要多

27、利用函数,用一个函数来实现一个单独的功能。这样既易于阅读也便于调试,各函数之间除用参数传递数据这一渠道以外,数据间尽量少出现耦合关系,便于分别检查和处理。 在人工检查无误后,才可以上机调试。通过上机发现错误称动态检查。在编译时给出语法错误的信息,可以根据提示的信息具体找出程序中出错之处并改正之。应当注意的是有时提示的出错并不是真正出错的行,如果在提示出错的行上找不到错误的话应当到上一行再找。有时提示出错的类型并非绝对准确,由于出错的情况繁多各种错误互有关联,因止要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。 如果系统提示的出错信息多,应当从上到下一一改正。有时显示出一大

28、片出错信息往往使人感到问题严重,无从下手。其实可能只有一二个错误。 在改正语法错误后,程序经过连接就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。应当对运行结果作分析。看它是否符合要求。有时,数据比较复杂,难以立即判断结果是否正确。可以事先考虑好一批“试验数据”,输入这些数据可以得出容易判断正确与否的结果。可以在计算的输出结果的程序地方加入一段输出到串口的程序,利用串口窗口可以方便看到结果的,比仿真的都好和直观。必须考虑周全。事实上,当程序复杂时很难把所有的可能方案全部都试到,选择典型的情况作试验即可。 运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能

29、发现。可以采用以下办法:1.将程序与流程图仔细对照,如果流程图是正确的话,程序写错了,是很容易发现的。2.如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf函数语句,输出有关变量的值,往下检查。直到找到在哪一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就可能发现错误所在。3.也可以用“条件编译”命令进行程序调试(在程序调试阶段,若干printf函数语句就要进行编译并执行。当调试完毕,这些语句不要再编译了,也不再被执行了)。这种方法可以不必一一去printf函数语句,以提高效率。4.如果在程序中没有发现问题,就要检查流程图有无错误,即算

30、法有无问题,如有则改正之,接着修改程序。5.有的系统还提供debug工具,跟踪流程并给出相应信息,使用更为方便。 总之,程序调试是一项细致深入的工作,需要下功夫,动脑子,善于累积经验。在程序调试过程中往往反映出一个人的水平,经验和科学态度。希望读者能给以足够的重视。上机调试程序的目的决不 是为了“验证程序的正确”,而是“掌握调试的方法和技术”,不要一直依赖仿真器来解决,要学会自己找问题,这样慢慢自己就会写出错误较少的实用的程序。4.2 运行与测试4.2.1 主菜单显示界面图4.1 主菜单界面输入1 则执行输入产品数据的功能输入2 则执行修改产品数据的功能输入3 则执行删除产品数据的功能输入4

31、则执行输入商品销量的功能输入5 则执行修改产品销量的功能输入6 则执行浏览产品销量的功能输入0 则退出4.2.2 输入产品数据函数的显示界面图4.2 输入产品信息输入成功后,按任意键返回子主菜单。4.2.3 修改产品数据界面图4.3 修改产品信息修改成功后,按任意键返回子主菜单。4.2.4 删除产品数据界面图4.4 删除产品信息删除成功后,按任意键返回子主菜单。4.2.5 输入销售数据界面图4.5 输入销售数据输入成功后,按任意键返回子主菜单。4.2.6 修改销售数据界面图4.6 修改销售数据修改成功后,按任意键返回子主菜单。4.6.7 销售信息浏览图4.7 浏览销售信息总 结该系统以商品销售

32、管理为背景,实现了管理的多种功能,并且有一定的可行性和安全性,确保了各项指定功能得以运行。本系统以基本函数、结构体、枚举性、文件以及链表等多方位知识贯穿实现。通过此次程序设计实践,可以对所学知识的综合运用,也是程序设计得以提高的表现。通过此次编程培养了我结构化程序设计的思想,加深了对高级语言基本语言要素和控制结构的理解,锻炼我独立思考制作程序的能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后的学习提供了锻炼的机会。课程设计过程中,我们对很多的函数有了新的认识,也学会了运用多种函数,也明白了编写软件的基本过程和基本方法。编码过程中我们又学到了曾经自己不知道的函数或是自己不会的函数的用

33、法,从而使我对c语言这门课程有了更好的了解。经过设计和开发,销售管理系统基本开发完毕,对于数据的一致性的问题也通过程序进行了有效的解决,但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,有待进一步改善。致 谢在编写程序的过程中,我们得到了董绍斌老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢!感谢我们小组同学对我的帮助和指点,在生活和学习上帮我许多忙。在课程设计即将完成之际,我的心情无法平静,从开始进入课题到课程设计的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。参 考 文 献1.王城端、魏先民.C语言程序设计实训.中国水利水电出版社 ,2005年2.谭

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论