C语言课程设计报告销售管理系统设计.docx
- 文档编号:8192792
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:13
- 大小:136.97KB
C语言课程设计报告销售管理系统设计.docx
《C语言课程设计报告销售管理系统设计.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告销售管理系统设计.docx(13页珍藏版)》请在冰豆网上搜索。
C语言课程设计报告销售管理系统设计
××××大学
C语言课程设计报告
设计题目:
销售管理系统设计
小组成员:
指导教师:
所在院系:
年级班级:
年12月23日
销售管理系统设计报告
题目..........................................2
一、设计目的......................................2
二、总体设计......................................3
三、详细设计......................................4
四、调试与测试....................................5
五、源程序清单与执行结果..........................5
(1)源程序清单.................................5
(2.)执行结果..................................10
分工情况:
(组长):
负责整理总程序;
:
负责头文件整理和设计报告撰写;
:
负责编写统计程序;
:
负责编写排序程序。
题目:
某公司有四个销售员(编号:
1-4),负责销售五种产品(编号:
1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:
1)销售员的代号
2)产品的代号
3)这种产品的当天的销售额
每位销售员每天上缴1张便条。
试设计一个便条管理系统,使之能提供以下功能:
1、系统以菜单方式工作
2、便条信息录入功能(便条信息用文件保存)――输入
3、收集到了上个月的所有便条后,读取销售情况
1)计算每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)(可选项)
一、设计目的
1.通过本项课程设计,可以培养独立思考、综合运用所学知识的能力,能更好的巩固《C语言程序设计》课程的内容,掌握工程软件设计的基本方法,强化上机动手编辑能力,闯过理论与实践相结合的难关!
更加了解了C语言的好处和其可用性!
同时增加了同学之间的团队合作精神!
更加也体会到以后在工作团队合作的重要性和必要性!
2.C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础。
二、总体设计
框图结构:
三、详细设计
(一)头文件
作用:
定义各函数的预处理指令(#include...),定义标识常量(#define...),定义数据结构(typedefstruct{...}),定义函数原型(...);
(二)主函数
作用:
调用主菜单函数,返回值整数作为开关语句条件;
(三)菜单函数
作用:
输入所需菜单选项
(四)输入记录
作用:
输入记录数,形参为结构体数组,函数值返回类型为整型表示记录长度
(五)显示记录清单
作用:
显示记录,参数为记录数组和记录条数
(六)保存文件数据
作用:
保存函数,参数为结构体数组和记录数
(七)读入记录数
作用:
读入函数,参数为结构体数组
(八)数据统计
作用:
运用for的多层循环对每个销售员的每种产品的销售额进行统计;
(九)数据排序
作用:
运用冒泡排序法就每种产品的总销售额对销售员进行排序
四、调试与测试
(一)调试方法:
上机调试
(二)测试结果的分析与讨论
1、分析:
该程序是一个以菜单形式进行选择后运行的销售管理系统。
通过选择菜单对销售管理数据的输入、显示、保存、读入并进行数据的统计(计算每个销售员每种产品的销售额)和排序(按销售额对销售员进行排序)。
2、讨论:
输入程序内菜单的0~6选项,电脑将会对相应的函数进行调试。
(三)测试中的主要问题及解决措施
主要问题
解决措施
头文件内各函数的定义问题
询问老师或同学
结构体数组概念模糊
上网或者图书馆查询
没有很好运用多层循环for结构和冒泡排序法
翻阅教材,深刻理解掌握多层循环for结构和冒泡排序法
五、源程序清单与执行结果
(一)源程序清单
#include"ff.h"
/******主函数开始*******/
voidmain()
{
SALEadr[M];/*定义结构体数组*/
intlength;/*保存记录长度*/
for(;;)/*无限循环*/
{
switch(menu_select())/*调用主菜单函数,返回值整数作开关语句的条件*/
{
case0:
length=enter(adr);
break;/*输入记录*/
case1:
list(adr,length);
break;/*显示全部记录*/
case2:
save(adr,length);/*保存文件*/
break;
case3:
length=load(adr);/*读文件*/
break;
case4:
count(adr,length);/*统计函数*/
break;
case5:
sorted(adr,length);/*排序函数*/
break;
case6:
exit(0);/*如返回值为11则程序结束*/
}
}
}
/*菜单函数,函数返回值为整数,代表所选的菜单项*/
menu_select()
{
intc;
printf("\n按任一键进入菜单......\n");
getch();
printf("********************MENU*********************\n\n");
printf("0.输入记录数\n");
printf("1.显示记录清单\n");
printf("2.保存文件\n");
printf("3.读入文件数据\n");
printf("4.统计各销售员的每种产品的销售额\n");
printf("5.据销售额对销售员排序\n");
printf("6.结束\n");
printf("***********************************************\n");
do{
printf("\n输入你的选择项(0~6):
");
scanf("%d",&c);
}while(c<0||c>7);
returnc;
}
//输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度
intenter(SALEt[])
{
inti,n;
printf("\n请输入记录数:
\n");
scanf("%d",&n);
printf("请输入每一条记录\n");
printf("销售员代号产品代号销售额\n");
printf("----------------------------------------------------\n");
for(i=0;i { scanf("%d%d%d",&t[i].n,&t[i].u,&t[i].t);/*输入记录*/ printf("----------------------------------------------------\n"); } returnn;/*返回记录条数*/ } /*显示记录,参数为记录数组和记录条数*/ voidlist(SALEt[],intn) { inti; printf("\n***********************SALE***********************\n"); printf("%10s%20s%30s\n","销售员代号","产品代号","销售额"); printf("----------------------------------------------------\n"); for(i=0;i printf("%10d%20d%30d\n",t[i].n,t[i].u,t[i].t); if((i+1)%10==0) { printf("按任一键继续...\n"); } printf("************************END**********************\n"); } /*保存函数,参数为结构体数组和记录数*/ voidsave(SALEt[],intn) { inti; FILE*fp;/*指向文件的指针*/ if((fp=fopen("record.txt","wb"))==NULL)/*打开文件,并判断打开是否正常*/ { printf("cannotopenfile\n");/*没打开*/ exit (1);/*退出*/ } printf("\n保存文件\n"); fprintf(fp,"%d",n);/*将记录数写入文件*/ fprintf(fp,"\r\n");/*将换行符号写入文件*/ for(i=0;i { fprintf(fp,"%20d%30d%10d",t[i].n,t[i].u,t[i].t);/*格式写入记录*/ fprintf(fp,"\r\n");/*将换行符号写入文件*/ } fclose(fp); printf("****数据保存成功***\n"); } /*读入函数,参数为结构体数组*/ intload(SALEt[]) { inti,n; FILE*fp;/*指向文件的指针*/ if((fp=fopen("record.txt","rb"))==NULL)/*打开文件*/ { printf("不能打开文件\n");/*不能打开*/ exit (1);/*退出*/ } fscanf(fp,"%d",&n);/*读入记录数*/ for(i=0;i fscanf(fp,"%20d%30d%10d",&(t[i].n),&(t[i].u),&(t[i].t));/*按格式读入记录*/ fclose(fp);/*关闭文件*/ printf("成功地从文件读入数据\n"); returnn; } /*进行数据统计*/ voidcount(SALEt[],intn)/*统计每个销售员每种产品的销售额*/ { intsum,i,j,s; for(s=1;s<=M;s++) { printf("销售员%d: \n",s);/*通过循环进行统计*/ for(j=1;j<=5;j++) { sum=0; for(i=0;i { if(t[i].n==s&&t[i].u==j)/*销售员的各种产品成立条件*/ sum+=t[i].t;/*销售额统计*/ } printf("%d产品的销售额: %d\n",j,sum); } } } /*进入排序函数*/ voidsorted(SALEt[],intn)/*按销售额对销售员进行排序,输出排序结果*/ { inti,j,sum[5][3]={0},z,h,k; printf("销售员代号排序: "); for(j=1;j<=5;j++) { sum[j][1]=j; for(i=0;i if(t[i].n==sum[j][1]) sum[j][2]+=t[i].t;/*统计每种产品的总销售额*/ } for(k=1;k<=M;k++)/*用冒泡法排序*/ { for(j=1;j<=M-k;j++) if(sum[j][2] { z=sum[j][2];/*调换两个总销售额的位置*/ sum[j][2]=sum[j+1][2]; sum[j+1][2]=z; h=sum[j][1];/*调换相应两个销售员的位置*/ sum[j][1]=sum[j+1][1]; sum[j+1][1]=h; } } for(j=1;j<5&&j printf("%d",sum[j][1]);/*输出销售员的排序结果*/ } (二)执行结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 销售 管理 系统 设计