c语言销售管理系统_商品销售管理系统c

2020-02-27 其他范文 下载本文

c语言销售管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“商品销售管理系统c”。

课程设计说明书

学 院、系: 专

业: 学 生 姓 名: 设 计 题 目:

起 迄 日 期: 指 导 教 师:

学 号: 销售管理系统

日期: 2017年5月12日设计目的1.了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。2.握高级程序设计语言的知识。

3.践中逐步掌握程序设计的思想和方法,培养问题求解和语言的应用能力。

4.程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,能对C语言 的文件操作有一个更深刻的了解。

5.提高与程序设计和软件开发有关的各种综合能力。

6.通过本课程设计,培养上机动手能力,巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关; 7.为后续各门计算机课程的学习打下坚实基础;8.学会用c语言程序设计来设计销售管理系统设计。任务概述

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。每位销售员每天上缴1张便条。

试设计一个便条管理系统,使之能提供以下功能:

1、系统以菜单方式工作

2、便条信息录入功能(便条信息用文件保存)--输入

3、收集到了上个月的所有便条后,读取销售情况 1)计算每个人每种产品的销售额。

2)按销售额对销售员进行排序,输出排序结果(销售员代号)

3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果

4)输出统计报表模块划分

主菜单及头文件设计

编辑系统菜单运行

输入信息

保存信息,参数为结构体数组和记录数

读入取函数,参数为结构体数组

清单输出

主要功能的实现主要函数说明及其N-S图

主菜单及头文件设计: 我们按照老师所给的示例我们首先编译了一个头文件,在头文件里,编译了主函数需要用到的一些函数,如#include “stdio.h”等,因为需要录入便条的所有信息,所有用一个数据结构来实现信息的储存方式,用数组方式,把每条信息都编译成一个数组,如销售员代号用name[4]记录。头文件还包括了定义常数记录数typedef struct,主函数原型

int menu_select();/*声明函数*/ int enter(RECODE t[]);/*声明函数*/ void salor(RECODE t[],int n);/*声明函数*/ int sum(RECODE t[],int 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[]);/*声明函数*/

这些的都是主函数需要用到的数据,因此放入头文件当中,在主程序开始之前直接引用#include “pro.h”。

2.编辑系统菜单运行:

题目要求我们系统以菜单方式工作,所以我们现要定义一个系统的结构体数组RECODE rec[600],用for(;;)循环让菜单实现无限循环,让switch(menu_select())调用主菜单函数,返回值整数作开关语句的条件,之后分别定义菜单的信息,如:

case 1: length=enter(rec);就是输入信息的定义编辑,当然最后需要用到break来实现返回。菜单定义完成之后,开始编译菜单的输出,这部分,用了printf就把需要显示的菜单显示出来,然后由用户选择菜单的选项,因为菜单只有0~7的选项,为了防止用户输入选项超值,所以用do while语句来控制,(c7)

限定了用户输入的数据只有0~7才有效,超值则返回开始菜单,重新选择(return)。

3.输入信息:

输入信息一般都是使用scanf来实现,但在用户输入之前需要解决一个问题,程序必须限制用户的输入序数(记录条数),所以在输入数据之前,必须先限定序数,方法则是用一个for循环来实现,有用户输入一个数字,成为循环的上限,而用户输入的便条信息则在此限定下,不能超出,当超出时则返回到开始菜单。用户输入的便条信息分别存入对应的数组当中,如便条条数则存入t[i].num当中。

4.保存信息,参数为结构体数组和记录数:

