c语言销售管理系统Word文件下载.docx

上传人:b****4 文档编号:8002697 上传时间:2023-05-09 格式:DOCX 页数:17 大小:50.92KB
下载 相关 举报
c语言销售管理系统Word文件下载.docx_第1页
第1页 / 共17页
c语言销售管理系统Word文件下载.docx_第2页
第2页 / 共17页
c语言销售管理系统Word文件下载.docx_第3页
第3页 / 共17页
c语言销售管理系统Word文件下载.docx_第4页
第4页 / 共17页
c语言销售管理系统Word文件下载.docx_第5页
第5页 / 共17页
c语言销售管理系统Word文件下载.docx_第6页
第6页 / 共17页
c语言销售管理系统Word文件下载.docx_第7页
第7页 / 共17页
c语言销售管理系统Word文件下载.docx_第8页
第8页 / 共17页
c语言销售管理系统Word文件下载.docx_第9页
第9页 / 共17页
c语言销售管理系统Word文件下载.docx_第10页
第10页 / 共17页
c语言销售管理系统Word文件下载.docx_第11页
第11页 / 共17页
c语言销售管理系统Word文件下载.docx_第12页
第12页 / 共17页
c语言销售管理系统Word文件下载.docx_第13页
第13页 / 共17页
c语言销售管理系统Word文件下载.docx_第14页
第14页 / 共17页
c语言销售管理系统Word文件下载.docx_第15页
第15页 / 共17页
c语言销售管理系统Word文件下载.docx_第16页
第16页 / 共17页
c语言销售管理系统Word文件下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言销售管理系统Word文件下载.docx

《c语言销售管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《c语言销售管理系统Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。

c语言销售管理系统Word文件下载.docx

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

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

4)输出统计报表

3模块划分

主菜单及头文件设计

编辑系统菜单运行

输入信息

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

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

清单输出

主要功能的实现

4主要函数说明及其N-S图

主菜单及头文件设计:

我们按照老师所给的示例我们首先编译了一个头文件,在头文件里,编译了主函数需要用到的一些函数,如#include"

stdio.h"

等,因为需要录入便条的所有信息,所有用一个数据结构来实现信息的储存方式,用数组方式,把每条信息都编译成一个数组,如销售员代号用name[4]记录。

头文件还包括了定义常数记录数typedefstruct,主函数原型

intmenu_select();

/*声明函数*/

intenter(RECODEt[]);

voidsalor(RECODEt[],intn);

intsum(RECODEt[],intn,intm);

voidlist1(RECODEt[],intn);

voidlist2(RECODEt[],intn);

voidlist3(RECODEt[],intn);

voidsave(RECODEt[],intn);

intload(RECODEt[]);

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

用#include"

pro.h"

2.编辑系统菜单运行:

题目要求我们系统以菜单方式工作,所以我们现要定义一个系统的结构体数组RECODErec[600],用for(;

;

)循环让菜单实现无限循环,让switch(menu_select())调用主菜单函数,返回值整数作开关语句的条件,之后分别定义菜单的信息,如:

case1:

length=enter(rec);

就是输入信息的定义编辑,当然最后需要用到break来实现返回。

菜单定义完成之后,开始编译菜单的输出,这部分,用了printf就把需要显示的菜单显示出来,然后由用户选择菜单的选项,因为菜单只有0~7的选项,为了防止用户输入选项超值,所以用dowhile语句来控制,(c<

0||c>

7)限定了用户输入的数据只有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,"

\r\n"

);

当确立了保存的可以性之后,系统开始录入需要保存的信息,用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("

rb"

))==NULL),如果判断失败,系统不能读入文件,则会显示“不能打开文件”,用printf("

不能打开文件\n"

)来实现,同时系统要结束读入文件的执行,用exit

(1)实现;

如果判断成功,则系统会自动读入用户已经保存的数据(fscanf(fp,"

&

n)读入记录数),用for循环把已经保存的数据一一对应的读入到正在执行的程序中,这里需要注意的是,读取的数据格式应该同保存时的一致,如储存时的格式是fprintf(fp,"

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).每个人每种产品的销售额:

首先,要定义每个人,每种产品,销售额数组如inti,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;

intc[4],b1[4]={0},b2[4]={0},b3[4]={0},b4[4]={0},b5[4]={0},用for循环来求每个

人的总销售额:

for(i=0;

i<

4;

i++);

用for循环来求每个人每种产品的总销售额:

n;

i++),for(j=0;

j<

j++);

在用for循环每种产品的总销售额:

i++),之后则在系统界面输入销售员代号,产品代号,产品代号用printf即可实现,用sum对每个销售员的销售额求和,用system("

cls"

)来录入信息,然后输出头标(如销售员代号,产品代号,销售额等,用printf实现),之后开始查询,用for语句来。

2).按销售额对销售员进行排序:

此部分要分两部分其一是,每位销售员销售额;

其二是,按销售额对销售员排序。

在求每个销售员销售额时也是要先定义销售员代号,产品代号,销售额。

接着是则是用输入要查询的销售员的代号,用scanf("

s)来记录输入销售员代号的信息,然后输出头标(如销售员代号,产品代号,销售额等,用printf实现),之后开始查询,查询信息首先需要一个for语句来,实现对已存入数据的所有查询for(i=0;

i++),关键内容是查询销售员代号时用if(strcmp(name,t[i].name)==0),找出与输入的销售员相同的储存信息,查找完成后则把该销售员的所有信息全部输出。

上面是求每个销售员销售额,接着是要在上面的基础上排序。

