谭浩强编著C程序设计之销售设计报告.docx
- 文档编号:16919028
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:18
- 大小:118.48KB
谭浩强编著C程序设计之销售设计报告.docx
《谭浩强编著C程序设计之销售设计报告.docx》由会员分享,可在线阅读,更多相关《谭浩强编著C程序设计之销售设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
谭浩强编著C程序设计之销售设计报告
程序设计基础课程设计报告
班级:
姓名:
指导教师:
完成日期:
2012.9.6
(题目)
1.设计题目与要求
某公司有三个销售员(编号1-3),负责销售四种产品(编号1-4)。
每个销售员都将当天出售的每种产品数量进行上报。
上报内容:
销售员代号、产品代号、销售额。
每位销售员每天可能会上报若干次。
要求系统实现以下功能:
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)。
3)统计每种产品的总销售额,并对产品从高到低的顺序输出排序结果。
(需输出产品代号和销售额)
2.算法设计与描述(要求有相关流程图)
2.1整体系统流程图
图4.1系统流程图
2.2各部分N-S图
1).信息录入
菜单列表,选择项目(0-5)
选择1
输入便条数num
I=0,
输入销售员代号,产品1,2,3,4;
Name,t[i]a1,t[i]a2,t]i]a3,t[i]a4;
i+1;
I=num
选择2;
inti,s
intb1=0,b2=0,b3=0,b4=0
printf("请输入销售员代号(1-3):
")
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 跳出 printf("销售员代号产品1产品2产品3产品4\n") printf("--------------------------------------------------------------------------\n") printf("%-15d%-10d%-10d%-7d%-7d%",s,b1,b2,b3,b4) printf("\n按enter键继续.......\n") getchar() 3.设计软硬件环境 IBMPC兼容机,IntelP4以上、1G内存、80GB硬盘、Windows操作系统,TruboC++3.0、VC6.0以上IDE环境。 4.源程序代码清单 #include"stdio.h"/*输入输出函数*/ #include"stdlib.h"/*通用应用程序函数*/ #include"string.h"/*字符串函数*/ #include"ctype.h"/*字符操作函数*/ #include"stdlib.h" typedefstruct/*定义结构体变量*//*typedef的功能是定义新的类型。 第一句就是定义了一种PTRFUN的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回char类型。 后面就可以像使用int,char一样使用ptrfun了。 */ {intname; inta1; inta2; inta3; inta4; }RECODE; 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[]);/*声明函数*/ main()/*主函数*/ {system("color7e"); RECODErec[600]; intlength; system("cls");/*清屏*/ for(;;)/*无限循环*/ {switch(menu_select())/*根据用户的选择判断该调用哪个功能函数*/ {case1: length=enter(rec);break; case2: salor(rec,length);break; case3: list1(rec,length);break; case4: list2(rec,length);break; case5: list3(rec,length);break; case6: save(rec,length);break; case7: length=load(rec);break; case0: exit(0); } } } intmenu_select()/*菜单函数*/ {intn; printf(" ***************************菜单****************************\n\n"); printf(" *1输入便条个数\n\n"); printf("*2每人每种产品销售额\n\n"); printf("*3根据销售额对销售员排序\n\n"); printf("* 4根据每种产品销售额的总和排序\n\n"); printf("*5销售信息列表\n\n"); printf("*6保存文件\n\n"); printf(" * 7载入文件\n\n"); printf("*0退出程序\n\n"); printf(" **************************end******************************\n\n"); printf("请输入您的选择(0-7): \n"); scanf("%d",&n);if(0 returnn; } intenter(RECODEt[])/*清单输入函数*/ { inti,num; system("cls");/*清屏*/ printf("请输入便条个数: "); scanf("%d",&num);/*输入所要写入的清单的条数*/ printf("销售员代号产品1产品2产品3产品4"); for(i=0;i { printf("\n\n----------------------------------------------------------------\n"); scanf("%d%d%d%d%d",&t[i].name,&t[i].a1,&t[i].a2,&t[i].a3,&t[i].a4); } printf("\n----------------------------------------------------------------------\n\n\n"); save(t,num); returni; } voidsalor(RECODEt[],intn) { inti,s; intb1=0,b2=0,b3=0,b4=0; printf("请输入销售员代号(1-3): "); 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; }; printf("销售员代号产品1产品2产品3产品4\n"); printf("--------------------------------------------------------------------------\n"); printf("%-15d%-10d%-10d%-7d%-7d%",s,b1,b2,b3,b4); printf("\n按enter键继续.......\n"); getchar(); } intsum(RECODEt[],intn,inte) { inti,sum=0; for(i=0;i<=n;i++)/*一个销售员每种产品的总和*/ if(e==t[i].name) {sum+=t[i].a1; sum+=t[i].a2; sum+=t[i].a3; sum+=t[i].a4; } returnsum; } voidlist1(RECODEt[],intn) { inti,j,s; intc[3],m[3];/*定义两个数组*/ system("cls");/*清屏*/ for(i=0;i<3;i++) m[i]=i+1; for(i=0;i<3;i++) c[i]=sum(t,n,m[i]); for(i=0;i<3;i++)/*按销售员的销售额进行排序*/ for(j=i+1;j<3;j++) if(c[i] { 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;i<3;i++)/*输出销售员代号*/ printf("%d\n",m[i]); printf("\n按任意键继续.......\n"); getchar(); } voidlist2(RECODEt[],intn) { inti,j,s; intc[4],m[4]; for(i=0;i<4;i++)/*产品代号*/ m[i]=i+1; for(i=0;i<4;i++)/*给数组赋初值*/ c[i]=0; for(i=0;i for(j=0;j<4;j++) { if(m[j]==t[i].a1) c[j]+=t[i].a1; if(m[j]==t[i].a2) c[j]+=t[i].a2; if(m[j]==t[i].a3) c[j]+=t[i].a3; if(m[j]==t[i].a4) c[j]+=t[i].a4; } for(i=0;i<3;i++)/*按销售额对产品排序*/ for(j=i+1;j<4;j++) { if(c[i] { s=c[i];c[i]=c[j]; c[j]=s; s=m[i];m[i]=m[j]; m[j]=s;} } system("cls");/*清屏*/ printf("产品总数\n"); for(i=0;i<4;i++)/*输出产品的代号和销售额*/ printf("%-10d%-10d\n",m[i],c[i]); printf("按任意键继续......\n"); getchar();} voidlist3(RECODEt[],intn) {inti,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0; intc[3],b1[3]={0},b2[4]={0},b3[4]={0},b4[4]={0}; system("cls");; for(i=0;i<3;i++) c[i]=sum(t,n,i+1);/*求每个人的总销售额*/ for(i=0;i<3;i++) sum0+=c[i];/*所有产品的销售额*/ for(i=0;i for(j=0;j<3;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;} } for(i=0;i<4;i++)/*每种产品的总销售额*/ {sum1+=b1[i]; sum2+=b2[i]; sum3+=b3[i]; sum4+=b4[i];} printf("-------------------------theliseofsalingrecode----------------------\n\n\n"); printf("产品总数\n"); printf("code1234sum\n\n"); for(i=0;i<3;i++) printf("%-10d%-7d%-7d%-7d%-7d%-7d%\n",i+1,b1[i],b2[i],b3[i],b4[i],c[i]); printf("psum%-7d%-7d%-7d%-7d%-7d%",sum1,sum2,sum3,sum4,sum0); printf("\n按任意键继续.......\n"); getchar();} voidsave(RECODEt[],intn) {inti; FILE*fp;/*调用fopen函数*/ if((fp=fopen("record.txt","wb"))==NULL)/*如果函数带回一个空指针值*/ {printf("不能打开文件\n");/*不能打开文件*/ exit (1);} printf("\n保存文件\n"); for(i=0;i {fprintf(fp,"%-10d%-7d%-7d%-7d%-7d%",t[i].name,t[i].a1,t[i].a2,t[i].a3,t[i].a4);/*将便条的信息输出到fp指向的文件上*/ fprintf(fp,"\r\n");} fclose(fp);/*关闭文件*/ printf("****savesuccess***\n\n");/*显示保存成功*/ printf("按任意键继续e......\n"); getchar();} intload(RECODEt[]) {inti,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",&(t[i].name),&(t[i].a1),&(t[i].a2),&(t[i].a3),&(t[i].a4));/*从fp指向的文件上读入便条信息*/ fclose(fp); printf("\n你已成功读入信息! ! \n");/*成功读入信息*/ printf("p按任意键继续......\n\n"); getchar(); returnn; } 5.程序运行结果 6.设计总结 这个销售管理系统几大基本功能已经完善,另外通过多次对该系统的实验、修改,再加上老师的指点,在融会贯通以前所学知识的同时,还进一步学习了C语言设计的新方法和新的函数,感觉收获较大。 这次通过对这次程序课程设计的编写,理解并能体会到课堂学不到的东西,那就是实践。 在现代社会的新型人才要求,需要的是全方位的人才,而不只是书本知识,实际要学会操作学会创新求变,以适应社会的需要。 在实验操作过程中,总结了一些心得体会。 程序课程设计时,过程中不可避免的遇到问题,或许只是一个标点,或许只是括号,需要耐心的检查。 能完全的利用书本知识,为自己做好实验做下良好的铺垫,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。 还有就是在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。 很多东西和体会必须自己动手才能真正属于自己。 程序课程设计有很多地方,有新的编程思想,需要我们慢慢体会其中深奥的秘密. 学习过c语言都不会忘记基本类型,如整型、浮点数、双精度数、字符型等。 在c语言中,我们有结构体、共用体,函数调用,用于构造复杂的数据结构。 在这次的实践操作中,对于程序设计,细心负责是做好每一件事情所必备的基本素质,基本的专业素养是前提,过程中不免会遇到许多障碍,我们需要细致的寻找错误,对其更正。 我深深体会写程序细心的重要性。 不细心负责,没有基本的专业素养,是很容易出现漏洞的。 收获不仅是在专业知识方面,最主要是在怎样去解决编程中出现的问题。 做完程序课程设计图书管理系统,完全的诠释了c语言,为以后的学习打下基础,也加深了对其程序设计的兴趣,以后我会更好的学习。 总之做这次课程设计让我们受益匪浅。 将课本与实践结合,完善自己,增加自己的思想觉悟,希望自己能在以后的学习中或者实践中有更好的进步和突破。 参考文献 [1]谭浩强编著.C程序设计(第三版).北京: 清华大学出版社,2005(2007重印). [2] [3] 要求: 字体为宋体,字号为五号,行距为单倍,字数不少于3000字。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 谭浩强 编著 程序设计 销售 设计 报告