您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > C语言程序设计销售管理系统
1程序设计工程训练报告销售管理系统设计课程名称C语言程序设计工程训练姓名院(系)信息科学与工程学院专业班级学号指导教师教务处制2目录1需求分析.....................................................................................................................................................12系统总框图和功能模块说明.....................................................................................................................12.1系统总框图......................................................................................................................................12.2功能模块说明..................................................................................................................................23系统设计.....................................................................................................................................................33.1主要结构体........................................................................................................................................33.2主要功能函数.....................................................................................................................................33.3关键函数的流程图............................................................................................................................44系统调试.....................................................................................................................................................55总结...........................................................................................................................................................146源程序清单.............................................................................................................................................2011需求分析某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。每位销售员每天上缴1张便条。试设计一个便条管理系统,使之能提供以下功能:1、系统以菜单方式工作2、便条信息录入功能(便条信息用文件保存)--输入3、收集到了上个月的所有便条后,读取销售情况1)计算每个人每种产品的销售额。2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4)删除便条.5)对所有便条打印.2系统总框图和功能模块说明2.1系统总框图2图1系统总框图2.2功能模块说明初始化模块完成储存信息文件的创建。读取模块完成对储存数据的读取。输入模块完成便条数据输入和储存。统计模块完成对每个人每种产品总销售量的统计、对各种产品销售量统计、对每个销售员总销售量的统计。排序模块完成各种产品销售总量的排名及输出,完成销售员销售总量的排名及输出。菜单模块完成菜单的打印。选择模块完成功能的选择。删除模块完成边条删除打印模块完成所有便条的打印销售管理系统输入便条信息统计销售量对销售员排名对产品销售量排名对所有便条信息打印33系统设计3.1主要结构体structProduct{intcount;/*记录每人每种产品的便条数*/intnum;/*编号*/intsale[31];/*用于储存每次输入的产品销售量*/intzsale;/*记录每个人每种产品的销售总额*/structSeller{charname[15];/*记录员工姓名*/intnum;/*记录员工代号*/intsale;/*记录每人所有产品的总销售额*/structProductproduct[5];/*记录员工旗下的五个产品*/}seller[4];};3.2主要功能函数voidchushihua(void);/*对系统初始化*/voidadd(void);/*对每个人每种产品总销售量的统计、对各种产品销售量统计、对每个销售员总销售量的统计。*/intread(void);/*读取数据*/voidarrange(inta[],intn,intsign[]);/*销售量排序及排名,内置函数*/voids_arrange(void);/*对销售员销售量排序及排名*/voidp_arrange(intsale[]);/*对每种产品总销售量的排序及排名*/voidinput(void);/*完成便条的输入和储存*/voidmenu(void);/*完成菜单的打印*/voidchoice(void);/*完成功能模块的选择*/voidbianhao(void);/*对销售员和产品的编号赋值及计算量置0*/voiddelect(void);/*删除便条*/voidshow(show);/*打印所有便条*/43.3关键函数的流程图下面这个是选择法排序的程序框图,同时将销售员代号或产品代号也加进去排序,写这个比写个程序艰难得多。这也只是根据自己的理解写出来的,不知道是否正确。voidarrange(void)函数的程序框图传入参数a[],sign[],ni=0,j,k,tempin-1?k=i;j=i;jn?a[k]a[j]?k=j;是是j++;否是否k!=i?否temp=a[k];a[k]=a[i];a[i]=temp;temp=sign[k];sign[k]=sign[i];sign[i]=temp;是i++;结束否54系统调试初始化时的界面D盘根目录文件写入状况6菜单如下选择1输入便条7询问是否继续输入继续依次写入3,2,1004,5,200,3,5,2302,1,1402,5,1201,2,3202,4,200后文本储存状况8选择3时对销售员销售额排名。销售员2销量:200+120+200=520销售员3销量:100+230=330销售员1销量:320销售员4销量:200选择4时对产品销售排9由上面文件储存状况中可计算:产品5总量=200+230+120=550产品2总量=100+320=420产品3总量=200产品4总量=200产品1总量=0选择2为删除便条功能删除了2,5,120现在文件储存状况10选择5是对所有便条打印也可以手工在d:\\a.txt中添加便条(格式为:员工号(tab)产品号(tab)销售量(回车))手工添加351204210032150后文11本储存状况对其输出12下面两个图片是演示插入便条时排错功能13初始化时什么也不输入,程序会排除空文件时读取时错误并重新初始化,下面两个图片演示了这一功能145总结一、这个是我测试菜单时写的测试函数。#includestdio.hmain(){voidmenu(void);voidchoice(void);menu();choice();getch();}voidmenu(void){printf(**************************************************\n);printf(**\n);printf(*1.输入便条*\n);printf(*2.按销售额对销售员排序并输出*\n);printf(*3.统计每种产品的总销售额并排序输出*\n);printf(*0.退出*\n);printf(**\n);printf(**************************************************\n);}voidchoice(void){intchoice;printf(输选择(0~3)\n);while(scanf(%d,&choice)!=1||(choice0||choice3)){while(getchar()!='\n')continue;/*此处*/printf(输入有误,请重新输入0~3\n);}switch(choice){case1:printf(111);break;case2:printf(222);break;case3:printf(333);;break;case0:printf(000);;break;default:printf(****);break;}}刚开始时没有写程序中注释的那句,导致输入的选择为一个字符串时printf()15执行多次。此句可以吃掉错误输入的字符。二、这是读取函数。intread(void){FILE*fp;inti,j,pnum,snum,sale;if((fp=fopen(d:\\a.txt,r))==NULL){printf(读取失败!初始化\n);return0;}for(i=0;i4;i++){seller[i].num=i+1;for(j=0;j5;j++)seller[i].product[j].num=j+1;}fscanf(fp,%s%s%s%s,seller[0].name,seller[1].name,seller[2].name,seller[3].name);while(!feof(fp)){fscanf(fp,%d%d%d\n,&snum,&pnum,&sale);/*此处*/seller[snum-1].product[pnum-1].count++;seller[snum-1].product[pnum-1].sale[seller[snum-1].product[pnum-1].count-1]=sale;}fclose(fp);return1;}写这个函数时fscanf(fp,%s%s%s%s\n,seller[0].name,seller[1].name,seller[2].name,selle[3].name);语句中%s%s%s%s\n处少了\n导致最后一条数据读取了两次,导致统计的结果不对,修改这个问题花费我很多时间。三、voidc
本文标题:C语言程序设计销售管理系统
链接地址:https://www.777doc.com/doc-3841154 .html