C语言课程设计销售管理系统

合集下载

C语言课程设计《商品销售管理系统》

C语言课程设计《商品销售管理系统》

商品销售管理系统目录一、需求分析 (2)二、概要设计 (2)三、详细设计 (4)四、调试分析 (14)五、用户手册 (14)六、测试数据 (15)七、附录 (18)—1—一、需求分析商品销售管理程序商品信息:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD 的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。

记录每一次销售商品的数量和价格,并提供对已售出商品的价格、数量进行统计、排序功能,但允许用户退商品。

(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C 输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计(一)按系统分析的功能要求将系统划分为以下几个主要功能模块:1、文件管理文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。

2、进出货管理(1)商品进货: 输入数据后商品信息能自动更新进行添加(2)商品销售: 输入数据后商品信息能自动更新进行减少3、商品数据管理(1)增加/删除商品: 添加或删除某条商品的信息(2)修改商品信息: 对某条商品的信息进行修改4、浏览商品信息管理(1)查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询(2)排序商品信息: 可按商品编号、名称、类别分别排排序(3)浏览商品信息:可浏览输入、查询或排序后的数据。

(二)本程序结构(1)结构体设计struct goods{ long int num;char name[20];char sort[20];long int count;long int price;}goods[200];(2)各功能函数设计:void input() /*功能1:输入商品信息*/—2—void sequence() /*功能2:排序商品信息*/void purchase() /*功能3:进货商品信息*/void sell() /*功能4:销售商品信息*/void edit() /*功能5:添加或删除商品信息*/void correct() /*功能6:修改商品信息*/void search() /*功能7:查询商品信息*/void scan() /*功能8:浏览商品信息*/void reserve() /*功能9:保存文件*/void quit() /*退出系统*/(3)主函数设计:void main (){void input();void sequence();void purchase();void sell();void edit();void correct();void search();void scan();void reserve();lp: for(i=0;i<1;i++)scanf("%d",&k);system("cls");switch(k) /*用switch语句实现功能选择*/system("cls"); /*清屏*/goto lp; /*返回主界面*/}三、详细设计(1)各功能函数:void input() /*功能1:输入商品信息*/{printf("\n 请输入需要建立新库存的商品种类数量:");scanf("%d",&n);system("cls");printf("\n …………………………………………………………………………………………………\n");for(i=0;i<n;i++) /*用循环实现输入n个商品*/{printf("\n\t*请输入商品的编号:");scanf("%ld",&goods[i].num);printf("\n\t 请输入商品的名称:");—3—scanf("%s",goods[i].name);printf("\n\t 请输入商品的种类:");scanf("%s",goods[i].sort);printf("\n\t 请输入商品的数量:");scanf("%d",&goods[i].count);printf("\n\t 请输入商品的单价:");scanf("%d",&goods[i].price);printf("\n …………………………………………………………………………………………………\n");}printf("\tPlease press any key to continue:");getch();return; /*返回主界面*/}void sequence() /*功能2:排序商品信息*/{long temp;char p1[30],p2[30];for(k=0;k<n-1;k++) /*(1): 按编号排序*/for(i=0;i<n-k-1;i++) /*用起泡法排序*/if(goods[i].num>goods[i+1].num) /*按编号由小到大排序*/{temp=goods[i].num;goods[i].num=goods[i+1].num;goods[i+1].num=temp;strcpy(p1,goods[i].name);strcpy(goods[i].name,goods[i+1].name);strcpy(goods[i+1].name,p1);strcpy(p2,goods[i].sort);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);}printf("--------------------------------------------------------------------------------\n");printf("\n\t\t按商品编号排序后的商品信息\n\n");printf("\t商品编号商品名称商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5ld %5s %5s %5ld %5ld\n",go ods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price) ;}for(k=0;k<n-1;k++) /*(2): 按商品名称排序*/for(i=0;i<n-k-1;i++)if(strcmp(goods[i].name,goods[i+1].name)>0){strcpy(p1,goods[i].name);strcpy(goods[i].name,goods[i+1].name);strcpy(goods[i+1].name,p1);temp=goods[i].num;goods[i].num=goods[i+1].num;goods[i+1].num=temp;strcpy(p2,goods[i].sort);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);}printf("--------------------------------------------------------------------------------\n");printf("\n\t\t按商品名称排序后的商品信息\n");printf("\n\t商品名称商品编号商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5s %5ld %5s %5ld %5ld\n",goods[ i].name,goods[i].num,goods[i].sort,goods[i].count,goods[i].price);}for(k=0;k<n-1;k++) /*(3): 按商品类别排序*/for(i=0;i<n-k-1;i++) /*用起泡法排序*/if(strcmp(goods[i].sort,goods[i+1].sort)>0){strcpy(p2,goods[i].sort);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);temp=goods[i].num;goods[i].num=goods[i+1].num;goods[i+1].num=temp;strcpy(p1,goods[i].name);strcpy(goods[i].name,goods[i+1].name);strcpy(goods[i+1].name,p1);}printf("--------------------------------------------------------------------------------");printf("\n\t\t按商品类别排序后的商品信息\n\n");printf("\t商品类别商品编号商品名称商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5s %5ld %5s %5ld %5ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);}printf("--------------------------------------------------------------------------------");printf("please press any key to continue:");getch();return; /*返回主界面*/}void purchase() /*功能3:进货商品信息*/ {long temp; /*定义临时变量表示刚进货的商品编号*/int j;printf("\n\t\5请输入刚进货的商品编号:");scanf("%ld",&temp);printf("\n\t\5请输入刚进货的商品数量:");scanf("%d",&j);printf("\n\n\n\tpress any key to contiue:");getch();system("cls");printf("\n\t输出进货后的商品信息:");for(i=0;i<n;i++) /*循环,寻找与进货相同的商品信息*/if(temp==goods[i].num)goods[i].count=goods[i].count+j; /*自动更改商品数量*/printf("\n\t商品编号商品名商品类别商品数量商品价格");for(i=0;i<n;i++) /*循环,输出进货后的商品信息*/{printf("\n\t %4ld %4s %4s %ld %4ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}printf("\n\n\t\tPress any key to enter menu:");getch(); /*返回功能选择界面*/return;}—6—void sell() /*功能4:销售商品信息*/{long temp; /*定义临时变量temp表示刚销售的商品编号*/int j;printf("\n\t\5请输入刚销售的商品编号:");scanf("%ld",&temp);printf("\n\t\5请输入刚销售的商品数量:");scanf("%d",&j);for(i=0;i<n;i++) /*循环,找到刚销售的商品信息*/{if(temp==goods[i].num){for(;j>goods[i].count;) /*如果销售额大于库存量,则出现错误提示*/{printf("\n\t售出数量大于商品原有数量,出现错误,请重新输入:");scanf("%d",&j);}goods[i].count=goods[i].count-j; /*完成自动更改商品数量的功能*/}}printf("\n\tpress any key to contiue:");getch();system("cls"); /*清屏*/printf("\n\n *销售后商品信息:");printf("\n\t商品类别商品编号商品名称商品数量商品单价\n");for(i=0;i<n;i++) /*循环,输出销售后商品信息*/{printf("\t %4s %4ld %4s %4ld %4ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);}printf("\n\tPress any key to enter menu:");getch();return; /*返回功能选择界面*/}void edit() /*功能5:添加或删除商品信息*/ {void add(); /*声明子函数*/void dele();—7—printf("\n\t请选择:1.添加商品信息; 2.删除商品信息;");printf("\t*请输入 1或2 继续:");scanf("%d",&k);switch(k) /*用switch语句实现功能选择*/{case 1: add();break;case 2: dele();break;}getch();return; /*返回主菜单*/}void add() /*添加商品信息*/{ /*定义子函数*/printf("\t*请输入所添加商品的商品编号:");scanf("%ld",&goods[n].num);printf("\n\t请输入所添加商品的名称:");scanf("%s",goods[n].name);printf("\n\t请输入所添加商品的类别:");scanf("%s",goods[n].sort);printf("\n\t请输入所添加商品的数量:");scanf("%d",&goods[n].count);printf("\n\t请输入所添加商品的价格:");scanf("%d",&goods[n].price);n=n+1;printf("\n");}void dele() /*删除商品信息*/{ /*定义子函数*/int temp; /*定义局部变量*/int j;for(i=0;i<n;i++){printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",good s[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\n");printf("\n*请输入要删除的商品编号:");scanf("%ld",&temp);printf("\n\n");—8—for(i=0;i<n;i++){if(temp==goods[i].num){for(j=i;j<n;j++){goods[j].num=goods[j+1].num;strcpy(goods[j].name,goods[j+1].name);strcpy(goods[j].sort,goods[j+1].sort);goods[j].count=goods[j+1].count;goods[j].price=goods[j+1].price;}n=n-1; /*商品总库存量减少*/}}for(i=0;i<n;i++){printf("\n\t商品编号商品名商品类别商品数量商品价格"); /*输出删除后的商品信息*/printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("Please press any key to continue:");getch();return; /*返回主界面*/}void correct() /*功能6:修改商品信息*/ {long temp; /*定义局部变量*/printf("\n\t请输入要修改的商品的编号:");scanf("%ld",&temp); /*输入新的商品信息*/printf("\n");for(i=0;i<n;i++) /*保存新的商品信息*/{if(temp==goods[i].num){printf("\t请输入一个新的的商品编号:");scanf("%ld",&goods[i].num);printf("\n\t请输入新的商品的名称:");scanf("%s",goods[i].name);printf("\n\t请输入新的商品的类别:");—9—scanf("%s",goods[i].sort);printf("\n\t请输入新的商品的数量:");scanf("%d",&goods[i].count);printf("\n\t请输入新的商品价格:");scanf("%d",&goods[i].price);printf("\n");}}for(i=0;i<n;i++){printf("\n\t新的商品名称商品编号商品类别商品数量商品单价\n");printf("\t %4s %4ld %4s %4ld %4ld",goods[i].name,goods[i].num,goods[i].sort,goods[i].count,goods[ i].price);printf("\n");}printf("Please press any key to continue:"); /*返回功能选择界面*/ getch();return; /*返回主菜单*/}void search() /*功能7:查询商品信息*/{int k; /*定义局部变量*/long temp1;char temp2[30],temp3[20];printf("\n\t\5按商品编号查询,请按1\t\t\t\5按商品名查询,请按2\n\t\5按商品类别查询,请按3\t\t\t\5查需要进货的商品,请按4\n");printf("\n\n\n\t\t\t请输入数字确定查询方式:");scanf("%d",&k);printf("\n");printf("Press any key to continue:");getch();system("cls");switch(k) /*实现查询方式的选择*/{case 1:{ printf("\n\n\n\n\n\t\t请输入要查询的商品的编号:"); /*按商品编号查询*/scanf("%ld",&temp1);system("cls"); /*清屏*/for(i=0;i<n;i++){—10—if(temp1==goods[i].num){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 2:{ printf("\n\n\n\n\n\t\t请输入要查询的商品名:"); /*按商品名查询数据*/scanf("%s",temp2);system("cls");for(i=0;i<n;i++){if(strcmp(temp2,goods[i].name)==0){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 3:{ printf("\n\n\n\n\n\t\t请输入要查询的商品类别:"); /*按商品类别查询数据*/scanf("%s",temp3);system("cls");for(i=0;i<n;i++){if(strcmp(temp3,goods[i].sort)==0){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i] — 11 —.price);}}}break; /*跳出switch语句*/case 4:{ int a=50;for(i=0;i<n;i++) /*查询需要进货的商品名*/{if(goods[i].count<a)printf("\n\t\t\4需要进货的商品名:%s 现有库存量:%ld\n",goods[i].name,goods[i].count);}}break; /*跳出switch语句*/}printf("\n\n\t\tPress any key to enter menu:");getch();return; /*返回主界面*/}void scan() /*功能8:浏览商品信息*/ {printf("\n\t浏览输入的商品信息,请按1\n\n\t浏览查询的商品信息,请按2\n\n\t浏览排序后商品信息,请按3\n");printf("请选择:");scanf("%d",&k);switch(k){case 1:{ printf("\t\t\t浏览输入的商品信息\n");printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("Press any key to enter menu:");getch();return;} break; /*跳出switch语句*/case 2:{ printf("\t\t\t浏览查询的商品信息\n");—12—printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\nPress any key to enter menu:");getch();return;} break; /*跳出switch语句*/case 3:{ printf("\t\t\t浏览按商品编号排序的商品信息\n");printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i].num ,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\nPress any key to enter menu:");getch();return; /*返回主界面*/} break; /*跳出switch语句*/}}void reserve() /*功能9:保存文件*/{FILE *fp;char file[15]; /*用来存放文件保存路径以及文件名*/system("cls"); /*清屏*/printf("\n\t*请输入文件路径及文件名:");scanf("%s",file);fp=fopen("file","w+"); /*创建并打开一个文件,并得到该文件的地址*/fprintf(fp,"商品编号\t商品名 \t商品类别\t商品数量\t商品价格\n"); printf("商品编号\t商品名 \t 商品类别\t 商品数量\t 商品价格\n");for(i=0;i<n;i++)—13—{fprintf(fp,"%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name ,goods[i].sort,goods[i].count,goods[i].price);printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name,goo ds[i].sort,goods[i].count,goods[i].price);}fclose(fp); /*关闭文件*/printf("文件已经保存!\n");getch();system("cls"); /*清屏*/}void quit() /*退出系统*/{exit(0);}四、调试手册(1)、sp.c(225) : warning C4013: 'add' undefined; assuming extern returning int add()函数声明错误。

