运维开发网

c语言实现销售管理系统

运维开发网 https://www.qedev.com 2022-06-20 21:01 出处:网络
这篇文章主要为大家详细介绍了C语言实现销售管理系统课程设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

这篇文章主要为大家详细介绍了C语言实现销售管理系统课程设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文分享C语言销售管理系统的具体代码,供大家参考。具体内容如下

一.C程序设计课程设计题目简介

本次设计要求学生根据某公司的销售管理业务,设计开发一套ldquo销售管理系统rdquo软件。

通过本课题的设计过程,培养学生结构化编程的思想,加深对高级语言基本语言元素和控制结构的理解,训练C语言中的重点和难点内容,独立完成一定工作量的编程任务,强调良好的编程风格。得到软件工程的全面训练,提高解决实际问题的能力。

二.C程序设计课程设计的任务

1、查阅文献,一般5篇以上;

2.以某公司销售管理业务为背景,通过对现有管理模式和现有管理软件的调查分析,建立系统模型;

3.完成软件结构设计和算法设计;

4.完成系统的软件开发和测试;

5.撰写设计说明书;

6.做好防守。

三.C程序设计课程设计的主要内容、功能及技术指标

1.问题分析和解决方案框架确定:充分分析和理解问题本身,找出需要什么。在确定解决方案框架的过程中,要综合考虑系统功能,考虑如何使系统结构清晰、合理、简单、易于调试。最后确定每个进程和函数的简单函数,以及进程(或函数)之间的调用关系,绘制函数之间的调用关系图。

2.详细设计与编码:定义相应的存储结构,确定各功能的算法,绘制流程图。在此基础上,设计代码。每个显式功能模块程序一般不超过60行,否则要进一步划分。

3.程序运行前的静态检查:程序运行前的静态检查可以有效提高调试效率,减少运行时不必要的错误。静态检查主要有两种方式:用一组测试数据手动执行程序;通过阅读或向他人解释自己的程序,彻底理解程序逻辑。提前消除程序中的明显错误。

4.程序调试和测试:自下而上,分模块,即先调试底层功能。精通调试工具的各种功能,设计测试数据确定疑点,修改程序验证或绕过。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序和结果列表。

5.完成课程设计报告。

①要求和规格:设计题目和问题描述:题目要解决的问题是什么;

②设计思路:主要算法思路、程序功能图、函数间调用关系图;

设计:每个函数或进程的作用,列出每个进程或函数调用的进程或函数,画出每个函数的流程图;

设计:主算法的伪代码;

③调试报告:如何解决调试过程中遇到的主要问题;设计和编码的回顾性讨论和分析;改进思路;和经历等。

④项目实施注意事项;

附录:源程序和结果列表。如果标题中指定了测试数据,则结果应包括这些测试数据和运行输出,当然也可能包括其他测试数据和运行输出。

6.某公司有四个业务员(1-4号),负责销售五种产品(1-5号)。每个销售人员将为当天售出的每件产品写一张便条并上交。每张纸条包含的内容:业务员的代码,产品的代码,当天这款产品的销量。每个销售人员每天可以上交0-5张纸币。假设收集了上个月的所有票据,写一个处理系统,读取上个月的销售情况,处理如下:

工作在系统菜单模式,输入信息保存在文件中;计算每个人上个月每个产品的销售额;根据销量对业务员进行排序,输出排序结果(业务员编码);统计每个产品的总销售额,按照从上到下的顺序输出这些产品的排序结果(需要输出产品的代码和销售额);输出统计报告。
下面是源代码:

