c言语课程设计贩卖管理系统完整版_第1页
c言语课程设计贩卖管理系统完整版_第2页
c言语课程设计贩卖管理系统完整版_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言课程设计设计(论文)题目: 销售管理系统设计学 院名 称:电信学院专业:计算机科学与技术班级:计科081班姓名: 洪利忠学号 35指 导 教师: 宋宏图职称定稿日期:2009年2月27日、题目内容描述:某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每 个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1、销售员的代号2、产品的代号3、这种产品的当天的销售额每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条, 编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。1)计算上个月每个人每种产品的销售额。2)按销售额对销售员

2、进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需 输出产品的代号和销售额)4)输出统计报表销售统计报表产品代号销售之和销售员代号123451234每种产品之和总和二、应用程序功能的详细说明:1、主函数 void main():清屏之后对主菜单函数menu_select(进行无限循环2、菜单函数 int menu_select()打印出菜单功能选项,包括便条清单输入、每个人每种产品的销售额、销售 员销售额排行、统计报表、便条清单、储存文件、读取文件和退出 8个选项。根 据用户的选择判断该调用哪个功能函数,则输入相应的选项代号 n (0-

3、7)以运 行该功能选项。3、清单输入函数 int enter(RECODE t):清屏之后输出提示语“请输入便条的信息”,按提示语输入便条信息,输入 数据的同时,已将该信息存入开始已定义的结构体数组typedef structRECORD t中,以便在排序功能选项、统计功能选项、输出清单列表选项 等功能选项中读取信息,进行编辑,阅读。输入结束以信息全为零而结束清单输 入,返回主菜单。4、销售员便条信息查询函数 void salor(RECODE t,int n):进入查询功能,出现提示语“输入所要查看的售货员的代号”,输入销售员的代号(1-4),通过循环判断读取输入的销售员代号(s)来进行对信

4、息的阅读。5、求和函数 int sum(RECODE t,int n, int e):定义初始值sum=0通过对销售员代号的循环和判断(当销售员代号与传递的e值相同),累加并统计同一个销售员销售不同种产品的销售额信息,返回统 计值sum,以便调用。6 排序函数 void list1 (RECODE t,int n):调用求和函数返回的统计值 sum (使ci=sum(t,n,mi),按销售员的总销售额进行从大到小排序,输出销售员的代号mi。7、销售产品的销售额情况的函数调用 void list2(RECODE t,int n):调用求和函数使ci=sum(t,n,i+1),累加并统计每个人销售

5、每种产品的总 销售额和所有销售员销售的所有产品的总销售额,再将每个人销售每种产品的总 销售额放到定义的数组中(即 xs5=sum1,sum2,sum3,sum4,sum5,按每种产品的总销售额sumi循环比较并排序输出产品代号 ai和总销售额xsi。8、销售统计报表输出函数void list3(RECODE t,int n):类似(6)输出以下表格:销售统计报表产品代号销售之和销售员代号123451234每种产品之和总和9、保存函数 void save(RECODE t,int n):打开record.txt文件,如果函数带回一个空指针值 if(fp=fope n("record.t

6、xt","wb")=NULL),则显示“不能打开文件”,非法 退出再进行存储文件。通过文件指针,循环将便条信息输出到 fp指向的文件。关闭文件,显示“*存储成功* ”,“按任意键继续。”。10、读取函数 int load(RECODE t):定义文件指针*fp,循环从fp指向的文件上读入便条信息,关闭文件,显示 “成功读取文件信息! ! ”,“按任意键继续。”。返回n值。三、输入数据类型、格式和内容限制:数据名称数据关联数据类型数据格式内容限制销售员代号name s,mint整型变量%d %d,%d大于0小于5产品代号a1, a2, a3, a4,a5int整型变

7、量%d%d%d%d%c大于0小于6功能键代号nint整型变量%d大于等于0小于8所有产品总和sumint整型变量%d大于0每个销售员的 总销售额cint整型变量%d大于0每个人每种产 品的总销售额b1,b2, b3,b4, b5int整型变量%d%d%d%d%c大于0每种产品的总 销售额xsint整型变量%d大于0四、主要模块的算法描述-以程序流程图的方式给出-简要的语言描述:求和函数 int sum(RECODE t,int n, int e)流程图:定义初始值sum=oi=0假tr"1返回sumLi<=l000if(e=ti. namer1sum+=ti.a1;sum+=t

8、i.a2;sum+=ti.a3;1ifc-sum+=ti.a4;sum+=ti.a5;LJi+排序函数 void listl (RECODE t,int n)流程图:i=0r一i=01 !假<<<4定义两个数组c4,mci=sum(t, n, mi)mi=i+1i+i+假i=0,j=i+1i<4,j<4if(ci<cj)打印:从大到小销售员销售额排行榜真/、s=mi;mi=mj; mj=s; s=ci;ci=cj;cj=s;i=0打印:按任意键继续4>真rF 输出销售员代号miL,_Jki+Lk五、程序的源代码清单:#include <stdio

9、.h>/* 输入输出函数 */ #include <stdlib.h>/* 通用应用程序函数 */ typedef struct /* 定义结构体变量 */int name;int a1;int a2;int a3;int a4;int a5;RECODE;int menu_select();/* 选择菜单函数声明 */ int enter(RECODE t);/* 进入函数声明 */ void salor(RECODE t,int n);/* 声明函数 */菜单 1 函数声明 */ 菜单 2 函数声明 */ 菜单 3 函数声明 */int sum(RECODE t,int

10、n,int m);/* 统计函数声明 */void list1(RECODE t,int n);/* void list2(RECODE t,int n);/* void list3(RECODE t,int n);/*void save(RECODE t,int n);/*保存文件函数声明*/int load(RECODE t);/* 读取函数声明 */void main()/* 主函数 */RECODE rec600;int length;system("cls"); /* 清屏 */for( ; ; ) /* 无限循环 */switch(menu_select() /

11、* 根据用户的选择判断该调用哪个功能函数 */ case 1:length=enter(rec);break;case 2:salor(rec,length);break;case 3:list1(rec,length);break;case 4:list2(rec,length);break;case 5:list3(rec,length);break;case 6:save(rec,length);break;case 7:length=load(rec);break;case 0:exit(0);菜单函数 * /*int menu_select()int n;printf("m

12、enunn");printf(" 1 输入便条 n");printf(" 2 每个人每种产品的销售额 n");printf(" 3 销售员总销售额排行 n");printf(" 4 统计报表 n");printf(" 5 便条清单 n");printf(" 6 储存文件 n");printf(" 7 读取文件 n");printf(" 0 退出 n");printf("endnn");printf(&quo

13、t; 请输入你的选择 (0-7): ");scanf("%d",&n);if(0<n&&n<8) system("cls"); /* 清屏 */ return n;*清单输入函数 *int enter(RECODE t)int i;system("cls"); /* 清屏 */printf(" 请输入便条的信息 :");printf(" 销售员代号 产品 1 产品 2 产品 3 产品 4 产品 5"); for(i=0;i<1000;i+)/*

14、 将所输入的条数存入结构体数组中 */printf("nnn");scanf("%d%d%d%d%d%d",&,&ti.a1,&ti.a2,&ti.a3,&ti.a4,&ti.a5); if(!=1)&&(!=2)&&(!=3)&&(!=4)printf(" 不存在该销售员的信息 !");if(=0)&&(ti.a1=0)&&

15、(ti.a2=0)&&(ti.a3=0)&&(ti.a4=0)&&(ti.a5=0) break;printf("nnnn");return i;*查询函数 *void salor(RECODE t,int n)int i,s;int b1=0,b2=0,b3=0,b4=0,b5=0;printf(" 输入所要查看的售货员的代号 :"); scanf("%d",&s); /* 输入所要查看的售货员的代号 */ for(i=0;i<n;i+) /* 对每种产品的销售额求和 *

16、/ if(=s) b1+=ti.a1;b2+=ti.a2;b3+=ti.a3;b4+=ti.a4;b5+=ti.a5;printf(" 销售员代号 产品 1 产品 2 产品 3 产品 4 产品 5n");printf("n");printf("%-15d%-10d%-10d%-7d%-7d%-7d",s,b1,b2,b3,b4,b5); printf("n 按任意键继续 .n");getchar();*求和函数 *int sum(RECODE t,int n, int e)int i,sum=0;fo

17、r(i=0;i<=n;i+)/* 求销售产品的总和 */ if(e=)sum+=ti.a1;sum+=ti.a2;sum+=ti.a3;sum+=ti.a4;sum+=ti.a5; return sum;*排序函数 *void list1 (RECODE t,int n)int i,j,s;int c4,m4; /* 定义两个数组 */ system("cls"); /* 清屏 */ for(i=0;i<4;i+)mi=i+1;for(i=0;i<4;i+)ci=sum(t,n,mi);for(i=0;i<4;i+)/* 按销售员的销售

18、额进行排序 */ for(j=i+1;j<4;j+) if(ci<cj) s=mi;mi=mj;mj=s;s=ci;ci=cj;cj=s;printf(" 从大到小销售员销售额排行榜 n"); for(i=0;i<4;i+)/* 输出销售员代号 */printf("%dn",mi);getchar();/*printf("n 按任意键继续 .");统计销售产品求和排序输出函数 */ void list2(RECODE t,int n)int index,k,s;int i,j,sum0=0,sum1=0,sum2=0

19、,sum3=0,sum4=0,sum5=0;int c4,b14=0,b24=0,b34=0,b44=0,b54=0; system("cls"); ;for(i=0;i<4;i+)ci=sum(t,n,i+1);/* 求每个人的总销售额 */for(i=0;i<4;i+)sum0+=ci;/* 所有产品的销售额 */for(i=0;i<n;i+)/* 求每个人每种产品的总销售额 */ for(j=0;j<4;j+) if(j+1=)b1j+=ti.a1;b2j+=ti.a2;b3j+=ti.a3;b4j+=ti.a4;b5j+=ti.

20、a5;for(i=0;i<4;i+)/* 每种产品的总销售额 */sum1+=b1i;sum2+=b2i;sum3+=b3i;sum4+=b4i;sum5+=b5i; int xs5=sum1,sum2,sum3,sum4,sum5;int a5=1,2,3,4,5;for(k=0;k<4;k+)index=k;for(i=k+1;i<5;i+) if(xsi>xsindex) index=i; s=xsindex; xsindex=xsk; xsk=s; s=aindex; aindex=ak; ak=s; for(i=0;i<5;i+)printf("

21、; 产品代号 :%-10d",ai); printf(" 总销售额: %-10dn",xsi); printf(" 按任意键继续 n");getchar();*销售统计报表输出*void list3(RECODE t,int n)int i,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0; int c4,b14=0,b24=0,b34=0,b44=0,b54=0;system("cls"); ;for(i=0;i<4;i+)ci=sum(t,n,i+1);/* 求每个人的总销售额

22、 */ for(i=0;i<4;i+)sum0+=ci;/* 所有产品的销售额 */for(i=0;i<n;i+)/* 求每个人每种产品的总销售额 */ for(j=0;j<4;j+)if(j+1=)b1j+=ti.a1;b2j+=ti.a2;b3j+=ti.a3;b4j+=ti.a4;b5j+=ti.a5;for(i=0;i<4;i+)/* 每种产品的总销售额 */ sum1+=b1i;sum2+=b2i;sum3+=b3i;sum4+=b4i;sum5+=b5i;printf(" 销售报表 nnn");printf(" 销

23、售员序号 1 2 3 4 5 总数 nn"); for(i=0;i<4;i+)printf(" %-7d%-7d%-7d%-7d%-7d%-7d%-7dn",i+1,b1i,b2i,b3i,b4i,b5i,ci);printf(" 总和 %-7d%-7d%-7d%-7d%-7d%-7d",sum1,sum2,sum3,sum4,sum5,sum0); printf("n 按任意键继续 ");getchar();*保存函数 *void save(RECODE t,int n) int i;FILE *fp;/* 调用 fopen 函数 */if(fp=fopen("record.txt","wb")=NULL)/* 如果函数带回一个空指针值 */printf(" 不能打开文件 n");/* 不能打开文件 */exit(1);printf("n 储存文件 n");fprintf(fp,"%d",n);fprintf(fp,"rn");for(i=0;i<n;i+)fprintf(fp,"%-10d%-7d%-7d%-7d%-7d%-7

温馨提示

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

评论

0/150

提交评论