首先要定义两个数组如:

intc[4],m[4],接着用for循环(for(i=0;

for(j=i+1;

j++))对销售员的销售额进行排序,再用if语句

来求,最后是输出用printf("

%d\n"

m[i])实现

3).每种产品的总销售额:

也一样首先要定义数组,接着用c[i]=sum(t,n,i+1)求每个人的总销售额,再用for循环,再用sum0+=c[i]对所有产品的销售额求总,用for循环对每个人每种产品的销售额求总销售额,再用for循环实现每种产品的总销售额,然后输出头标(如销售员代号,产品代号,总销售额等,用printf实现)即可。

5程序运行数据及其结果

1.进入主菜单:

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

3.输入条数,如:

输入2天的便条,8条:

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

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

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

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

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

查询的员工号为3:

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

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

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

11.保存的文件:

保存的文件为TXT格式,其保存的文件为:

6课程设计心得

经过上机实践学习,使我对c语言有了更进一步的认识和了解,C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。

要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。

只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。

通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;

再有对c语言的一些标准库函数不太了解,还有对函

数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。

通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

附录:

typedefstruct/*定义结构体变量*/

intname;

/*销售员代号*/

inta1;

/*

inta2;

inta3;

inta4;

inta5;

}RECODE;

产品一代号*/产品二代号*/产品三代号*/产品四代号*/产品五代号*/

以下是函数原型*******/

/*声明函数*/intsum(RECODEt[],intn,intm);

/*声明函数*/voidlist1(RECODEt[],intn);

/*主函数开始*/

intmain()/*主函数*/

{

RECODErec[600];

intlength;

system("

);

/*清屏*/

for(;

;

)/*无限循环*/

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

break;

case2:

save(rec,length);

case3:

length=load(rec);

case4:

list1(rec,length);

case5:

salor(rec,length);

case6:

list2(rec,length);

case7:

list3(rec,length);

case0:

exit(0);

}

intmenu_select()/*菜单函数*/

intn;

printf("

********************MENU*****************\n\n"

1输入便条\n"

2保存到文件\n"

3读取文件\n"

4显示便条清单\n"

5每位销售员的销售额\n"

6每种产品的销售额\n"

7按销售额对销售员排序\n"

0退出管理\n"

*********************END****************\n\n"

请选择你的操作(0-7):

\n"

scanf("

n);

if(0<

n&

&

n<

7)

/*清屏*/returnn;

/*清单输入*/intenter(RECODEt[])

inti,num;

/*清屏*/printf("

请输入要写的便条条数:

num);

/*输入所要写入的清单的条数*/

nameproduct1product2product3product4product5"

for(i=0;

num;

i++)/*将所输入的条数存入结构体数组中*/

\n\n\n"

t[i].name,&

t[i].a1,&

t[i].a2,&

t[i].a3,&

t[i].a4,&

t[i].a5);

\n\n\n\n"

returni;

/*保存文件*/

voidsave(RECODEt[],intn)

inti;

FILE*fp;

/*调用fopen函数*/if((fp=fopen("

))==NULL)/*如果函数带回一个空指针值*/{

/*不能打开文件*/

exit

(1);

fprintf(fp,"

n);

i++)

%-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指向的文件上*/

fclose(fp);

/*关闭文件*/

****保存成功***\n\n"

/*显示保存成功*/

getchar();

/*读取文件*/

intload(RECODEt[])

inti,n;

if((fp=fopen("

r"

))==NULL)/*如果函数带回一个空指针值*/

fscanf(fp,"

(t[i].a2),

(t[i].a4),&

(t[i].a5));

/*从fp指向的文件上读入便条信息*/fclose(fp);

printf("

\n成功读取文件!

\n"

/*成功读入信息*/

pressanykeytocontinue\n\n"

returnn;

/*显示清单*/

voidlist1(RECODEt[],intn)

(t[i].

a4),&

/*从fp指向的文件上读入便条信息*/

recode

**************************

\n\n\n"

\n\n

--\n"

%d%d%d%d%d%d"

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

\n\n\n

"

\npressanykeytocontinue\n"

/*每位销售员销售额*/voidsalor(RECODEt[],intn)

inti,s;

intb1=0,b2=0,b3=0,b4=0,b5=0;

请输入要查询的销售员的代号(1-4):

scanf("

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;

nameproduct1product2product3product4product5\n"

%-15d%-10d%-10d%-7d%-7d%-7d"

s,b1,b2,b3,b4,b5);

\npressentertocontinue\n"

/*销售产品总和*/

intsum(RECODEt[],intn,inte)

inti,sum=0;

=n;

i++)/*求销售产品的总和*/

if(e==t[i].name)

{sum+=t[i].a1;

sum+=t[i].a2;

sum+=t[i].a3;

sum+=t[i].a4;

sum+=t[i].a5;

returnsum;

/*每种产品的销售额*/

voidlist2(RECODEt[],intn)

inti,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;

intc[4],b1[4]={0},b2[4]={0},b3[4]={0},b4[4]={0},b5[4]={0};

c[i]=sum(t,n,i+1);

/*求每个人的总销售额*/

sum0+=c[i];

/*所有产品的销售额*/

i++)/*求每个人每种产品的总销售额*/

for(j=0;

j++)

if(j+1==t[i].name){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;

i++)/*每种产品的总销售额*/

{sum1+=b1[i];

sum2+=b2[i];

sum3+=b3[i];

sum4+=b4[i];

sum5+=b5[i];

prin

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2