用户输入的信息需要保存时,用save选项进行保存。保存的时候,实现应该建立一个指向文件的指针,从而固定保存文件时的位置,之后用if语句来判断打开文件是否正常,if((fp=fopen(“record.txt”,“wb”))==NULL),如果没打开(打开不正常),则程序执行退出;当判断文件打开正常时,系统显示“保存文件”(用printf(“n保存文件n”)来完成),保存信息是用到的fprintf函数,将制定记录数输入文件fprintf(fp,“%d”,n),因为源文件中采用了换行,保存文件是系统默认不会进行保存,所有必须加如换行符号保存,防止文件丢失,保证文件以用户输入的信息一致,保存换行符号依然采用fprintf函数来实现,具体源文件为fprintf(fp,“rn”);当确立了保存的可以性之后,系统开始录入需要保存的信息,用for循环语句,不断把用户输入的信息保存,因为之前在编写输入,输出程序时,都用到了一定的格式,保证信息的一一对应,所以在保存文件时,也需要确定和输入是相同的格式,这里依然使用fprintf函数来进行保存,如fprintf(fp,“%-10d%-7d%-7d%-7d%-7d-7d”,t[i].name,t[i].a1,t[i].a2,t[i].a3,t[i].a4,t[i].a5)就是把销售员代号,产品代号,销售额按照间隔7个字符格式进行保存,在保存格式确立后,需要把换行符号再次写入文件,程序结束后fclose结束保存,并用printf输出“文件保存成功”,让用户知道已经保存文件。

5.读入取函数,参数为结构体数组:

前面已经做了文件的保存,当保存文件成功后,系统会以record.txt文件保存在与程序同级的文件夹下,而读入函数,就是为了让用户再次打开运行程序时,可以直接读取之前已经输入并保存过的信息,和储存信息一样,读入函数也采用了参数为结构体数组,同样应该确定文件指向指针FILE *fp,读入函数之前,应该确定是否有已经保存的文件,用保存文件一样,用if语句来进行判断

if((fp=fopen(“record.txt”,“rb”))==NULL),如果判断失败,系统不能读入文件,则会显示“不能打开文件”,用printf(“不能打开文件n”)来实现,同时系统要结束读入文件的执行,用exit(1)实现;如果判断成功,则系统会自动读入用户已经保存的数据(fscanf(fp,“%d”,&n)读入记录数),用for循环把已经保存的数据一一对应的读入到正在执行的程序中,这里需要注意的是,读取的数据格式应该同保

时的一

致,如

时的格

是fprintf(fp,“%-10d%-7d%-7d%-7d%-7d-7d”,t[i].name,t[i].a1,t[i].a2,t[i].a3,t[i].a4,t[i].a5),则读

入的时的格

为fscanf(fp,“%d%d%d%d%d%d”,&(t[i].name),&(t[i].a1),&(t[i].a2),&(t[i].a3),&(t[i].a4),&(t[i].a5)),读取成功后关闭文件fclose(fp),并显示“成功地从文件读入数据!!”(用printf实现)。

6.清单输出:

读取销售情况有3个,分别是每个人每种产品的销售额,按销售额对销售员进行排序和每种产品的总销售额三个函数: 1).每个人每种产品的销售额:

首先,要定义每个人,每种产品,销售额数组如 int i,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},用for循环来求每个人的总销售额:for(i=0;i

此部分要分两部分其一是,每位销售员销售额;其二是,按销售额对销售员排序。在求每个销售员销售额时也是要先定义销售员代号,产品代号,销售额。接着是则是用输入要查询的销售员的代号,用scanf(“%d”,&s)来记录输入销售员代号的信息,然后输出头标(如销售员代号,产品代号,销售额等,用printf实现),之后开始查询,查询信息首先需要一个for语句来,实现对已存入数据的所有查询for(i=0;i

也一样首先要定义数组,接着用c[i]=sum(t,n,i+1)求每个人的总销售额,再用for循环,再用

sum0+=c[i]对所有产品的销售额求总,用for循环对每个人每种产品的销售额求总销售额,再用for循环实现每种产品的总销售额,然后输出

头标(如销售员代号,产品代号,总销售额等,用printf实现)即可。程序运行数据及其结果

1.进入主菜单:

2.选择“1”,输入便条:

3.输入条数,如:输入2天的便条,8条:

4.选择“2”,保存到文件:

5.选择“3”,读取文件:

6.选择“4”,显示清单:

7.选择“5”,每位销售员的销售额:

8.输入查询员工代号,如:查询的员工号为3:

8.选择“6”,每种产品的销售额:

9.选择“7”,按销售额对销售员排序:

10.选择“0”,退出管理:

11.保存的文件:

保存的文件为TXT格式,其保存的文件为:课程设计心得

经过上机实践学习,使我对c语言有了更进一步的认识和了解,C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。通过实践,我也发现

我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对c语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

附录: #include “stdio.h”/*输入输出函数*/ #include “stdlib.h”/*通用应用程序函数*/ #include “string.h”/*字符串函数*/ #include “ctype.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);/*声明函数*/ int sum(RECODE t[],int 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[]);/*声明函数*/

/*主函数开始*/ int main()/*主函数*/ {

} RECODE rec[600];int length;

system(“cls”);/*清屏*/ for(;;)/*无限循环*/

{switch(menu_select())/*根据用户的选择判断该调用哪个功能函数*/ {

break;case 2:save(rec,length);

} } break;break;break;break;break;break;case 3:length=load(rec);case 4:list1(rec,length);case 5:salor(rec,length);case 6:list2(rec,length);case 7:list3(rec,length);case 0:exit(0);

case 1:length=enter(rec);int menu_select()/*菜单函数*/ { int n;

printf(“********************MENU*****************nn”);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(“*********************END****************nn”);printf(“ 请选择你的操作(0-7): n”);scanf(“%d”,&n);if(0

/*清单输入*/ int enter(RECODE t[]){ int i,num;system(“cls”);/*清屏*/

printf(“请输入要写的便条条数:n”);

scanf(“%d”,&num);/*输入所要写入的清单的条数*/

printf(“name product1 product2 product3 product4 product5”);for(i=0;i

}

printf(“n----nnn”);return i;}

/*保存文件*/ void save(RECODE t[],int n){ printf(“nn-----n”);

scanf(“%d%d%d%d%d%d”,&t[i].name,&t[i].a1,&t[i].a2,&t[i].a3,&t[i].a4,&t[i].a5);

int i;

FILE *fp;/*调用fopen函数*/

if((fp=fopen(“record.txt”,“wb”))==NULL)/*如果函数带回一个空指针值*/ {

printf(“不能打开文件n”);/*不能打开文件*/ exit(1);}

fprintf(fp,“%d”,n);fprintf(fp,“rn”);for(i=0;i

fprintf(fp,“%-10d%-7d%-7d%-7d%-7d%-7d”,t[i].name,t[i].a1,t[i].a2,t[i].a3,t[i].a4,t[i].a5);/*将便条的信息输出到fp指向的文件上*/ fprintf(fp,“rn”);}

fclose(fp);/*关闭文件*/

printf(“****保存成功***nn”);/*显示保存成功*/ printf(“pre any key to continue......n”);getchar();}

/*读取文件*/ int load(RECODE t[]){ int i,n;FILE *fp;

if((fp=fopen(“record.txt”,“r”))==NULL)/*如果函数带回一个空指针值*/ {

printf(“不能打开文件n”);/*不能打开文件*/ exit(1);}

fscanf(fp,“%d”,&n);

for(i=0;i

fscanf(fp,“%d%d%d%d%d%d”,&(t[i].name),&(t[i].a1),&(t[i].a2), &(t[i].a3),&(t[i].a4),&(t[i].a5));/*从fp指向的文件上读入便条信息*/ fclose(fp);

printf(“n 成功读取文件!!n”);/*成功读入信息*/ printf(“pre any key to continue......nn”);getchar();return n;}

/*显示清单*/ void list1(RECODE t[],int n){ int i;FILE *fp;

if((fp=fopen(“record.txt”,“r”))==NULL)/*如果函数带回一个空指针值*/ {

printf(“不能打开文件n”);/*不能打开文件*/ exit(1);}

fscanf(fp,“%d”,&n);for(i=0;i

fscanf(fp,“%d%d%d%d%d%d”,&(t[i].name),&(t[i].a1),&(t[i].a2),&(t[i].a3),&(t[i].a4),&(t[i].a5));/*从fp指向的文件上读入便条信息*/ fclose(fp);

printf(“***************************the recode**************************nnn”);

printf(“name product1 product2 product3 product4 product5”);for(i=0;i

printf(“ %d

%d

%d

%d

%d

%d”,t[i].name,lise

of

saling t[i].a1,t[i].a2,t[i].a3,t[i].a4,t[i].a5);

}

printf(“nn--n”);printf(“n pre any key to continue.......n”);getchar();}

/*每位销售员销售额*/ void salor(RECODE t[],int n){ int i,s;

int b1=0,b2=0,b3=0,b4=0,b5=0;

printf(“请输入要查询的销售员的代号(1-4): n”);

scanf(“%d”,&s);/*输入所要查看的售货员的代号*/

for(i=0;i

if(t[i].name==s){b1+=t[i].a1;

b2+=t[i].a2;

b3+=t[i].a3;

b4+=t[i].a4;

b5+=t[i].a5;}

printf(“name product1 product2 product3 product4 product5n”);

printf(“------------n”);

printf(“%-15d%-10d%-10d%-7d%-7d%-7d”,s,b1,b2,b3,b4,b5);

printf(“npre enter to continue.......n”);

getchar();

}

/*销售产品总和*/ int sum(RECODE t[],int n, int e){ int i,sum=0;

for(i=0;i

{sum+=t[i].a1;sum+=t[i].a2;sum+=t[i].a3;sum+=t[i].a4;sum+=t[i].a5;} return sum;}

/*每种产品的销售额*/ void list2(RECODE t[],int n){ int i,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};system(“cls”);;for(i=0;i

c[i]=sum(t,n,i+1);/*求每个人的总销售额*/ for(i=0;i

sum0+=c[i];/*所有产品的销售额*/

for(i=0;i

for(i=0;i

sum3+=b3[i];sum4+=b4[i];sum5+=b5[i];}

printf(“ products numn”);

printf(“ code

sumnn”);for(i=0;i

printf(“ %-10d%-7d%-7d%-7d%-7d%-7d%-7dn”,i+1,b1[i],b2[i],b3[i],b4[i],b5[i],c[i]);printf(“ psum

%-7d%-7d%-7d%-7d%-7d%-7d”,sum1,sum2,sum3,sum4,sum5,sum0);printf(“n pre any key to continue.......n”);getchar();}

/*按销售额对销售员排序*/ void list3(RECODE t[],int n){ int i,j,s;

int c[4],m[4];/*定义两个数组*/

system(“cls”);/*清屏*/ for(i=0;i

for(i=0;i

}

printf(“the sequce of salor'saling number from many to fewn”);for(i=0;i

printf(“ninput any key to continue.......n”);getchar();}

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

报告正文1、题目与要求:1.1 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当日出售的每种产品各写一张便条交上来。每张便条内容有  销售员的代号  产......

销售管理系统

销售销售管理系统主要业务主要包括:客户管理、价格管理、信用管理、合同管理、出货管理以及贷款管理等客户管理:内容主要包括客户基础资料、客户特征、业务状况、交易现状 价......

销售管理系统报告

报告正文1、题目与要求:1.1 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当日出售的每种产品各写一张便条交上来。每张便条内容有  销售员的代号  产......

销售管理系统操作手册

金蝶ERP操作手册销售管理系统操 作 手 册慈溪市联创软件有限公司2014年10月 金蝶ERP操作手册进入销售管理1、销售订单 1.1 新增操作:供应链——》销售管理——》销售订单—......

电话销售管理系统

山东联电信息技术有限公司极呼®电话管理系统呼叫中心说明产品中心2018年01月05日1 / 10山东联电信息技术有限公司目录1 概述 .................................................

《c语言销售管理系统.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
c语言销售管理系统
点击下载文档
相关专题 商品销售管理系统c 销售管理系统 语言 商品销售管理系统c 销售管理系统 语言
[其他范文]相关推荐
[其他范文]热门文章
下载全文