C语言程序设计_销售管理系统

C语言程序设计_销售管理系统

计算机高级语言课程设计(C)实习报告姓名:刘晓东题目:销售管理系统班级:软件三班学号:学院:专业:指导老师:陈作汉2013.12.20目录一.题目与要求- - - - - - - - - - - - - - - 3 二.需求分析- - - - - - - - - - - - - - - - 3 三.功能实现设计(模块化设计)- - - 3 四.运行结果(附带抓图)- - - - - - - -9 五.总结- - - - - - - - - - - - - - - - - - - 13 六.源程序- - - - - - - - - - - - - - - - - - 13C语言程序设计3报告正文1、题目与要求:1.1某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。

每个销售员都将当日出售的每种产品各写一张便条交上来。

每张便条内容有1、销售员的代号2、产品的代号3、这种产品当天的销售额1.2每位销售员每天可能上缴0-5张便条。

假设手机到了上个月的所有便条,编写一个处理系统,读取上月的销售情况(自己设定),进行如下处理:1、 计算上个月没人每种产品的销售额2、 按销售额对销售员进行排序,输出排序结果(销售员代号)3、统计每种产品的总销售额,对这些产品从高到低的顺序输出结果(须输出产品的代号和销售额) 4、输出统计报表2、需求分析本程序将用到文件系统E://54321.doc 文件内容作为数据源,其中单行内容代表一张纸条。

程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。

3、功能实现设计3.1总体设计根据上面的分析,可以将这个系统分为如下五大模块:查看每人每种产品的销售额 、按销售额对销售员排序、对每种产品总销售额从高到低排序、输出统计报表和退出。

c语言销售管理系统课程设计

c语言销售管理系统课程设计

c语言销售管理系统课程设计一、教学目标本课程的目标是让学生掌握C语言销售管理系统的基本概念、设计方法和实现技巧。

通过本课程的学习,学生应能够:1.理解销售管理系统的业务流程和需求分析。

2.掌握C语言的基本语法和数据结构。

3.学会使用C语言进行程序设计和调试。

4.能够独立完成销售管理系统的模块设计和实现。

5.培养学生的团队协作能力和问题解决能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.销售管理系统的需求分析:介绍销售管理系统的业务流程,让学生了解销售管理系统的基本功能和需求。

2.C语言基础:讲解C语言的基本语法、数据类型、运算符、控制结构等,为学生进行程序设计打下基础。

3.数据结构:介绍常用的数据结构,如数组、链表、栈和队列等,让学生学会如何选择合适的数据结构来解决实际问题。

4.销售管理系统的模块设计:引导学生运用C语言和数据结构知识,分模块设计销售管理系统。

5.程序调试与优化:讲解程序调试的方法和技巧,让学生能够独立发现和解决问题。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解基本概念、原理和方法,让学生掌握销售管理系统的设计思路。

2.案例分析法:分析实际案例,让学生了解销售管理系统的应用场景。

3.实验法:让学生动手实践,培养实际编程能力和问题解决能力。

4.讨论法:学生进行小组讨论,促进学生之间的交流与合作。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,为学生提供理论基础。

2.参考书:提供一些销售管理系统的经典案例和源代码,供学生参考学习。

3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高学生的学习兴趣。

4.实验设备:提供计算机、编程环境等,让学生能够进行实际编程和调试。

五、教学评估本课程的评估方式将包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问和回答问题的表现等,占总评的20%。

销售管理系统c语言课程设计

销售管理系统c语言课程设计

销售管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在销售管理系统中的应用场景和优势;2. 掌握C语言基本语法和数据结构,如数组、结构体、文件操作等;3. 学会使用C语言实现销售管理系统的基本功能,如商品信息管理、销售记录管理、数据查询等。

技能目标:1. 培养学生运用C语言解决实际问题的能力;2. 提高学生分析需求、设计系统、编写代码、调试程序的能力;3. 培养学生团队协作、沟通表达和解决问题的能力。

情感态度价值观目标:1. 培养学生对编程和计算机科学的兴趣,激发学生的创新意识;2. 增强学生的自信心,培养学生面对困难勇于挑战的精神;3. 引导学生关注社会热点问题,理解销售管理系统在现实生活中的应用,培养学生的社会责任感。

课程性质:本课程为实践性较强的课程,以项目为导向,结合实际应用场景,培养学生的编程能力和解决实际问题的能力。

学生特点:学生已经具备C语言基础知识和一定的编程能力,对实际项目有一定的了解,但可能缺乏项目实战经验。

教学要求:注重理论与实践相结合,以项目为主线,引导学生主动探究,培养其编程思维和实际操作能力。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. C语言基础回顾:数据类型、运算符、控制结构、函数等基本概念;2. 销售管理系统需求分析:介绍系统功能模块,如商品管理、销售记录、用户管理等;3. 数据结构设计:数组、结构体、链表等在销售管理系统中的应用;4. 文件操作:文件的打开、读取、写入和关闭,实现数据的持久化存储;5. 销售管理系统功能实现:分别实现商品信息管理、销售记录管理、数据查询等功能;- 商品信息管理:添加、修改、删除商品信息;- 销售记录管理:记录销售数据,实现销售统计;- 数据查询:根据需求查询商品信息和销售记录;6. 系统测试与优化:对销售管理系统进行功能测试、性能测试和优化;7. 项目总结与评价:总结项目实施过程中的经验和教训,进行自我评价和互相评价。

C语言课程设计______销售管理系统

C语言课程设计______销售管理系统

语言程序设计报告姓名:班级:学号:指导教师:课题:目录1 设计目标........................................................................................................... .21.1 管理系统概述........................................................................................ .21.2 主要功能................................................................................................ .22 程序原代码 (4)3 详细设计 (10)4 程序运行情况 (12)5 结束语 (18)6参考文献 (19)一、设计目标设计一个C语言程序(销售管理系统),具体要求:某公司有四个销售员(编号:1-4),负责销售五种产品(编号1-5)。

每个销售员都将当天出售的每种产品各写一张便条交上来。

每张便条包含内容:1. 销售员的代号2.产品的代号3.这种产品当天的销售额每位销售员每天的可能上交0-5张便条。

假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行如下处理:1.2 主要功能:1、计算上个月每个人每种产品的销售额。

