1、课程设计报告 课程名称: 高级语言程序设计课程设计 姓 名: 贾天宜 班级学号: 23 指导教师: 计春雷 完成日期: 2012.6.15 目录1 课程设计目的与要求3矚慫润厲钐瘗睞枥庑赖。2 问题描述3聞創沟燴鐺險爱氇谴净。3总体设计3残骛楼諍锩瀨濟溆塹籟。4 详细设计3酽锕极額閉镇桧猪訣锥。5 功能测试3彈贸摄尔霁毙攬砖卤庑。6 程序设计调试情况分析4謀荞抟箧飆鐸怼类蒋薔。7 课程设计小结4厦礴恳蹒骈時盡继價骚。参考文献4茕桢广鳓鯡选块网羈泪。附录 系统源程序4鹅娅尽損鹌惨歷茏鴛賴。销售管理系统1 课程设计目的与要求2 问题描述(系统概要、基本功能要求,即需求分析)某公司有四个销售员(编号
2、:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容: 销售员的代号,产品的代号,这种产品的当天的销售额;每位销售员每天可能上缴0-5张便条。完成以下功能:籟丛妈羥为贍偾蛏练淨。1)计算上个月每个人每种产品的销售额。2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4)输出统计报表功能包括:1、设计一个的菜单将在实现的功能显示出来,并有选择提示2、建立便条数据,将数据存储到文件当中,通过调用文件实现数据调用3、能实现便条上的输入信息
3、4、统计每个员工每种产品上个月的销售额5、按照产品总销售额从高到低的顺序输出员工编号6、输出销售报表3总体设计 3.1 功能分析(系统提供主界面,各种功能操作以独立的函数为基础) 3.2 系统使用的主要函数(列出函数首部+注释)int menu_select();/*主菜单函数*/ int enter();/*便条输入函数*/void salor(int n);/*某人某种产品上个月销售额统计函数*/ int sum(DATA t,int n,int m);/*求和函数*/ void list1(int n);/*按销售额将销售员排序函数*/ void list2(int n);/*报表输出函
4、数*/ 3.3 系统使用的主要数据结构 typedef structint gonghao; int a1; int a2; int a3; int a4; int a5; DATA;4 详细设计4.1 程序总体结构图层次图销售管理系统函数调用模块便条内容模块菜单显示模块退出主控模块便条内容模块 退出报表输出按销售额将销售员排序上个月每人每种产品的销售额便条内容模块4.2 程序流程图菜单部分流程图:开始退出=0?输入数字 Yes預頌圣鉉儐歲龈讶骅籴。=5?=4?=3?=2?=1? No渗釤呛俨匀谔鱉调硯錦。 No no no no铙誅卧泻噦圣骋贶頂廡。Yes yes yes yes yes擁締
5、凤袜备訊顎轮烂蔷。每种产品的总销售额按销售额将销售员排序统计上个月每人每种产品的销售额销售报表输入便条上的内容5 功能测试1、系统主界面2、输入信息界面3、统计数据界面6 程序设计调试情况分析(程序设计及调试过程中碰到的问题及解决的方法)输入销售信息时,数据多而繁杂,难以通过简单的函数进行输入和存储,经过我们同组成员一番讨论,我们采用了结构型数组变量来进行数据的存储,实现了数据简单而且明了输入;定义的变量引用时打错变量名导致程序出错,经过程序调试找出错误语句并进行改正;贓熱俣阃歲匱阊邺镓騷。7 课程设计小结初次面对这个问题,感觉真的是茫然无奈,通过向老师同学的学习,最终还是做出了自己的成果,不
6、能不说是一种成长。要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处对C,首先对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。坛摶乡囂忏蒌鍥铃氈淚。参考文献C程序设计教程与实验附录 系统源程序(源代码需有足够的注释)#include stdio.h /*输入输出函数*/ #include stdlib.h/*通用应用程序函数*/typedef struct/*定义结构体变量*/ int gonghao; /*销售员代号*/int a1; /*产品一代号
7、*/int a2; /*产品二代号*/int a3; /*产品三代号*/int a4; /*产品四代号*/int a5; /*产品五代号*/DATA;int menu_select(); /*声明函数*/ int enter(); /*声明函数*/ void salor(int n); /*声明函数*/ int sum(DATA t100,int n, int e); /*声明函数*/ void list1(int n);/*声明函数*/ void list2();/*声明函数*/ main()/*主函数*/ int length;for( ; ; )/*无限循环*/ switch(menu_
8、select() /*根据用户的选择判断该调用哪个功能函数*/ case 1:length=enter();break; case 2:salor(length);break; case 3:list1(length);break; case 4:list2();break; case 0:exit(0); int menu_select() /*菜单函数*/ int n;printf( 菜单 nn); 蜡變黲癟報伥铉锚鈰赘。printf(设计人:王金麒 贾天宜 马宸 班级:bx1109n);printf( 1 输入便条上的内容n); printf( 2 统计上个月每种产品每人销售的数量n);
9、 printf( 3 按销售额将销售员排序n); printf( 4 销售报表n);printf( 0 退出n); printf(-end-nn); 買鲷鴯譖昙膚遙闫撷凄。printf( 请输入(0-4) ); scanf(%d,&n); return n; int enter() /*清单输入*/int i,num;FILE *fp;DATA t100;printf(请输入要写的便条条数:n); scanf(%d,&num);printf(gonghao product1 product2 product3 product4 product5); 綾镝鯛駕櫬鹕踪韦辚糴。for(i=0;inu
10、m;i+) printf(nn-n);驅踬髏彦浃绥譎饴憂锦。scanf(%d%d%d%d%d%d,&ti.gonghao,&ti.a1,&ti.a2,&ti.a3,&ti.a4,&ti.a5);猫虿驢绘燈鮒诛髅貺庑。if(fp=fopen(record.dat,ab+)=NULL) printf(不能打开文件n);exit(1); for(i=0;i0) 輒峄陽檉簖疖網儂號泶。k+;fclose(fp); printf(请输入要查询售货员的代号(1-4):); scanf(%d,&s); for(i=0;i0) /*从fp指向的文件上读入便条信息*/ 恥諤銪灭萦欢煬鞏鹜錦。k+;fclose(
11、fp);for(i=0;i4;i+) /*将所输入的条数存入结构体数组中*/ mi=i+1; for(i=0;i4;i+) ci=sum(t,k,mi); for(i=0;i4;i+)for(j=i+1;j4;j+) if(cicj) s=mi; mi=mj; mj=s; s=ci; ci=cj; cj=s; printf(按销售额从高到低将销售员代号排序n); for(i=0;i0) 阌擻輳嬪諫迁择楨秘騖。k+;for(i=0;i4;i+) ci=sum(t,k,i+1);/*求每个人的总销售额*/ for(i=0;i4;i+) sum0+=ci; /*所有产品的销售额*/ for(i=0;
12、ik;i+) /*求每个人每种产品的总销售额*/ for(j=0;j4;j+) if(j+1=ti.gonghao) b1j+=ti.a1; b2j+=ti.a2; b3j+=ti.a3; b4j+=ti.a4; b5j+=ti.a5; for(i=0;i4;i+)/*每种产品的总销售额*/ sum1+=b1i; sum2+=b2i; sum3+=b3i; sum4+=b4i; sum5+=b5i; printf(-销售报表-nnn); 氬嚕躑竄贸恳彈瀘颔澩。printf( products numn); printf( 销售员 1 2 3 4 5 总和nn); for(i=0;i4;i+) printf( %dt%dt%dt%dt%dt%dt%dtn,i+1,b1i,b2i,b3i,b4i,b5i,ci); 釷鹆資贏車贖孙滅獅赘。printf( psum %dt%dt%dt%dt%dt%dt,sum1,sum2,sum3,sum4,sum5,sum0); 怂阐譜鯪迳導嘯畫長凉。 int sum(DATA t100,int n, int e) int i=0,sum=0; for(i=0;i=n;i+)if(e=ti.gonghao) sum+=ti.a1; sum+=ti.a2; sum+=ti.a3; sum+=ti.a4; sum+=ti.a5; return sum;