#include "stdio.h" /*输入输出函数*/#include "stdlib.h"/*通用应用程序函数*/typedef struct/*定义结构体变量*/{ int gonghao; /*销售员代号*/ int a1; /*产品一代号*/ int a2; /*产品二代号*/ int a3; /*产品三代号*/ int a4; /*产品四代号*/ int a5; /*产品五代号*/}DATA;int menu_select(); /*声明函数*/int enter(); /*声明函数*/void salor(int n); /*声明函数*/int sum(DATA t[100],int n, int e); /*声明函数*/void list1(int n);/*声明函数*/void list2();/*声明函数*/main()/*主函数*/{ int length; system("color 3b"); for( ; ; )/*无限循环*/ {switch(menu_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(" 菜单 \n\n"); printf(" 设计人:吴继康、付鹏阳 班级:计算机一班\n"); printf(" 1 输入便条上的内容\n"); printf(" 2 统计上个月每种产品每人销售的数量\n"); printf(" 3 按销售额将销售员排序\n"); printf(" 4 销售报表\n"); printf(" 0 退出\n"); printf("---------------------------------end---------------------------\n\n"); printf(" 请输入(0-4) "); scanf("%d",amp;n); return n;}int enter() /*清单输入*/{ int i,num; FILE *fp; DATA t[100]; printf("请输入要写的便条条数:\n"); scanf("%d",amp;num); printf("工号 电脑 电视 冰箱 风扇 手机"); for(i=0;ilt;num;i++) { printf("\n\n------------------------------------\n"); scanf("%d\t %d\t %d\t %d\t %d\t %d",amp;t[i].gonghao,amp;t[i].a1,amp;t[i].a2,amp;t[i].a3,amp;t[i].a4,amp;t[i].a5); } if((fp=fopen("wujikang.dat","ab+"))==NULL) { printf("不能打开文件\n"); exit(1); } for(i=0;ilt;num;i++) { fprintf(fp,"%d\t%d\t%d\t%d\t%d\t%d\t",t[i].gonghao,t[i].a1,t[i].a2,t[i].a3,t[i].a4,t[i].a5); fprintf(fp,"\r\n"); } fclose(fp); printf("\n-----------------------------------\n\n\n"); return i;}void salor(int n) /*每位销售员销售额*/{ int i=0,s; int b1=0,b2=0,b3=0,b4=0,b5=0; int k=0; DATA t[100]; FILE *fp; if((fp=fopen("wujikang.dat","rb+"))==NULL) { printf("不能打开文件\n"); exit(1); } rewind(fp); while(fscanf(fp,"%d\t%d\t%d\t%d\t%d\t%d",amp;(t[k].gonghao),amp;(t[k].a1),amp;(t[k].a2), amp;(t[k].a3),amp;(t[k].a4),amp;(t[k].a5))gt;0) k++; fclose(fp); printf("请输入要查询售货员的代号(1-4):"); scanf("%d",amp;s); for(i=0;ilt;k;i++) if(t[i].gonghao==s) {b1+=t[i].a1; b2+=t[i].a2; b3+=t[i].a3; b4+=t[i].a4; b5+=t[i].a5;}; printf("工号 电脑 电视 冰箱 风扇 手机\n"); printf("%d\t %d\t %d\t %d\t %d\t %d\t",s,b1,b2,b3,b4,b5);}void list1 (int n) /*显示清单*/{ int i,j,s; int m[10],c[10]; int k=0; DATA t[100]; FILE *fp; if((fp=fopen("wujikang.dat","rb+"))==NULL) { printf("不能打开文件\n"); exit(1); } rewind(fp); while(fscanf(fp,"%d\t%d\t%d\t%d\t%d\t%d",amp;(t[k].gonghao),amp;(t[k].a1),amp;(t[k].a2), amp;(t[k].a3),amp;(t[k].a4),amp;(t[k].a5))gt;0) /*从fp指向的文件上读入便条信息*/ k++; fclose(fp); for(i=0;ilt;4;i++) /*将所输入的条数存入结构体数组中*/ m[i]=i+1; for(i=0;ilt;4;i++) c[i]=sum(t,k,m[i]); for(i=0;ilt;4;i++) for(j=i+1;jlt;4;j++) if(c[i]lt;c[j]) { s=m[i]; m[i]=m[j]; m[j]=s; s=c[i]; c[i]=c[j]; c[j]=s; } printf("按销售额从高到低将销售员代号排序\n"); for(i=0;ilt;4;i++) printf("%d\n",m[i]);}void list2() /*每种产品的销售额*/{ int i=0,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0; int c[4],b1[4]={0},b2[4]={0},b3[4]={0},b4[4]={0},b5[4]={0}; int k=0; DATA t[100]; FILE *fp; if((fp=fopen("wujikang.dat","rb+"))==NULL) { printf("不能打开文件\n"); exit(1); } rewind(fp);//qingchucuowu,zhiyutoubu while(fscanf(fp,"%d\t%d\t%d\t%d\t%d\t%d",amp;(t[k].gonghao),amp;(t[k].a1),amp;(t[k].a2), amp;(t[k].a3),amp;(t[k].a4),amp;(t[k].a5))gt;0) k++; for(i=0;ilt;4;i++) c[i]=sum(t,k,i+1);/*求每个人的总销售额*/ for(i=0;ilt;4;i++) sum0+=c[i]; /*所有产品的销售额*/ for(i=0;ilt;k;i++) /*求每个人每种产品的总销售额*/ for(j=0;jlt;4;j++) { if(j+1==t[i].gonghao) {b1[j]+=t[i].a1; b2[j]+=t[i].a2; b3[j]+=t[i].a3; b4[j]+=t[i].a4; b5[j]+=t[i].a5; } } for(i=0;ilt;4;i++)/*每种产品的总销售额*/ {sum1+=b1[i]; sum2+=b2[i]; sum3+=b3[i]; sum4+=b4[i]; sum5+=b5[i]; } printf("-------------------------销售报表----------------------\n\n\n"); printf(" products num\n"); printf(" 销售员\t1\t2\t3\t4\t5\t总和\n\n"); for(i=0;ilt;4;i++) printf(" %d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",i+1,b1[i],b2[i],b3[i],b4[i],b5[i],c[i]); printf("psum %d\t%d\t%d\t%d\t%d\t%d\t",sum1,sum2,sum3,sum4,sum5,sum0);}int sum(DATA t[100],int n, int e){ int i=0,sum=0; for(i=0;ilt;=n;i++) if(e==t[i].gonghao) {sum+=t[i].a1; sum+=t[i].a2; sum+=t[i].a3; sum+=t[i].a4; sum+=t[i].a5; } return sum;}

这就是本文的全部内容。希望对大家的学习有帮助

0

精彩评论

暂无评论...
验证码 换一张
取 消