2、按销售额对销售员进行排序,输出排序结果(销售员代号)3、统计每种产品的总销售额,对这些产品按从高到底的顺序输出排序结果(需输出产品的代号和销售额)4、输出统计报表二程序原代码#include <stdio.h>#include <string.h>#include <conio.h>#include <stdlib.h>#define Z 5#define R 4typedef struct{int shangpin[Z];}data;void menu(){ system("cls");printf("\n\n");printf("\t ┏━━━━━━━━━━━━主菜单━━━━━━━━━━┓\n");printf("\t ┃ 1.计算上个月每个人每种产品的销售额┃\n");printf("\t ┃ 2.按销售额对销售员进行排序,输出排序结果┃\n");printf("\t ┃ 3.统计每种产品的总销售额,输出排序结果┃\n");printf("\t ┃ 4.输出统计报表┃\n");printf("\t ┃ 5.结束操作┃\n"); printf("\t ┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");}void f1(data *x){ FILE *fp;char fname[10],hitkey;int j,t;int i,k,s;system("cls");printf("您想计算哪个月?\n");printf("请输入月份:");scanf("%s",fname);strcat(fname,".dat");if((fp=fopen(fname,"wb"))==NULL){printf("不能打开文件!!!\n");exit(0);}for(j=0;j<R;j++)for(t=0;t<Z;t++)(x+j)->shangpin[t]=0;printf("请输入:\n职工编号产品编号销售数量\n");for(j=0;hitkey!=27;j++){ scanf("%d%d%d",&i,&k,&s);if(i>R||i<0||k>Z||k<0){printf("信息错误!\n");continue;}else(x+i-1)->shangpin[k-1]=(x+i-1)->shangpin[k-1]+s;printf("继续输入请按回车,结束输入请按esc\n");printf("━━━━━━━━━━━━━━━━━━━━━━\n");hitkey=getch();for (;hitkey!=13&&hitkey!=27;)hitkey=getch();}for(j=0;j<R;j++)if(fwrite((x+j),sizeof(data),1,fp)!=1)printf("write error!\n");fclose(fp);printf("\n\n\n\n\n\n\t\t\t保存成功,按任意键返回主菜单!");getch();}void f2(data *x){FILE *fp;char fname[10];int i,k,j,t,bianhao[R]={0},z;system("cls");printf("你要哪个月的?\n");printf("请输入月份:");scanf("%s",fname);strcat(fname,".dat");if((fp=fopen(fname,"rb"))==NULL){printf("不能打开文件!!!\n");exit(0);}for(i=0;i<R;i++)if(fread(x+i,sizeof(data),1,fp)!=1)printf("读入信息出错!");for(i=0;i<R;)bianhao[i]=i++;printf("请输入按何种产品排序\n");scanf("%d",&k);k=k-1;for(i=0;i<R;i++){t=i;for(j=i+1;j<R;j++)if((x+bianhao[t])->shangpin[k]<(x+bianhao[j])->shangpin[k]) t=j;if(t!=i){ z=bianhao[i];bianhao[i]=bianhao[t];bianhao[t]=z;}}printf("\t\t\t按%d产品对销售员排序为:\n",k+1);printf("━━━━━━━━━━━━━━━━━━━━━\n");for(i=0;i<R;i++)printf("\t\t\t第%d名是:员工%d\n",i+1,bianhao[i]+1);printf("\n\n\n\t\t\t按任意键返回上一主菜单!");getch();fclose(fp);}void f3(data *x){ FILE *fp;char fname[10];int i,j,sum[Z]={0},bianhao[Z]={0},z,t,k;system("cls");printf("您想计算哪个月的?\n");printf("请输入月份:");scanf("%s",fname);strcat(fname,".dat");if((fp=fopen(fname,"rb"))==NULL){ printf("不能打开文件!!!\n");exit(0);}for(i=0;i<R;i++)if(fread(x+i,sizeof(data),1,fp)!=1)printf("读入信息出错!");for(i=0;i<Z;i++)for(j=0;j<R;j++)sum[i]=sum[i]+(x+j)->shangpin[i];for(i=0;i<Z;)bianhao[i]=i++;for(i=0;i<Z;i++)printf("%3d",bianhao[i]);for(i=0;i<Z;i++){ t=i;for(j=i+1;j<Z;j++)if(sum[t]<sum[j])t=j;if(t!=i){ k=sum[i];sum[i]=sum[t];sum[t]=k;z=bianhao[i];bianhao[i]=bianhao[t];bianhao[t]=z;}}printf("输出产品排序\n");printf("产品编号数量\n");printf("━━━━━━━━━━━━━\n");for(i=0;i<Z;i++)printf(" 产品%-7d%-1d\n",bianhao[i]+1,sum[i]);printf("\n\n\n\t\t\t按任意键返回主菜单!");getch();fclose(fp);}void f4(data *x){FILE *fp;char fname[10];int i,j,sum[Z+1]={0};system("cls");printf("您想计算哪个月?\n");printf("请输入月份:");scanf("%s",fname);strcat(fname,".dat");if((fp=fopen(fname,"rb"))==NULL){printf("不能打开文件!!!\n");exit(0);}for(i=0;i<R;i++)if(fread(x+i,sizeof(data),1,fp)!=1)printf("读入信息出错!");for(i=0;i<Z;i++)for(j=0;j<R;j++)sum[i]=sum[i]+(x+j)->shangpin[i];for(i=0;i<Z;i++)sum[Z]=sum[Z]+sum[i];printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");printf("输出统计报表如下:\n");printf("销售员代号产品代号销售之和\n");for(i=0;i<R;i++)for(j=0;j<Z;j++)printf(" 员工%-8d产品%-6d数量%-10d\n",i+1,j+1,(x+i)->shangpin[j]);printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");for(i=0;i<Z;i++){if(i==0)printf("产品%d之和%-10d 总和%-10d\n",i+1,sum[i],sum[Z]);elseprintf("产品%d之和%-10d\n",i+1,sum[i]);}printf("\n\n\n\t\t\t按任意键返回主菜单!");getch();}void main(){int i,choice;data sxy[R];printf("\n\n\n\n\n\n\t━━━━━━━━━━━━━━━━━━━━━━━━━\n");printf("\t---------------欢迎进入商品销售系统!-------------\n");printf("\t━━━━━━━━━━━━━━━━━━━━━━━━━\n");printf("\n\n\n\n\n\n\t\t\t按任意键进入主菜单!");getch();for(i=0;;i++){ system("cls");menu();printf("你想做什么?\n");printf("请选择:");scanf("%d",&choice);if(choice==5){ system("cls");printf("\n\n\n\n\n\n\t━━━━━━━━━━━━━━━━━━━━━━━━━\n\n");printf("\t---------------谢谢使用商品销售系统!-------------\n\n");printf("\t━━━━━━━━━━━━━━━━━━━━━━━━━\n\n");printf("\n\n\n\n\n\n\t\t\t按任意键退出!(^.^)");getch();break;}elseswitch(choice){ case 1 : f1(sxy); break;case 2 : f2(sxy); break;case 3 : f3(sxy); break;case 4 : f4(sxy); break;}}}三、详细设计1、功能函数f1()函数的功能:计算上个月每个人每种产品的销售额函数的入口:从main()的switch()开关结构中进入,即choice的值为1时进入该函数,打开.dat数据文件,然后提示用户通过键盘对该月的员工销售情况进行数据的读入。

c语言销售管理系统

c语言销售管理系统

