*******************实践教学*******************兰州理工大学计算机与通信学院2011年春季学期C程序设计课程设计题目:销售管理系统专业班级:计算机1班姓名:ZWZ学号:10240136指导教师:周小健成绩:摘要销售管理系统程序设计利用计算机技术,使得企业生产、库存和销售能够有利结合起来,提高企业的效率和效益。
利用该系统可以为决策者和管理者及时掌握时常动态和企业的生产状况,以及对员工销售额的统计。
销售管理系统是一个企业单位不可缺少的部分,它的内容对于公司的决策者和管理者来说都至关重要,所以销售管理系统应该能够为管理人员提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对员工信息及业绩进行管理,具有手工管理所无法比拟的优点.目录摘要 (2)一、需求分析 01.1 要求 01.2 系统功能 01.3 运行环境 01.4 开发工具 0二、总体设计 (1)三详细设计 (2)2.2 功能模块设计 (2)2.3 系统流程图(如图3.1)...................... 错误!未定义书签。
四、编码 (5)五、测试 (6)六、设计总结 (11)致谢 (12)参考文献 (13)附录1 0一、需求分析1.1 要求(1)用c语言实现程序设计;(2)利用结构体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交),程序要有注释1.2 系统功能(1)定义一个结构体类型数组,输入每一位同学的记录(包括姓名、电话号码、e_mail、地址),将其信息存入文件中;(2)输入姓名查询该同学的信息,并显示在屏幕上;(3)画出所有模块的流程图;(4)编写代码;(5)程序分析与调试。
1.3 运行环境(1)WINDOWS2000/XP系统(2)Turboc2.0编译环境1.4开发工具(1)C程序二、总体设计三详细设计2.1 详细设计思路1. main()主函数设置了程序的流程,结束程序。
2. select ( ) 选择函数选择所想运行的各个函数.3. functionscan ( ) 输入函数输入便条的数据.4. function1 ( ) 文件的数据输入函数多次输入数据5. function2 ( ) 统计函数每个人的每种产品的统计6. functionpaixu2 ( )总额排序函数按销售额对商品进行排序7. function4() 总额统计函数统计每种产品的总额8. function3() 售员排序函数按照销售额对售员排序函数9. function5() 统计报表函数统计商品总额10. function6() 清空文件函数清空文件数据11. functionpaixu() 个人排序函数按销售总额对售员排序2.2 功能模块设计图3.1 系统流程图voidfunction6流程图(3-3-1)四、编码总体管理系统:主窗体中分为N个功能键:1.输入销售额;输入便条总数,用于统计员工本月销售商品数量。
2.存储:存储商品的销售数量,便于对月份销售额进行统计。
3.显示便条清单:4.对员工的销售额进行统计:按员工销售额进行排序。
5.对每种商品的销售总量进行统计6.统计便条总数五、测试1:进入系统运行,按要求输入销售员代码,产品代码,销售额。
2 按’B’,求出每位销售员的销售总额3:按’C’,按销售额对销售员排序4:按’D’,每种物品的总销售额并且排序.5: 按’E’,每个月的便条数。
6:按’G’, 输出表格函数六、设计总结该课程设计的销售管理系统实现了对销售的各方面的管理,同时也对各项项目进行排序,最后输出统计表。
经过这么多天的课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,使用它,通过实践,我也发现我还有许多不足之处。
首先对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,而且还会有许多错误。
通过这次的实践,使我在这几个方面的认识有所提高。
通过这次的程序设计,让我更加深刻的明白了程序设计的重要性,同时也更加激起了我要努力学好这门课程的兴趣,现在我还有许多不明白的地方,还需多加努力。
通过学习C语言,使我认识到,c语言的学习要注重实践与理论知识相结合的学习方法,C语言是一门注重逻辑思维的课程,学好c语言不仅可以提高我们对课程钻研的积极性,而且可以提高我们的综合能力。
这次的课程设计更加调动了同学们团队协作精神,这是非常必要的致谢通过这段时间的学习,我学会了很多东西。
同时也非常感谢周小建老师这段时间的教育与指导。
使我从对程序一无所知到勉强能够看懂程序,同时也使我了解到了程序的博大精深,体会到编制程序的无穷乐趣。
这段时间的学习我看到了老师无私的奉献,也看到了老师不辞辛苦的来回奔波,让我们非常的感动,同时也更加的激发起了我们学习的兴趣。
在这里再一次用热烈的掌声感谢老师。
参考文献1.姜灵芝,余健. C语言课程设计案例精编.北京:清华大学出版社,2008 2.王新,孙雷. C语言课程设计.北京:清华大学出版社,20093.游洪跃、彭骏、谭斌.C语言程序设计实验与课程设计教程.北京:清华大学出版社,20114.王连相.C/C++程序设计上机指导与测试. 北京:中国铁道出版社,2006 5.C语言函数手册,机械工业出版社,1999附录1#define N 4 /*宏定义职工数*/#define M 5 /*商品数*/#define T (N*M*30)#include"stdio.h"struct goods /*货物编号*/{int emp;int num;int price;}gs[T];struct emploee /*个人排序用*/{int sum;int num;}emp[N],work;struct sum{int num;int sum;}sum1[M],you;/*总额排序用*//*....................打印选择函数..........调试成功!.............................*/print1() /*打印选择函数*/{printf("****************************mune****************************\n"); printf(" please select what are you going to do:\n");printf(" * Hand on the tips (select A)\n");printf(" * Sum everybody's each sales (select B)\n");printf(" * Order employee by the sales (select C)\n");printf(" * Sum and order each goods by total sales (select D)\n");printf(" * Sum the tips (each month) (select E)\n");printf(" * clear all data!/first install me! (select F)\n");printf(" * Output the table (select G)\n");printf("************************************************************\n"); } /*完成*//*---------------------------选择函数-------调试成功!------------------*/int select() /*选择函数*/{int k;char a;do{printf("Please select:");scanf("%c",&a);if(a>='A'&&a<='G')a=a+32;}while((a>='A'&&a<='G'||a>='a'&&a<='g')!=1);switch(a){ case 'a':k=1;break;case 'b':k=2;break;case 'c':k=3;break;case 'd':k=4;break;case 'e':k=5;break;case 'f':k=6;break;case 'g':k=7;break;}return(k);} /*完成*//*................................输入数据函数.........调试成功............................*/void functionscan()/*输入数据函数*/{FILE *fp;char ch;if((fp=fopen("c:\\tc\\employee1","a+"))==NULL){exit(1);}printf(" employee.No. goods.No. total cash:\n");ch=getchar();ch=getchar();while (ch!='\n'){ fputc(ch,fp);ch=getchar();}rewind(fp);printf("Now you have data is:\n");ch=fgetc(fp);while(ch!=EOF){putchar(ch);ch=fgetc(fp);}fputc('\n',fp);/*添加回车符*/fclose(fp);printf("\n");}/*....................文件的数据输入.............调试成功..................................*/function1()/*文件的数据输入*/{void functionscan();FILE *fp1;int i;{i=0;printf("--------------------welcome to use----------------------- ");printf("\n *(please input pleaseinput speace between data!)* \n");loop1:{ functionscan();printf("continue?\n");/*继续?*/if(i<M*N&&((getchar())=='y'||(getchar())=='Y')){i++;printf("----Now is%d the tips----\n",i+1);goto loop1;}}}printf("press any key back\n");getch();}/*..........................每个人的每种产品的统计.....调试成功...........*/void function2()/*每个人的每种产品的统计*/{FILE *fp;int i=0,j=0,sum,k;printf("------------------Every employee's sales-------------------\n\n\n");fp=fopen("c:\\tc\\employee1","r+");{for(j=0;j<N;j++) /*员工数*/{for(k=0;k<M;k++) /*商品数*/{sum=0;for(i=0;i<T;) /*扫描便条数*/{fscanf(fp,"%d%d%d",&gs[i].emp,&gs[i].num,&gs[i].price);if((j+1)==gs[i].emp&&(k+1)==gs[i].num)sum=sum+gs[i].price;i++;}printf(" | employee'sNo.%3d |goodsNo.is%4d |totalprice:%9d |\n",j+1,k+1,sum); }printf(" --------------------------------------------------------------\n");}}fclose(fp);printf("press any key back\n");getch();}/*-----------------------------总额排序函数------------------------------*/void functionpaixu2(){int i,j,r;printf("-------------------Now ordered / by sales--------------------\n");for(i=0;i<M;i++){for(j=i+1;j<M;j++)if(sum1[i].sum<sum1[j].sum){you=sum1[i];sum1[i]=sum1[j];sum1[j]=you;}}for(r=0;r<M;r++)printf(" goods'No.%3d |totalprice:%10d\n",sum1[r].num,sum1[r].sum); /*打印数据*/ }/*.............................每种产品的总额.................调试成功.....*/function4() /*每种产品的总额*/{{FILE *fp;int i=0,sum[M]={0},k,r;fp=fopen("c:\\tc\\employee1","r+");{ /*员工数*/{for(k=0;k<M;k++) /*商品数*/{sum[k]=0;for(i=0;i<T;) /*扫描便条数*/{fscanf(fp,"%d%d%d",&gs[i].emp,&gs[i].num,&gs[i].price);if((k+1)==gs[i].num)sum[k]=sum[k]+gs[i].price;i++;}printf(" goodsNo.%4d |totalprice:%10d\n",k+1,sum[k]);}}}for(r=0;r<M;r++){sum1[r].sum=sum[r];sum1[r].num=r+1;}functionpaixu2();fclose(fp);}printf("press any key back\n");getch();}/*........ ......按照销售额对售员排序函数...................调试成功..........*/function3() /*按照销售额对售员排序函数*/{FILE *fp;void functionpaixu();int i=0,j=0,sum[N]={0},b=0;fp=fopen("c:\\tc\\employee1","r+");for(j=0;j<N;j++) /*扫描数据*/{sum[j]=0; /*员工数*/{for(i=0;i<5;) /*扫描便条数*/{fscanf(fp,"%d%d%d",&gs[i].emp,&gs[i].num,&gs[i].price);if((j+1)==gs[i].emp)sum[j]=sum[j]+gs[i].price;i++;}}}for(b=0;b<N;b++){emp[b].sum=sum[b];emp[b].num=b+1;/*printf("%4d%4d\n",emp[b].sum,emp[b].num);*/}/*数据正确性检查*/j=0;for(j=0;j<N;j++)printf(" employee'sNo.%3d |totalprice:%10d\n",j+1 ,sum[j]); /*打印数据*/ functionpaixu();{fclose(fp);}printf("press any key back!\n");getch();}/*---------------------调试成功----------------统计报表-----------------------*/ function5(){FILE *fp;int su=0,i,j,sum[M]={0},k;printf(" -------------------Sale's Table---------------------\n");fp=fopen("c:\\tc\\employee1","r+");{ /*员工数*/{for(k=j=0;k<M;j++,k++) /*商品数*/{sum[j]=0;for(i=0;i<T;) /*扫描便条数*/{fscanf(fp,"%d%d%d",&gs[i].emp,&gs[i].num,&gs[i].price);if((k+1)==gs[i].num)sum[j]=sum[j]+gs[i].price;i++;}printf(" goodsNo.%4d |totalprice:%10d\n",(k+1),sum[j]);}}for(j=0;j<M;j++)su=su+sum[j];printf(" total is----------------------------%d\n",su);}fclose(fp);printf("press any key back\n");getch();}/*--------------清空文件函数----------调试成功--------------*/function6()/*清空文件函数*/{FILE *fp1;printf("\n\nplease wait!..........\n");fp1=fopen("c:\\tc\\employee1","w");if((fp1=fopen("c:\\tc\\employee1","w")==NULL))/*新建文件*/{ printf("My soft in your computer have error!\n");printf("--------------------Now please exit-------------------\n");exit(1);}else printf("\n\n ----------------Ok ---------------\n");fclose(fp1);printf("press any key back\n");getch();}/*--------------------输出表格函数-------------调试成功-------------*/ function7(){int t,s;int a[N][M];FILE *fp;int i=0,j=0,sum,k;fp=fopen("c:\\tc\\employee1","r+");printf("table of the statistics of the sale\n");printf(" the number of the goods the total\n");printf("employee's number 1 2 3 4 5 \n");for(j=0;j<N;j++) /*员工数*/{for(k=0;k<M;k++) /*商品数*/{sum=0; t=0;for(i=0;i<T;) /*扫描便条数*/{fscanf(fp,"%d%d%d",&gs[i].emp,&gs[i].num,&gs[i].price);if((j+1)==gs[i].emp&&(k+1)==gs[i].num)sum=sum+gs[i].price;i++;}a[k][t++]=sum;}s=0;for(t=0;t<M;t++){s=s+a[k][t];}a[k][M]=s;printf("%5d",j+1);for(t=0;t<=M;t++)printf("%8d",a[k][t]);printf("\n");}}/*-----------------个人排序函数-----------------调试成功--------------------*/void functionpaixu(){int i,j,r;printf("\n------------------Now ordered / by sales---------------------\n");for(i=0;i<N;i++){for(j=i+1;j<N;j++)if(emp[i].sum<emp[j].sum){work=emp[i];emp[i]=emp[j];emp[j]=work;}}for(r=0;r<N;r++)printf(" employee'sNo.%3d |totalprice:%10d\n",emp[r].num,emp[r].sum); /*打印数据*/ }/*....................................主函数.........................................*/main() /*主函数*/{int flag;loop2: print1();flag=select();if(flag==1){clrscr();function1(); /*数据的输入*/clrscr();goto loop2;}if(flag==2){clrscr();function2(); /*每个人的每种产品的统计*/goto loop2;}if(flag==3){clrscr();function3(); /*按照销售额对售员排序函数*/goto loop2;}if(flag==4){clrscr();function4(); /*每种产品的总额排序*/goto loop2;}if(flag==5){clrscr();function5(); /*统计报表*/goto loop2;}if(flag==6){clrscr();function6();goto loop2;}if(flag==7){clrscr();function7();goto loop2;} }。