C语言销售管理系统—课设满分作品带报表和折线图显示#include<stdio.h>#include<windows.h>#include<wincon.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<math.h>#define NULL 0CONSOLE_SCREEN_BUFFER_INFO csbiInfo;extern WINBASEAPI HWND WINAPI GetConsoleWindow();void input();//实现手动输入销售信息void menu();//程序菜单主界面显示void daoru(); //函数声明void seek();//销售信息查询void save();//销售信息保存void del();//销售信息删除void def();//销售信息初始化void history(people);//实现销售历史查询void clear();//实现清屏void filepath();//判断是否为默认文件位置,及询问是否要求修改文件位置void baobiao();//打印报表void txt(zx);//折线图void sxt(g1, g2, g3, g4, g5);//扇形图int ghj = 1;int file_choose = 0;//文件导入初始状态 //全局变量char filename[30] = "sell.txt";//默认文件位置int price[5] = { 2, 2, 2, 2, 2 }; //默认商品价格struct good{int num;//产品编号int f_name[10];//产品名称float price;//产品价格商品属性int date;//销售日期int sum;//销售数量} good[5]; // 定义商品属性结构体,及五个商品struct seller{int num;//销售员编号char name[8];//销售员姓名char sex;//销售员性别struct good good[5]; //五种商品} sell[4]; //定义销售员结构体,及四个销售员struct day{struct seller sell[4];} d[31];struct year{struct day d[31];} m[12];int main(int argc, char* argv[]){int x = 0;x = MessageBox(NULL, "欢迎使用销售管理系统\n作者:xx\n班级:xxxx", "欢迎", MB_YESNO);if (x == 6) menu();return 0;}/************************************************************函数名:daoru()*描述:从文件导入数据*入口参数:无;*出口参数:无;******************************************************************/void daoru(){FILE *fp;int i, day, month;if ((fp = fopen(filename, "r")) == NULL){printf("文件不存在!");return;}for (month = 0; month<12; month++)for (day = 0; day<31; day++) //把文件读取到内存中for (i = 0; i<4; i++)fscanf(fp, "%6d%6d%6d%6d%6d\n", &m[month].d[day].sell[i].good[0].sum,&m[month].d[day].sell[i].good[1].sum, &m[month].d[day].sell[i].good[2].sum,&m[month].d[day].sell[i].good[3].sum, &m[month].d[day].sell[i].good[4].sum);fclose(fp);}/************************************************************函数名:inpit()*描述:数据的手动输入*入口参数:无;*出口参数:无;******************************************************************/void input(){int i = 0, day = 0, x = 0, month = 0;filepath();daoru();//文件导入及判断printf("请输入要查找的日期如1 1即一月一日:");scanf("%d%d", &month, &day);month--;day--;////保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;printf("请输入具体要录入的商品种类1~5对应商品1-5:"); //用于查找所需的具体数据scanf("%d", &x);x--;printf("输入销售数量:");scanf("%d", &m[month].d[day].sell[i].good[x].sum);printf("完成!");save();}/************************************************************函数名:seek()*描述:查找*入口参数:无;*出口参数:无;******************************************************************/void seek(){char ch;int i = 0, j = 0, choose = 0, day = 0, t = 0, all = 0, month;filepath();daoru();printf("请输入要查找的日期如1 1即一月一日:");scanf("%d%d", &month, &day);month--;day--;//保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;printf("请选择1,当天具体商品销售情况 2,当天该销售员销售情况:");scanf("%d", &choose);switch (choose){case 1:{printf("请输入具体要查找的商品种类1~5对应商品1-5\n");scanf("%d", &t);t--;printf("该销售员这天销售本商品的数量为:%d",m[month].d[day].sell[i].good[t].sum);}break;case 2:{printf(" 产品代号\n");printf("1.牛奶 2.西瓜 3.苹果 4.白菜 5.萝卜销售之和\n");for (j = 0; j<5; j++) all += m[month].d[day].sell[i].good[j].sum;printf("%-8d%-8d%-8d%-8d%-8d%-10d\n", m[month].d[day].sell[i].good[0].sum, m[month].d[day].sell[i].good[1].sum, m[month].d[day].sell[i].good[2].sum,m[month].d[day].sell[i].good[3].sum, m[month].d[day].sell[i].good[4].sum, all);}default:break;}}/************************************************************函数名:baobiao()*描述:打印报表*入口参数:无;*出口参数:无;******************************************************************/void baobiao(){char choose = 'y';int i, j, x = 0, a = 0, b = 0, mo = 0, th = 0, partsum = 0, month = 0, sj = 0;int day = 0, alldat = 0, partallsum[5] = { 0 };int mx[4][5] = { 0 }, mxsum = 0; //用于存放明细filepath();daoru(); //读取数据及判断printf("请选择1销售数量报表 2销售额报表:");scanf("%d", &i);if (i == 1){for (i = 0; i<5; i++)price[i] = 1;//利用价格为1时计算数量}else{sj = 1;x = MessageBox(NULL, "是否使用内置价格?", "提示", MB_YESNO);if (x == 7){printf("请依次输入五种商品价格:");scanf("%d%d%d%d%d", &price[0], &price[1], &price[2], &price[3], &price[4]);//上次输入作为内置价格}}printf("输入两个月份及日期:例如3 15 12 6(前者早上到后者晚上):");scanf("%d%d%d%d", &mo, &a, &th, &b);a--;b--;//保持实际时间与数组一致mo--;th--;clear();if (sj == 0){printf("时间段:%d月%d日--%d月%d日的销售数量汇总报表\n", mo + 1, a + 1, th + 1, 1 + b);}else{printf("时间段:%d月%d日--%d月%d日的销售额汇总报表\n", mo + 1, a + 1, th + 1, 1 + b);printf("五种商品对应价格为:%d %d %d %d %d\n", price[0], price[1], price[2], price[3], price[4]);}printf("\n 产品代号及名称\n");printf("姓名编号\t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");//计算间隔整月if (th - mo>0){for (month = mo + 1; month <= (th - 1); month++){for (day = 0; day<31; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[month].d[day].sell[i].good[j].sum*price[j];//累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[month].d[day].sell[j].good[i].sum*price[i];}//统计同种商品数目,一维数组当天4个销售员同种商品数目partallsum[i] += partsum;}}}//间隔整月前一段for (day = a; day<31; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[mo].d[day].sell[i].good[j].sum*price[j]; //累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[mo].d[day].sell[j].good[i].sum*price[i];}partallsum[i] += partsum; //统计同种商品数目,一维数组当天4个销售员同种商品数目}}//间隔整月后一段for (day = 0; day <= b; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[th].d[day].sell[i].good[j].sum*price[j]; //累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[th].d[day].sell[j].good[i].sum*price[i];}partallsum[i] += partsum; //统计同种商品数目,一维数组当天4个销售员同种商品数目}}}else if ((th - mo) == 0){for (day = a; day <= b; day++){for (i = 0; i<4; i++){for (j = 0; j <= 4; j++){mx[i][j] = mx[i][j] + m[mo].d[day].sell[i].good[j].sum*price[j]; //累加计算所有他的所有销售情况}}for (i = 0; i<5; i++){for (j = 0, partsum = 0; j<4; j++){partsum += m[mo].d[day].sell[j].good[i].sum*price[i];}partallsum[i] += partsum; //统计同种商品数目,一维数组当天4个销售员同种商品数目}}}//输出报表for (i = 0; i<4; i++){printf("%-6s ", sell[i].name);//销售员姓名for (j = 0; j<5; j++){printf("\t%d", mx[i][j]);mxsum += mx[i][j];//二维数组记录销售员}mxsum = 0;//用于下次循环的初始化}//输出表格同类商品总计printf("同类商品");for (i = 0; i<5; i++){printf("\t%d", partallsum[i]);//统计同种商品数目,一维数组alldat += partallsum[i];//合计所有的商品}printf("\t合计:%d", alldat);//所有商品合计x = MessageBox(NULL, "是否打印扇形形图?", "提示", MB_YESNO);if (x == 6){clear();printf("时间段:%d月%d日--%d月%d日", mo + 1, a + 1, th + 1, 1 + b);printf(" 销售扇形图");sxt(partallsum[0], partallsum[1], partallsum[2], partallsum[3], partallsum[4]);}}/************************************************************函数名:del()*描述:删除*入口参数:无;*出口参数:无;******************************************************************/void del(){int i = 0, day = 0, x = 0, month;int choose;filepath();daoru();printf("请输入要查找日期如1月1日输入1 1:");scanf("%d%d", &month, &day);month--;day--;//保持实际时间与数组一致printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;printf("请选择1.删除该销售员整天的销售信息 2.具体商品销售信息:");scanf("%d", &choose);switch (choose){case 1:{for (x = 0; x<5; x++) m[month].d[day].sell[i].good[x].sum = 0;}break;case 2:{printf("请输入具体要删除的商品种类1~5对应商品1-5 :");x--;m[month].d[day].sell[i].good[x].sum = 0;}break;default:break;}printf("已删除指定销售员信息");save();}/************************************************************函数名:def()*描述:销售数据初始化*入口参数:无;*出口参数:无;******************************************************************/void def(){FILE *fp;int i, day, month;filepath();fp = fopen(filename, "w");for (month = 0; month<12; month++)for (day = 0; day<31; day++){for (i = 0; i<4; i++) //保存信息到文件fprintf(fp, "%-6d%-6d%-6d%-6d%-6d\n", m[month].d[day].sell[i].good[0].sum = 0, m[month].d[day].sell[i].good[1].sum = 0, m[month].d[day].sell[i].good[2].sum = 0,m[month].d[day].sell[i].good[3].sum = 0, m[month].d[day].sell[i].good[4].sum = 0);fprintf(fp, "\n");//日期间隔}printf("初始化操作完成!");fclose(fp);}/************************************************************函数名:filepath()*描述:判断及修改文件位置*入口参数:无;*出口参数:无;******************************************************************/void filepath(){char choose;int x;clear();if (file_choose == 0){x = MessageBox(NULL, "现在为默认文件\n是否使用?", "提示", MB_YESNO);if (x == 7){printf("请输入文件绝对路径:");fflush(stdin);gets(filename);file_choose = 1;//其他位置文件标志}else{x = MessageBox(NULL, "不在提醒?", "提示", MB_YESNO);if (x == 6){file_choose = 2;//其他位置文件标志printf("设置成功\n");}}}}/************************************************************函数名:save()*描述:保存数据*入口参数:无;*出口参数:无;******************************************************************/void save(people){FILE *fp;int day, i, month;fp = fopen(filename, "w");for (month = 0; month<12; month++)for (day = 0; day<31; day++){for (i = 0; i<4; i++)fprintf(fp, "%-6d%-6d%-6d%-6d%-6d\n", m[month].d[day].sell[i].good[0].sum, m[month].d[day].sell[i].good[1].sum, m[month].d[day].sell[i].good[2].sum,m[month].d[day].sell[i].good[3].sum, m[month].d[day].sell[i].good[4].sum);fprintf(fp, "\n");}//写入文件fclose(fp);}/************************************************************函数名:clear()*描述:清屏*入口参数:无;*出口参数:无;******************************************************************/void clear(){int i;HWND hwnd;HANDLE hOut;HDC hdc, hdc1;HPEN ypn, p_pn, p1_pn, p2_pn, p3_pn, p4_pn, p5_pn;HPEN hPen, hOldPen;HBRUSH hBrush, hOldBrush, hbr;COORD pos = { 1, 4 };hwnd = GetConsoleWindow();hdc = GetDC(hwnd);hOut = GetStdHandle(STD_OUTPUT_HANDLE);hbr = CreateSolidBrush(RGB(0, 0, 0));SelectObject(hdc, hbr);Rectangle(hdc, 0, 65, 670, 470);SetConsoleCursorPosition(hOut, pos);for (i = 0; i<19; i++)printf(" \n ");SetConsoleCursorPosition(hOut, pos);Rectangle(hdc, 0, 65, 670, 470);ReleaseDC(hwnd, hdc);}/************************************************************函数名:history()*描述:历史销售查询*入口参数:people;*出口参数:无;******************************************************************/void history(people){int i, j, x = 0, a = 0, b = 0, mo = 0, th = 0, partsum = 0, month = 0;int day = 0, sumall = 0, more = 1;int mx[6] = { 0 }; //用于存放明细char choose;filepath();daoru();clear();printf("输入两个月份及日期:例如7 15 12 6(前者早上到后者晚上):");scanf("%d%d%d%d", &mo, &a, &th, &b);a--;b--;//保持实际时间与数组一致mo--;th--;printf("销售员:%s 时间段:%d月%d日--%d月%d日\n", sell[people].name, mo + 1, a + 1, th +1, 1 + b);printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");if (th - mo>0){//间隔整月前一段for (day = a; day<31; day++){if (more >= 16){x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");}else goto end;}printf("%d月%d日 ", mo + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[mo].d[day].sell[people].good[j].sum;printf("\t%d", m[mo].d[day].sell[people].good[j].sum);mx[j] += m[mo].d[day].sell[people].good[j].sum;}printf("\t%d\n", sumall);more++;mx[5] += sumall;sumall = 0;}//计算间隔整月for (month = mo + 1; month <= (th - 1); month++){for (day = 0; day<31; day++){if (more >= 16){x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");more = 0;}else goto end;}printf("\n%d月%d日 ", month + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[month].d[day].sell[people].good[j].sum;printf("\t%d", m[month].d[day].sell[people].good[j].sum);mx[j] += m[month].d[day].sell[people].good[j].sum;}printf("\t%d", sumall);more++;mx[5] += sumall;sumall = 0;}}//间隔整月后一段for (day = 0; day <= b; day++){{x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");more = 0;}else goto end;}printf("\n%d月%d日 ", th + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[th].d[day].sell[people].good[j].sum;printf("\t%d", m[th].d[day].sell[people].good[j].sum);mx[j] += m[th].d[day].sell[people].good[j].sum;}printf("\t%d", sumall);more++;mx[5] += sumall;sumall = 0;}}//一个月内时间段else if ((th - mo) == 0){for (day = a; day <= b; day++){if (more >= 18){x = MessageBox(NULL, "是否显示更多?", "提示", MB_YESNO);if (x == 6){clear();printf("日期 \t1.牛奶\t2.西瓜\t3.苹果\t4.白菜\t5.萝卜\t销售之和\n");more = 0;}else goto end;}printf("%d月%d日 ", mo + 1, day + 1);for (j = 0; j <= 4; j++){sumall += m[mo].d[day].sell[people].good[j].sum;printf("\t%d", m[mo].d[day].sell[people].good[j].sum);mx[j] += m[mo].d[day].sell[people].good[j].sum;}printf("\t%d\n", sumall);more++;mx[5] += sumall;sumall = 0;}}end:printf("\n合计: ");for (j = 0; j <= 4; j++){printf("\t%d", mx[j]);}printf("\t总计:%d\n完成!", mx[5]);x = MessageBox(NULL, "是否打印条形图?", "提示", MB_YESNO);if (x == 6){clear();printf("销售员:%s 时间段:%d月%d日--%d月%d日\n", sell[people].name, mo + 1, a + 1, th + 1, 1 + b);printf("\n\n\n\n 历史销售统计条形图");for (j = 0; j <= 4; j++){txt(mx[j]);}}x = MessageBox(NULL, "是否打印扇形形图?", "提示", MB_YESNO);if (x == 6){clear();printf("销售员:%s 时间段:%d月%d日--%d月%d日", sell[people].name, mo + 1, a + 1, th + 1, 1 + b);printf(" \t销售扇形图");sxt(mx[0], mx[1], mx[2], mx[3], mx[4]);}}/************************************************************函数名:txt(zx)*描述:绘制折线图*入口参数:zx;*出口参数:无;******************************************************************/void txt(zx){static int i = 1;float sum;HWND hwnd;//窗口句柄HANDLE hOut;HDC hdc, hdc1;HPEN ypn, p_pn, p1_pn, p2_pn, p3_pn, p4_pn, p5_pn;HPEN hPen, hOldPen; //画笔HBRUSH hBrush, hOldBrush; //画刷hwnd = GetConsoleWindow();hdc = GetDC(hwnd);hOut = GetStdHandle(STD_OUTPUT_HANDLE);//得到标准的输出设备句柄(显示器等) ypn = CreatePen(PS_SOLID, 5, RGB(0, 200, 255));p_pn = CreatePen(PS_DASHDOTDOT, 1, RGB(255, 0, 0));p1_pn = CreatePen(PS_SOLID, 15, RGB(255, 0, 0));p2_pn = CreatePen(PS_SOLID, 15, RGB(0, 255, 0));p3_pn = CreatePen(PS_SOLID, 15, RGB(0, 0, 255));p4_pn = CreatePen(PS_SOLID, 15, RGB(255, 255, 0));p5_pn = CreatePen(PS_SOLID, 15, RGB(255, 0, 255));if (i == 1){hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0)); //画笔hOldPen = (HPEN)SelectObject(hdc, hPen);hBrush = CreateHatchBrush(HS_CROSS, RGB(0, 100, 0)); //方格刷hOldBrush = (HBRUSH)SelectObject(hdc, hBrush);RoundRect(hdc, 20, 170, 530, 350, 5, 5); //画矩形}if (i == 1){SelectObject(hdc, p1_pn);}else if (i == 2){SelectObject(hdc, p2_pn);}else if (i == 3){SelectObject(hdc, p3_pn);}else if (i == 4){SelectObject(hdc, p4_pn);}else SelectObject(hdc, p5_pn);MoveToEx(hdc, i * 100, 344, NULL);LineTo(hdc, i * 100, 350 - zx * 30);SelectObject(hdc, p_pn);LineTo(hdc, 20, 350 - zx * 30);i++;SetTextColor(hdc, RGB(255, 0, 0));////设颜色TextOut(hdc, 1, 320, TEXT("1"), 1);//输出文本TextOut(hdc, 2, 290, TEXT("2"), 1);//输出文本TextOut(hdc, 2, 260, TEXT("3"), 1);//输出文本TextOut(hdc, 2, 230, TEXT("4"), 1);//输出文本TextOut(hdc, 2, 200, TEXT("5"), 1);//输出文本TextOut(hdc, 85, 360, TEXT("牛奶"), 4);//输出文本TextOut(hdc, 185, 360, TEXT("西瓜"), 4);//输出文本TextOut(hdc, 285, 360, TEXT("苹果"), 4);//输出文本TextOut(hdc, 385, 360, TEXT("白菜"), 4);//输出文本TextOut(hdc, 485, 360, TEXT("萝卜"), 4);//输出文本SelectObject(hdc, ypn);MoveToEx(hdc, 20, 170, NULL);LineTo(hdc, 20, 350);LineTo(hdc, 530, 350);ReleaseDC(hwnd, hdc);ReleaseDC(hwnd, hdc1);}/************************************************************函数名:sxt(zx)*描述:绘制扇形图*入口参数:g1,g2,g3,g4,g5;//五种商品数量*出口参数:无;******************************************************************/void sxt(g1, g2, g3, g4, g5){int sellsum = 0;//定义弧度统计总数量int time = 0, x = 0, y = 0, radian = 0;//int ex, ey, radius;//定义圆心半径int i, a, b, c, d, cx = 3;int smx1 = 450, smx2 = 500, smx3 = 510, smy = 175;//图解说明位置COORD pos = { 0, 5 };HWND hwnd;HANDLE hOut;HDC hdc;HPEN gpn, rpn, bpn, blue, yellow;hwnd = GetConsoleWindow();hdc = GetDC(hwnd);hOut = GetStdHandle(STD_OUTPUT_HANDLE);//得到标准的输出设备句柄(显示器等)rpn = CreatePen(PS_SOLID, cx, RGB(255, 0, 0));blue = CreatePen(PS_SOLID, cx, RGB(0, 0, 255));bpn = CreatePen(PS_SOLID, cx, RGB(255, 255, 255));gpn = CreatePen(PS_SOLID, cx, RGB(0, 255, 0));yellow = CreatePen(PS_SOLID, cx, RGB(255, 255, 0));sellsum = g1 + g2 + g3 + g4 + g5;a = g1 * 360 / sellsum;b = (g1 + g2) * 360 / sellsum;c = (g1 + g2 + g3) * 360 / sellsum;d = (g1 + g2 + g3 + g4) * 360 / sellsum;radius = 140;//半径ex = 240;ey = 240;time = 1;SelectObject(hdc, gpn);while (radian <= a){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, blue);while (radian <= b){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey + 1, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, rpn);while (radian <= c){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, bpn);while (radian <= d){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, yellow);while (radian <= 359){y = radius*sin(radian / 180.0*3.14);x = radius*cos(radian / 180.0*3.14);MoveToEx(hdc, ex, ey - 2, NULL);LineTo(hdc, ex + x, ey + y);radian++;Sleep(time);}SelectObject(hdc, gpn);MoveToEx(hdc, smx1, smy, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("牛奶"), 4);//输出文本SelectObject(hdc, blue);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("西瓜"), 4);//输出文本SelectObject(hdc, rpn);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("苹果"), 4);//输出文本SelectObject(hdc, bpn);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("白菜"), 4);//输出文本SelectObject(hdc, yellow);MoveToEx(hdc, smx1, smy += 40, NULL);LineTo(hdc, smx2, smy);TextOut(hdc, smx3, smy, TEXT("萝卜"), 4);//输出文本TextOut(hdc, smx3, smy, TEXT("萝卜"), 4);//输出文本SetConsoleCursorPosition(hOut, pos); // 设置光标位置printf("牛奶:%d %%%2.1f西瓜:%d %%%2.1f苹果:%d %%%2.1f白菜:%d %%%2.1f萝卜:%d %%%2.1f", g1, g1*100.0 / sellsum, g2, g2*100.0 / sellsum, g3, g3*100.0 / sellsum, g4, g4*100.0 / sellsum, g5, g5*100.0 / sellsum);ReleaseDC(hwnd, hdc);}/************************************************************函数名:menu()*描述:显示菜单*入口参数:无;*出口参数:无;******************************************************************/void menu(){int d1, d2, d, x, xy = 0, i, k;struct re{int top;int left;int right;int bottom;} rt[7];HWND hwnd;//窗口句柄HDC hdc, dc;//画图设备HBRUSH hbr;COORD pos3_1 = { 1, 4 }, pos2_1 = { 1, 4 }, pos2_2 = { 1, 5 }, pos2_3 = { 1, 6 }, pos2_4= { 1, 7 };INPUT_RECORD mouseRec;DWORD state = 0, res = 0;POINT pt;HPEN pn;HANDLE hOut, hIn;COLORREF c;//颜色c = RGB(0, 255, 0);hbr = CreateSolidBrush(c);hwnd = GetConsoleWindow();//得到控制台窗口句柄hdc = GetDC(hwnd); //得到画图设备句柄dc = GetDC(hwnd);//画刷hbr = CreateSolidBrush(RGB(255, 0, 0));SelectObject(dc, hbr);for (rt[1].left = 20, i = 2; i <= 6; i++) rt[i].left = rt[i - 1].left + 110;for (rt[1].right = 82, i = 2; i <= 6; i++) rt[i].right = rt[i - 1].right + 112; //绘制窗口for (i = 0; i <= 6; i++) rt[i].top = 40;for (i = 0; i <= 6; i++) rt[i].bottom = 60;strcpy(sell[0].name, "1 xx");sell[0].sex = 'M';strcpy(sell[1].name, "2xx");sell[1].sex = 'M';strcpy(sell[2].name, "3xx");sell[2].sex = 'M'; //初始化销售员姓名strcpy(sell[3].name, "4xx");sell[3].sex = 'M';hOut = GetStdHandle(STD_OUTPUT_HANDLE);//得到标准的输出设备句柄(显示器等)hIn = GetStdHandle(STD_INPUT_HANDLE);//得到标准的输入设备句柄(鼠标、键盘等)pn = CreatePen(PS_SOLID, 1, RGB(255, 0, 255));GetClientRect(hwnd, &rt);//得到控制台客户区的大小SelectObject(hdc, pn);//选画笔SetBkMode(hdc, TRANSPARENT);//设置背景保持方式MoveToEx(hdc, 1, 35, NULL);LineTo(hdc, 650, 35);LineTo(hdc, 650, 62);LineTo(hdc, 1, 62);LineTo(hdc, 1, 35);hbr = CreateSolidBrush(c);SelectObject(dc, hbr);for (i = 1; i <= 6; i++)Rectangle(dc, rt[i].left, rt[i].top, rt[i].right, rt[i].bottom);SetTextColor(hdc, RGB(255, 255, 0));////设颜色TextOut(hdc, 280, 10, TEXT("销售管理系统"), 12);//输出文本SetTextColor(hdc, RGB(255, 0, 0));////设颜色TextOut(hdc, 20, 40, TEXT("数据导入"), 8);//输出文本TextOut(hdc, 130, 40, TEXT(" 初始化"), 8);//输出文本TextOut(hdc, 240, 40, TEXT("数据查询"), 8);//输出文本TextOut(hdc, 350, 40, TEXT("删除修改"), 8);//输出文本TextOut(hdc, 460, 40, TEXT("打印报表"), 8);//输出文本TextOut(hdc, 570, 40, TEXT(" 退出"), 8);//输出文本TextOut(hdc, 8, 64, TEXT("若首次使用先点击初始化"), 22);//输出文本ShowWindow(hwnd, SW_SHOW);for (;;) // 循环{//读取输入的信息SetConsoleTextAttribute(hOut, 10);ReadConsoleInput(hIn, &mouseRec, 1, &res);Sleep(100);if (mouseRec.EventType == MOUSE_EVENT){//if (mouseRec.Event.MouseEvent.dwEventFlags == DOUBLE_CLICK) break; // 双击鼠标退出循环if (mouseRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED){GetCursorPos(&pt);ScreenToClient(hwnd, &pt);if (pt.x>rt[1].left && pt.x<rt[1].right &&pt.y>rt[1].top &&pt.y<rt[1].bottom){clear();printf("输入数据方式:1手动输入,2文件导入其他:返回");scanf("%d", &x);if (x == 1) input();else if (x == 2){printf("请输入要导入的文件及其位置:");fflush(stdin);gets(filename);daoru();file_choose = 1;//指定文件导入成功的标志printf("导入成功");}continue;}else if (pt.x>rt[2].left && pt.x<rt[2].right &&pt.y>rt[2].top &&pt.y<rt[2].bottom){clear();def();continue;}else if (pt.x>rt[3].left && pt.x<rt[3].right &&pt.y>rt[3].top &&pt.y<rt[3].bottom){clear();printf("输入数据查询方式:1具体查询,2报表输出 ,3历史查询,其他:返回:");scanf("%d", &x);if (x == 1) seek();if (x == 2) baobiao();if (x == 3){printf("请输入销售人员编号:\n1:xx 2:xx 3:xx 4:xx:");scanf("%d", &i);i--;history(i);};continue;}else if (pt.x>rt[4].left && pt.x<rt[4].right &&pt.y>rt[4].top && pt.y<rt[4].bottom){clear();printf("数据修改:1.删除 2.修改,其他:返回:");scanf("%d", &x);if (x == 1) del();else if (x == 2) input();continue;}else if (pt.x>rt[5].left && pt.x<rt[5].right &&pt.y>rt[5].top && pt.y<rt[5].bottom){clear();baobiao();continue;}else if (pt.x>rt[6].left && pt.x<rt[6].right &&pt.y>rt[6].top && pt.y<rt[6].bottom){x = MessageBox(NULL, "确定退出?", "是否退出", MB_YESNO);if (x == 6)break;if (x = 7)continue;}};}}ReleaseDC(hwnd, hdc);}。

c语言-销售管理系统报告书.doc

c语言-销售管理系统报告书.doc

C语言课程设计报告一、题目设计一个C语言程序(销售管理系统)二、内容1、每一记录包括销售员的编号、产品编号、产品当天的销售额、上个月每个人每种产品的销售额、每种产品的总销售额。

2、输入功能:可以完成记录的输入3、显示功能:完成所要求员工的记录的显示4、查找功能:完成按员工编号查找员工记录,并显示。

5、排序功能: 按销售额对销售员进行排序, 对这些产品按从高到底的顺序输出排序结果。

6、保存功能:将员工记录保存在自定义的文件中。

三、设计要求1、整个系统均用C语言实现;2、利用指针、链表来实现员工销售情况的数据结构设计3、系统具有输入、显示、查询、删除、排序、插入、保存、读取基本功能4、系统的各个功能模块都用函数的形式来实现。

5、可以将员工的销售情况从文件当中读取出来。

具体要求:某公司有四个销售员(编号:1-4),负责销售五种产品(编号1-5)。

每个销售员都将当天出售的每种产品各写一张便条交上来。

每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品当天的销售额每位销售员每天的可能上交0-5张便条。

假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行如下处理:主要功能:1、计算上个月每个人每种产品的销售额。

2、按销售额对销售员进行排序,输出排序结果(销售员代号)3、统计每种产品的总销售额,对这些产品按从高到底的顺序输出排序结果(需输出产品的代号和销售额)4、输出统计报表四、总体设计1、程序设计组成框图`五、详细设计1、功能函数f1()——本函数由梁俊贤设计函数的功能:计算上个月每个人每种产品的销售额函数的入口:从main()的switch()开关结构中进入,即choice的值为1时进入该函数,打开.dat数据文件,然后提示用户通过键盘对该月的员工销售情况进行数据的读入。

函数调用关系:被主函数调用。

由switch()开关结构中进入,并在文中无返回值的空值void函数。

函数的出口:当程序执行提示语“printf("继续输入请按回车,结束输入请按esc\n");”的时候,对用户的操作进行提示,如果用户选择了按“ESC”键,则用户选择了结束数据的录入,将结束该函数,而执行主函数main()中“break;”跳出switch()开关函数,继续执行for循环结构。

c语言课程设计服装销售系统

c语言课程设计服装销售系统

c语言课程设计服装销售系统一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和编程技巧,通过编写程序实现一个简单的服装销售系统。

具体来说,知识目标包括掌握C语言的数据类型、运算符、控制结构、函数等基本概念;技能目标包括能够运用C语言编写简单的程序,解决实际问题;情感态度价值观目标包括培养学生的编程兴趣,提高学生解决问题的能力。

二、教学内容本节课的教学内容主要包括C语言的基本语法和编程技巧。

首先,介绍C语言的数据类型、运算符和控制结构,让学生了解C语言的基本构成;其次,讲解函数的定义和调用,使学生掌握如何代码;最后,通过一个简单的服装销售系统实例,让学生动手实践,巩固所学知识。

三、教学方法为了激发学生的学习兴趣和主动性,本节课采用多种教学方法。

首先,采用讲授法,系统地讲解C语言的基本语法和编程技巧;其次,运用讨论法,让学生在课堂上相互交流、探讨,提高解决问题的能力;接着,采用案例分析法,分析实际编程中的问题和解决方案,使学生能够将理论知识运用到实际中;最后,通过实验法,让学生动手编写程序,培养编程实践能力。

四、教学资源为了支持教学内容和教学方法的实施,本节课准备了一系列教学资源。

教材方面,选用《C程序设计》作为主教材,辅助以《C语言编程实例》等参考书;多媒体资料方面,制作了详细的PPT课件,以便学生更好地理解和掌握知识;实验设备方面,确保每个学生都能 access到计算机,进行编程实践。

五、教学评估本节课的教学评估采取多元化方式,以全面、客观地评价学生的学习成果。

评估方式包括平时表现、作业和考试三个部分。

平时表现主要考察学生的课堂参与度、提问回答和团队协作等方面;作业则通过布置相关的编程练习,检验学生对知识的掌握程度;考试则是对学生整体学习成果的检验,包括理论知识和编程实践。

评估过程将保持公正、透明,以确保每位学生的权益。

六、教学安排本节课的教学安排将按照以下计划进行。

课程共分为16周,每周2课时,共计32课时。

商品销售c语言课程设计

商品销售c语言课程设计

商品销售 c语言课程设计一、课程目标知识目标:1. 理解C语言在商品销售管理系统中的应用,掌握相关数据结构(如结构体、数组、链表)的使用;2. 学会使用C语言实现商品信息的增删改查功能,了解文件操作在商品数据存储中的应用;3. 了解模块化编程思想,掌握函数的定义、调用及参数传递。

技能目标:1. 培养学生运用C语言编写商品销售管理系统程序的能力,具备解决实际问题的编程技能;2. 培养学生分析问题、设计算法、编写代码、调试程序的能力;3. 提高学生的团队协作能力,学会与他人共同完成一个项目。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习积极性,增强自信心;2. 培养学生认真负责的工作态度,养成良好的编程习惯;3. 通过项目实践,使学生认识到编程在解决实际问题中的价值,提高社会责任感。

分析课程性质、学生特点和教学要求,本课程目标旨在使学生掌握C语言在商品销售管理系统中的应用,培养其编程技能和实际解决问题的能力。

课程目标具体、可衡量,以便学生和教师在教学过程中能够明确课程预期成果,并为后续的教学设计和评估提供依据。

二、教学内容1. C语言基础回顾:数据类型、变量、运算符、控制结构(条件语句、循环语句);2. 函数:函数的定义、调用、参数传递、递归;3. 数据结构:结构体、数组、链表;4. 文件操作:文件的打开、关闭、读写、定位;5. 商品销售管理系统功能设计:- 商品信息的增删改查功能;- 销售记录的录入与查询;- 库存管理;- 用户登录与权限管理。

6. 系统实现:模块化编程、函数封装、代码优化;7. 项目实践:分组合作完成商品销售管理系统的设计与实现,并进行测试与调试。

教学内容按照教学大纲的安排,从C语言基础知识回顾开始,逐步深入到函数、数据结构、文件操作等高级内容。

在教学过程中,结合教材相关章节,让学生掌握商品销售管理系统的功能设计及实现方法。

教学内容科学、系统,符合学生的认知发展规律,确保学生能够学以致用,提高实际编程能力。

图书销售管理系统c课程设计

图书销售管理系统c课程设计

图书销售管理系统c 课程设计一、课程目标知识目标:1. 学生能理解并掌握图书销售管理系统的基本概念和功能模块。

2. 学生能运用数据库知识,设计并实现图书销售管理系统中的数据存储方案。

3. 学生了解并掌握C语言编程技巧,运用结构体、文件操作等知识实现图书销售管理系统的功能。

技能目标:1. 学生能够运用所学知识,设计出结构清晰、功能完善的图书销售管理系统。

2. 学生通过实际操作,提高问题分析和程序编写的能力。

3. 学生能够熟练使用C语言编程工具,进行程序调试和优化。

情感态度价值观目标:1. 学生培养对计算机编程的兴趣和热情,增强学习自信心。

2. 学生通过团队协作,培养沟通能力和团队精神,感受合作的重要性。

3. 学生在课程学习过程中,认识到编程知识在实际生活中的应用价值,增强实践意识。

分析课程性质、学生特点和教学要求,本课程旨在让学生通过设计图书销售管理系统,将所学知识应用于实际项目中,提高编程实践能力和问题解决能力。

课程目标具体、可衡量,便于学生和教师在教学过程中对照评估,确保教学效果。

二、教学内容1. 数据库基础:讲解数据库的基本概念,如表、字段、记录等,以及简单的SQL语句,如SELECT、INSERT、UPDATE和DELETE。

教材章节:第三章 数据库基础2. C语言编程技巧:回顾结构体、函数、文件操作等C语言基础知识,重点讲解如何将这些知识应用于项目开发中。

教材章节:第二章 C语言基础3. 图书销售管理系统功能模块设计:分析系统需求,设计各功能模块,如图书入库、销售、查询、库存管理等。

教材章节:第五章 管理信息系统4. 程序设计:指导学生运用C语言编程,实现图书销售管理系统的各个功能模块。

教材章节:第六章 C语言编程实践5. 系统调试与优化:教授学生如何进行程序调试,找出并修复bug,提高系统性能。

教材章节:第七章 程序调试与优化6. 项目展示与评价:组织学生进行项目展示,互相评价,总结经验教训。

c语言课程设计(销售管理系统)【完整版】

c语言课程设计(销售管理系统)【完整版】

c语言课程设计(销售管理系统)【完整版】
本管理系统实现了销售管理,可以完成客户管理、商品管理以及订单管理等功能,为管理者提供更多便利。

管理系统由主菜单、客户管理、商品管理、订单管理等模块组成,主菜单模块显示并实现了上述以及其他所有模块,可以方便快捷地进行相关操作。

客户管理模块包括新建客户信息、删除客户信息、更新客户信息、查询客户信息等功能,可以快速有效地管理客户信息;
订单管理模块包括新建订单、删除订单、更新订单、查询订单等功能,能够轻松地完成销售订单的管理。

另外,系统还采用了文件存储,只要上次保存数据正确,就可以实现每次登录之后的自动加载,让操作更加简单快捷。

系统采用C语言开发,使用字符操作实现图形界面;结构体链表数据结构实现数据存储与处理;文件存储实现数据加载与保存;采用函数式编程实现功能模块;不断尝试性地增加改进系统,以确保系统运行更加稳定可靠。

本项目以C语言编程实现对销售管理系统的全面而完整的管理,能满足日常销售管理的需求;同时,丰富的图形界面,实用的功能模块和可靠的文件存储,使系统操作变得更为简单快捷。

c语言课程设计销售管理系统

c语言课程设计销售管理系统

c语言课程设计销售管理系统一、教学目标本章节的教学目标分为三个部分:知识目标、技能目标和情感态度价值观目标。

1.知识目标:通过本章节的学习,学生需要掌握销售管理系统的概念、原理和基本框架,了解C语言在销售管理系统中的运用。

2.技能目标:学生能够运用C语言编写简单的销售管理程序,具备独立分析和解决问题的能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生运用C语言解决实际问题的意识。

二、教学内容本章节的教学内容主要包括销售管理系统的概念、原理、基本框架及其在C语言中的应用。

具体包括以下几个部分:1.销售管理系统的概念和原理:介绍销售管理系统的定义、功能、特点和基本原理。

2.销售管理系统的基本框架:讲解销售管理系统的基本框架,包括数据结构、算法和程序设计。

3.C语言在销售管理系统中的应用:通过实例分析,展示如何使用C语言编写销售管理程序。

三、教学方法为了提高教学效果,本章节将采用多种教学方法相结合的方式进行教学。

具体包括以下几种方法:1.讲授法:讲解销售管理系统的概念、原理和基本框架。

2.案例分析法:分析实际销售管理系统的案例,让学生了解C语言在销售管理系统中的应用。

3.实验法:安排课后实验,让学生动手编写销售管理程序,巩固所学知识。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供基础知识。

2.参考书:推荐学生阅读与销售管理系统相关的参考书籍,拓宽知识面。

3.多媒体资料:制作PPT、教学视频等多媒体资料,提高课堂趣味性。

4.实验设备:确保每位学生都能接触到计算机,进行课后实验。

五、教学评估本章节的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

评估方式包括:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。

2.作业:布置与销售管理系统相关的编程作业,评估学生的编程能力和理解程度。

C语言课程设计(图书销售管理系统)

C语言课程设计(图书销售管理系统)

HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言程序设计课程设计报告课设题目:图书销售管理系统专业:电气工程及其自动化班级: KT1223-1姓名:********成绩:完成日期: 2012年12月28日-2013年1月11日指导教师: ************目录目录1.课程设计目的 (2)2.需求分析 (2)2.1要求 (2)2.2任务描述 (2)2.3运行环境 (3)2.4开发工具 (3)3.总体设计 (3)3.1系统流设计 (3)3.2系统模块设计 (4)4.详细设计 (5)4.1数据结构设计 (5)4.2模块接口设计 (6)4.3 以下是几个主要模块的流程图: (7)5.运行结果 (111)5.1主菜单界面: (111)5.2图书信息查询界面: (122)5.3:图书销售界面..................................................................... 错误!未定义书签。

45.4图书信息整体浏览界面:.................................................... 错误!未定义书签。

95.5图书信息删除界面:.............................................................. 错误!未定义书签。

5.6图书信息保存界面: (22)5.7 退出程序: (30)5.8图书信息新建界面: (30)5.9修改密码 (23)6.程序调试与测试 (23)6.1程序调试 (23)6.2程序测试 (27)7.问题与不足 (30)8.建议 (31)9.编程体会 (31)10.程序源代码: (31)11.参考文献 (56)12.用户使用手册 (57)1.课程设计目的1)通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。

c课程设计销售管理系统

c课程设计销售管理系统

c 课程设计销售管理系统一、教学目标本课程的目标是使学生掌握销售管理系统的基本概念、原理和应用,培养学生分析和解决销售管理相关问题的能力。

具体的学习目标如下:1.知识目标:(1)理解销售管理系统的定义、功能和作用;(2)掌握销售管理系统的关键模块,如客户管理、销售机会管理、销售预测等;(3)了解销售管理系统的实施方法和注意事项。

2.技能目标:(1)能够熟练操作销售管理系统,进行日常销售管理活动;(2)具备销售数据分析的能力,为销售决策提供支持;(3)能够根据企业需求,设计和优化销售管理流程。

3.情感态度价值观目标:(1)培养学生对销售管理工作的认同感和责任心;(2)培养学生团队协作、创新和持续学习的意识;(3)培养学生遵守职业道德,诚实守信的原则。

二、教学内容本课程的教学内容主要包括以下几个部分:1.销售管理系统概述:介绍销售管理系统的定义、功能、作用和发展历程。

2.销售管理系统的关键模块:详细讲解客户管理、销售机会管理、销售预测等模块的内容和操作方法。

3.销售管理系统的实施:介绍销售管理系统实施的方法、步骤和注意事项,以及如何评估实施效果。

4.销售数据分析:讲解如何运用销售管理系统进行数据分析,为销售决策提供依据。

5.销售管理流程设计:介绍如何根据企业需求设计和优化销售管理流程,提高销售效率。

三、教学方法为了提高教学效果,本课程将采用以下几种教学方法:1.讲授法:通过讲解销售管理系统的基本概念、原理和应用,使学生掌握相关知识。

2.案例分析法:通过分析实际案例,使学生了解销售管理系统的实施方法和注意事项。

3.讨论法:学生进行小组讨论,培养学生的团队协作能力和创新意识。

4.实验法:让学生动手操作销售管理系统,提高学生的实际操作能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的销售管理系统教材,为学生提供系统性的知识学习。

2.参考书:提供相关的参考书籍,丰富学生的知识体系。

汽车销售管理系统c课程设计

汽车销售管理系统c课程设计

汽车销售管理系统 c 课程设计一、课程目标知识目标:1. 让学生理解汽车销售管理系统的基本概念、功能模块和业务流程;2. 掌握数据库设计原则,能运用数据库技术进行汽车销售管理系统的数据存储与查询;3. 掌握面向对象编程思想,运用编程语言实现汽车销售管理系统的功能。

技能目标:1. 培养学生运用数据库技术进行数据分析和处理的能力;2. 培养学生运用编程语言进行系统开发的能力;3. 培养学生团队协作、沟通表达的能力,能在项目中进行有效分工与协作。

情感态度价值观目标:1. 激发学生对计算机科学的兴趣,培养其探索精神和创新意识;2. 培养学生关注社会问题,学会将所学知识应用于实际生活,提高解决实际问题的能力;3. 培养学生的职业道德观念,使其认识到诚信、责任、尊重和合作的重要性。

分析课程性质、学生特点和教学要求,本课程旨在通过汽车销售管理系统项目的设计与实现,让学生将所学理论知识与实际应用相结合,提高学生的实际操作能力和团队协作能力。

课程目标具体、可衡量,便于教学设计和评估。

在教学过程中,教师需关注学生的学习进度,及时调整教学策略,确保学生能够达到预期的学习成果。

二、教学内容1. 汽车销售管理系统概述:介绍汽车销售管理系统的基本概念、功能模块、业务流程及在实际中的应用。

相关教材章节:第一章 汽车销售管理系统概述2. 数据库设计:讲解数据库设计原则,指导学生进行汽车销售管理系统数据库的设计与实现。

相关教材章节:第二章 数据库设计3. 编程语言基础:复习面向对象编程思想,讲解编程语言在汽车销售管理系统中的应用。

相关教材章节:第三章 编程语言基础4. 系统功能实现:分析汽车销售管理系统的功能需求,指导学生运用编程语言实现各功能模块。

相关教材章节:第四章 系统功能实现5. 系统测试与优化:介绍系统测试方法,指导学生进行汽车销售管理系统的测试与优化。

相关教材章节:第五章 系统测试与优化6. 项目实践:分组进行项目实践,培养学生团队协作能力和实际操作能力。

销售管理系统程序设计——C语言

销售管理系统程序设计——C语言

销售管理系统程序设计一, 题目要求某公司有四个销售员(编号: 1-4), 负责销售五种产品(编号: 1-5)。

每个销售员都将当天出售的每种产品各写一张便条交上来。

每张便条包含内容: 1)销售员的代号2)产品的代号3)这种产品的当天的销售额每位销售员每天可能上缴0-5张便条。

假设, 收集到了上个月的所有便条, 编写一个处理系统, 读取上个月的销售情况(自己设定), 进行如下处理。

①计算上个月每个人每种产品的销售额。

②按销售额对销售员进行排序, 输出排序结果(销售员代号)③统计每种产品的总销售额, 对这些产品按从高到底的顺序, 输出排序结果(需输出产品的代号和销售额)④输出统计报表1)二, 需求分析2)最好采用结构体数组和文件系统3)结构体成员包括销售员代号, 产品代号, 销售额4)排序算法参照冒泡法或选择排序算法等5)输出统计报表形式按照题目给出的形式在屏幕上相应位置输出三, 总体设计基本流程图如下:模块划分:整个运行系统流程: 输入, 运算, 排序, 输出, 储存首先输入便条数据, 自动创建文本文档, 储存数据然后再运算, 主要为排序, 既而输出数据, 储存。

四, 详细设计具体步骤:1: 声明结构体部分【程序如下】#include<stdio.h>#include<conio.h>#define max 155struct goods {int p_num;int num;int g_num;} s[max];struct persons {int num[7];}p[6],w;2: 主函数部分【程序如下】int n;/*******全局变量********/main(){int input(), output1(),output2(),output3(),output4();int arg(),mulu();int save();puts("\t\t中国地质大学\n");puts("\t\t\t C 语言程序设计\n");puts("\t\t\t资源勘查工程李晓峰021081班\n\n");puts("\t\t********************MENU********************");printf(" \n\n\n \*******销售管理系统********\n\n\n");printf("请输入销售信息:(按-1结束)\n\n销售员代号1--4 产品代号1--5 销售额\n");for(n=0;n<max;n++){scanf("%d",&s[n].p_num);if(s[n].p_num==(-1))break;elsescanf("%d%d",&s[n].g_num,&s[n].num);}mulu();}3: 目录部分【程序如下】int mulu(){ int choice;arg();do{printf(" \n\n\n \t\t\t *******销售管理系统********\n\n\n");printf(" 1.计算上个月每个人每种产品的销售额\n\n");printf("2.按销售额对销售员进行排序, 输出排序结果(销售员代号)\n\n");printf(" 3.统计每种产品的总销售额, 对这些产品按从高到底的顺序, 输出排序结果\n\n");printf("4.输出统计报表\n\n");printf("0.退出系统\n\n");printf("请选择(0-4):");scanf("%d",&choice);switch(choice){case 1: output1();break;case 2: output2();break;case 3: output3();break;case 4: output4();break;case 0: exit(0);}}while(choice!=0);}int arg(){ int k,a,j;for(k=1;k<=5;k++){ p[0].num[k]=k;for(a=1;a<=6;a++)p[k].num[a]=0;}for(k=1;k<=4;k++)p[k].num[0]=k;for(k=1;k<=4;k++)for(a=1;a<=5;a++)for(j=0;j<n;j++)if(s[j].p_num==k && s[j].g_num==a)p[k].num[a]=p[k].num[a]+s[j].num;/*************每种产品的销售额*****************/for(a=1;a<=5;a++)for(k=1;k<=4;k++)p[5].num[a]=p[5].num[a]+p[k].num[a];/*************每个人的销售额*************/for(k=1;k<=5;k++)for(a=1;a<=5;a++)p[k].num[6]=p[k].num[6]+p[k].num[a];}4: 模块一:计算上个月每个人每种产品的销售额【程序如下】int output1(){ int i,k;printf("******计算上个月每个人每种产品的销售额*******"); for(k=1;k<=5;k++)printf("%d\t",p[0].num[k]);printf("\n\n");for(i=1;i<=4;i++){for(k=0;k<=5;k++)printf("%d\t",p[i].num[k]);printf("\n\n");}mulu();}5: 模块二:该模块按销售额对销售员进行排序, 输出排序结果(销售员代号)分析:调用函数, 采用选择法对每个销售员的销售情况进行统计输出【程序如下】int output2(){int i,r,j;for(i=1;i<4;++i){r=i;for(j=i+1;j<=4;j++)if(p[r].num[6]<p[j].num[6])r=j;if(r!=i){ w=p[i];p[i]=p[r];p[r]=w;}}printf("*********按销售额对销售员排序情况如下**********\n\n");printf("销售员代码\t销售总额\n");for(i=1;i<=4;i++)printf(" %d\t\t%d\n",p[i].num[0],p[i].num[6]);mulu();}6: 模块三:该模块统计输出每种产品的总销售额, 按从高到底的顺序分析:同样是调用函数, 采用选择法对每种产品的总销售额进行统计输出(从高到低)【程序如下】int output3(){int k,i,r,t;for(k=1;k<5;k++){r=k;for(t=k+1;t<=5;t++)if(p[5].num[r]<p[5].num[t]) r=t;if(r!=k)for(i=0;i<=5;i++){ p[i].num[6]=p[i].num[k];p[i].num[k]=p[i].num[r];p[i].num[r]=p[i].num[6];}}printf("*****每种产品的总销售额顺序情况如下*****\n\n");printf(" 产品代码总销售额\n");for(k=1;k<=5;k++)printf(" %d\t\t%d \n",p[0].num[k],p[5].num[k]);mulu();}7: 模块四:输出统计报表分析: 用二维数组的形式将统计的结果从屏幕上输出来【程序如下】int output4(){ int i,k;int flage=0;printf("\t\t****销售统计报表****\n\n\n");printf(" 产品代号\n销售员码1\t2\t3\t4\t5\t销售之和\n\n")for(i=1;i<=4;i++){ for(k=0;k<=6;k++)printf("%d\t",p[i].num[k]);printf("\n\n");}printf("总和\t");for(k=1;k<=6;k++)printf("%d\t",p[5].num[k]);if(flage==0) /********保证只存一次*******/{ save();printf("\n\n信息已成功保存!_(文件名:goods_information)");flage=1;}mulu();}8: 保存统计结果分析:调用函数, 采用文件和指针, 将输出的结果用文本文档保存下来【程序如下】int save(){FILE *fp;int i,k;if((fp=fopen("goods_information.txt","w"))==NULL){printf("\n\n按任意键退出,重新开始");getch();exit(1);}fprintf(fp,"产品代号\n销售员码1\t2\t3\t4\t5\t销售之和\n\n");for(i=1;i<=4;i++){ for(k=0;k<=6;k++)fprintf(fp,"%d\t",p[i].num[k]);fprintf(fp,"\n\n");}fprintf(fp,"总和");for(k=1;k<=6;k++)fprintf(fp,"%d\t",p[5].num[k]);fclose(fp);getch();}运行结果分析如下:1:进入系统运行, 按要求输入销售员代码, 产品代码, 销售额2: 按确定运行, 选择: 1 如下3: 按确定运行, 再选择: 2 如下(求出了上个月每个人每种产品的销售额情况)4: 按确定运行, 再选择: 3 如下: 求出了按销售额对销售员进行排序, 输出排序结果(销售员代号)5: 按确定运行, 再选择: 4 如下: 求出了统计每种产品的总销售额, 对这些产品按从高到底的顺序, 输出排序结果(需输出产品的代号和销售额)6: 按确定运行如下: 统计输出了销售报表7:再按确定之后就保存了报表数据, 然后就可以从电脑可移动磁盘中, 找到文件名为GOODS INFORMATION的文本文档, 从而差看其中的统计报表数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计题目指导教师学生姓名学号专业教学单位目录1设计内容与设计要求 (1)1.1系统功能简介 (1)1.2系统运行环境 (1)2功能划分,模块详细说明 (1)3程序流程图 (1)4运行的运行及说明 (2)4.1系统的运行 (2)4.2运行说明 (4)5总结 (5)附件:源程序清单 (5)1设计内容与设计要求1.1系统功能简介⏹系统有简单的菜单界面,用户可以通过输入简单的选项来完成相应的工作。

⏹选定一种产品,按销售额的顺序对销售员进行排序,输出排序结果。

⏹统计每种产品的总销售额,输出排序结果。

⏹输出统计报表。

1.2系统运行环境Vc++6.0下运行,硬件基本无要求,现在的计算机系统基本都可以运行该系统。

2功能划分,模块详细说明系统的功能是通过子函数调用的方式来完成的,下面对程序中用到的函数及其功能做一下说明。

●void menu():显示主菜单界面。

●void data_count(data *x):以写方式打开文件,对商品信息清零,读入职工编号、产品编号、销售量等信息,对相同职工的相同产品的销售量求和后写入文件。

●void range_sxy(data *x):以读方式打开文件,读入信息,输入按何种产品排序后对存储职工编号的数组进行排序,最后输出新序的职工编号信息。

●void range_shangpin(data *x):从文件读入信息,对每项产品的销售量求和,按每项产品的总销售量排序。

●void data_out(data *x):打开文件,读入信息,求所有产品的销售量的和,输出统计表。

●void main():主函数,调用以上函数,完成相应功能。

3程序流程图程序整体流程图如图3-1所示:图3-1整体流程图4系统的运行及说明4.1系统的运行系统初始运行时,会显示如图4-1所示的菜单界面,用户可以根据提示,进行相应的选择,来完成系统提供的各种功能。

图4-1输入界面计算产品销售额按销售额对销售员排序统计每种产品的总销售额,排序输出统计报表退出结 束菜 单开 始当选择1时,系统调用函数void data_count(data *x),完成相应的功能。

运行界面如图4-2所示,系统会要求用户输入月份,然后要求输入这个月份中是哪个职工销售的哪项产品的数量的具体信息,我们的系统假设有四个职工,职工编号从1至4,一共有5项产品,产品编号从1至5。

职工和产品的数目都可以更改,只要修改一下程序中的宏定义语句即可。

图4-2计算产品销售额界面当选择2时,系统调用void range_sxy(data *x),完成相应部分的功能。

运行界面如图4-3所示,系统会要求用户输入月份,然后排序的产品编号,最后给出此项产品的按照销售量的大小进行的销售员的编号的排序情况。

图4-3按销售额对销售员排序的界面当选择3时,系统调用void range_shangpin(data *x),完成对每项商品的总销售量排序的功能,运行界面如图4-4所示:图4-4产品总销售额排序界面当选择4时,系统调用void data_out(data *x),完成输出统计表的功能,统计内容如图4-5所示:图4-5统计报表界面4.2运行说明首次打开系统必须输入一部分员工信息,如果没有员工信息文件,除了输入功能以外,其它的功能将自动禁止,按任意键退出程序。

输入时,按照提示陆续输入每个员工的单个信息,输入完毕,选择“0”,程序将自动回到菜单选择界面。

其它的功能模块都在执行程序时有相应的提示,非常容易操作。

5总结通过这次实习,让我们初步有了编写系统的能力,我们对很多的函数有了新的认识,也学会了运用多种函数,也明白了编写软件的基本过程,和基本方法。

编写软件的过程中我们又学到了曾经自己不知道的函数或是自己不会的函数的用法。

这次课程设计课总的来说让我受益匪浅。

在软件的设计过程中遇到了很多的困难。

在软件一次一次的调试失败下,曾经想过要放弃。

我最后还是让自己坚持了下来,毫不畏惧困难,在同学的帮助与讲解下我总算是顺利的完成了软件的设计。

在程序的编写过程中我们发现有很多的知识漏洞和缺陷,需要进一步努力学习来完善自己。

在这几天的编写过程中我们对c语言有了更进一步的认识和了解。

此次编程过程的经验和知识肯定能促进我以后的学习。

此次课程设计不仅给了我们很多很好的经验,也让我们体会到了失败时的焦急和难受,也体会到了成功时的兴奋与喜悦。

附件:源程序清单#include <stdio.h>#include <string.h>#include <conio.h>#include <stdlib.h>#define Z 5#define R 4 /*定义宏常量便于程序的一般化*/ /*R表示销售员个数*/typedef struct /*缩短结构体变量名*/{int shangpin[Z]; /*定义结构体便于信息的存储和读写,辨别*/ /*z 是表示商品的种类,最后一个为该销售员商品总和*/}data;void menu(){ printf("*******************************************************\n");printf(" 0.结束操作\n");printf(" 1.计算上个月每个人每种产品的销售额\n");printf(" 2.按销售额对销售员进行排序,输出排序结果\n");printf(" 3.统计每种产品的总销售额,输出排序结果\n");printf(" 4.输出统计报表\n");printf("******************************************************\n");}void data_count(data *x) /*计算上个月每个人每种产品的销售额*/ {FILE *fp;char fname[10];int j,t; /*用于控制循环*/int i,k,s; /*用于定义职工序号,产品序号,产品数量*/system("cls");printf("您想计算哪个月?\n");printf("请输入月份:"); /*输入文件名,这样可以进行各个月份信息写入*/ scanf("%s",fname);strcat(fname,".txt");if((fp=fopen(fname,"wb"))==NULL) /*打开文件*/ {printf("can not open the file\n");exit(0);}for(j=0;j<R;j++) /*对商品数量清零*/for(t=0;t<Z;t++)(x+j)->shangpin[t]=0;printf("please put the information about the 职工编号,产品编号,销售数量\n"); /*写入信息*/for(j=0;;j++){scanf("%d%d%d",&i,&k,&s);if(i==0) /*输入职工为0时结束信息输入*/break;if(i>R||i<0||k>Z||k<0){printf("the information error!\n"); /*避免输入信息出错*/ continue;}else(x+i-1)->shangpin[k-1]=(x+i-1)->shangpin[k-1]+s;/*统计各个人的各种产品的数量,-1为了和数组中的序号相匹配*/}for(j=0;j<R;j++)if(fwrite((x+j),sizeof(data),1,fp)!=1) /*把信息写入文件中便有以后调用*/printf("write error!\n");fclose(fp); /*关闭文件避免信息遗漏*/}void range_sxy(data *x) /*按销售额对销售员进行排序,输出排序结果*/{FILE *fp;char fname[10];int i,k,j,t,bianhao[R]={0},z;system("cls");printf("你要哪个月的?\n");printf("请输入月份:"); /*输入文件名,这样可以进行各个月份信息读入*/ scanf("%s",fname);strcat(fname,".txt");if((fp=fopen(fname,"rb"))==NULL) /*打开文件*/ {printf("can not open the file\n");exit(0);}for(i=0;i<R;i++) /*读出信息*/if(fread(x+i,sizeof(data),1,fp)!=1)printf("读入信息出错!"); /*读入信息提示*/ for(i=0;i<R;) /*用于存储职工编号*/bianhao[i]=i++;printf("请输入按何种产品排序\n");scanf("%d",&k);k=k-1; /*便于与结构体中的数组值对应*/for(i=0;i<R;i++) /*按K种产品对销售员排序,选择法排序*/{t=i;for(j=i+1;j<R;j++)if((x+bianhao[t])->shangpin[k]<(x+bianhao[j])->shangpin[k])/*调用职工各自对应的结构体内的产品数量*/t=j;if(t!=i){z=bianhao[i];bianhao[i]=bianhao[t];bianhao[t]=z;}}printf("按%d产品对销售员排序为:\n",k+1);for(i=0;i<R;i++)printf("%5d",bianhao[i]+1);getch();fclose(fp);}void range_shangpin(data *x) /*统计每种产品的总销售额,输出排序结果*/ {FILE *fp;char fname[10];int i,j,sum[Z]={0},bianhao[Z]={0},z,t,k;system("cls");printf("您想计算哪个月的?\n");printf("请输入月份:"); /*输入文件名,这样可以进行各个月份信息读入*/ scanf("%s",fname);strcat(fname,".txt");if((fp=fopen(fname,"rb"))==NULL) /*打开文件*/{printf("can not open the file\n");exit(0);}for(i=0;i<R;i++) /*读出信息*/if(fread(x+i,sizeof(data),1,fp)!=1)printf("读入信息出错!");for(i=0;i<Z;i++) /*对各种商品求和*/for(j=0;j<R;j++)sum[i]=sum[i]+(x+j)->shangpin[i];for(i=0;i<Z;) /*用于存储商品编号*/bianhao[i]=i++;for(i=0;i<Z;i++)printf("%3d",bianhao[i]);for(i=0;i<Z;i++) /*对产品从高到低排序,选择法排序*/ {t=i;for(j=i+1;j<Z;j++) /*产品变化时,产品编号也随之变化,便于输出*/ if(sum[t]<sum[j])t=j;if(t!=i){k=sum[i];sum[i]=sum[t];sum[t]=k;z=bianhao[i];bianhao[i]=bianhao[t];bianhao[t]=z;}}printf("输出产品排序\n");printf("产品编号数量\n");for(i=0;i<Z;i++)printf("%-10d%-10d\n",bianhao[i]+1,sum[i]);getch();fclose(fp);}void data_out(data *x) /*输出统计报表*/{FILE *fp;char fname[10];int i,j,sum[Z+1]={0};system("cls");printf("您想计算哪个月?\n");printf("请输入月份:"); /*输入文件名,这样可以进行各个月份信息读入*/ scanf("%s",fname);strcat(fname,".txt");if((fp=fopen(fname,"rb"))==NULL) /*打开文件*/ {printf("can not open the file\n");exit(0);}for(i=0;i<R;i++) /*读出信息*/ if(fread(x+i,sizeof(data),1,fp)!=1)printf("读入信息出错!");for(i=0;i<Z;i++) /*对各种商品求和*/for(j=0;j<R;j++)sum[i]=sum[i]+(x+j)->shangpin[i];for(i=0;i<Z;i++) /*求商品总和*/sum[Z]=sum[Z]+sum[i];printf("输出统计报表如下:\n"); /*按要求输出统计表*/printf("产品代号销售之和销售员代号\n");for(i=0;i<R;i++)for(j=0;j<Z;j++)printf("%-10d%-10d%-10d\n",j+1,(x+i)->shangpin[j],i+1);printf("***********************************\n");for(i=0;i<Z;i++){if(i==0)printf("%d产品之和 %-10d 总和 %-10d\n",i+1,sum[i],sum[Z]);elseprintf("%d产品之和 %-10d\n",i+1,sum[i]);}getch();}void main(){int i,choice;data sxy[R]; /*R表示职工的个数,前面的宏常量*/for(i=0;;i++){system("cls"); /*清频命令*/menu(); /*菜单函数提示用户怎样选择*/printf("你想做什么?\n");printf("请选择:"); /*输入要进行的操作*/scanf("%d",&choice);if(choice==0) /*退出程序*/break;elseswitch(choice){case 1 : data_count(sxy);break; /*计算上个月每个人每种产品的销售额*/case 2 : range_sxy(sxy);break; /*按销售额对销售员进行排序,输出排序结果*/case 3 : range_shangpin(sxy);break; /*统计每种产品的总销售额,输出排序结果*/case 4 : data_out(sxy);break; /*输出统计报表*/}}}。

相关文档
最新文档