c语言销售管理系统.docx
- 文档编号:12673552
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:15
- 大小:228.24KB
c语言销售管理系统.docx
《c语言销售管理系统.docx》由会员分享,可在线阅读,更多相关《c语言销售管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
c语言销售管理系统
课程设计
课程名称C语言程序课程设计
题目名称__销售管理系统_______
学生学院______自动化_________
专业班级___自动化10(3)____
学号___3110000934_______
学生姓名______宋振中_________
指导教师李忠娟
2010年12月30日
广东工业大学课程设计任务书
题目名称___销售统计系统________
学生学院_____自动化____________
专业班级____自动化10(3)_____
学号_____3110000934________
学生姓名_____宋振中____________
一、课程设计的内容
二、课程设计的要求与数据
1.进一步掌握和利用C语言进行课程设计的能力
2.进一步理解和运用结构化程序设计的思想和方法
3.初步掌握开发一个小型实用系统的基本方法
4.学会调试一个较长程序的基本方法
5.学会利用流程图和N-S图表示算法
6.掌握书写程序设计开发文当的能力
三、课程设计应完成的工作
1、编写完成相应题目的程序
2、编写课程设计报告,课程设计报告应该包含以下6部分
1)需求分析:
包括设计题目、设计要求以及系统功能需求分析
2)总体设计:
包括系统总体设计框架和系统功能模块图
3)详细设计:
包括主要功能模块的算法设计思路以及对应的工作流程图
4)调试分析过程描述:
包括测试数据、测试输出结果以及对程序测试过程中存在问题进行思考(主要问题的出错现象、出错原因、解决方法及其效果等,相应效果截图)
5)总结:
课程设计完成了哪些主要功能,是否有扩展功能?
还有哪些地方需要改进?
课程设计的学习与体会?
有哪些合理化建议?
6)附录:
主要原程序代码含必要的注释
3、答辩:
在实验室建立程序运行环境,并在指导教师的监督下,独立解决问题,运行程序和回答教师的提问。
四、课程设计进程安排
序号
设计各阶段内容
地点
起止日期
1
下达任务书,说明设计要求,收集资料
实验3#607
6.1
2
总体方案设计、详细设计
实验3#607
6.2
3
编写程序调试分析
实验3#607
6.3
4
撰写报告并上交,答辩
实验3#607
6.5
五、应收集的资料及其主要参考文献
[1]谭浩强.C程序设计(第三版)[M]北京:
清华大学出版社,2005年9月
[2]谭浩强.C程序设计题解与上机指导(第三版)[M]北京:
清华大学出版社,2005年7月
发出任务日期:
2009年4月20日 指导教师签名:
计划完成日期:
2009年6月5日 基层教学单位责任人签名:
主管院长签章
目 录
1.设计目的与要求…………………………………………………页码
2.总体设计…………………………………………………………页码
3.详细设计…………………………………………………………页码
3.1功能模块设计………………………………………………页码
3.2数据结构设计………………………………………………页码
4.调试分析…………………………………………………………页码
5.总结………………………………………………………………页码
6.附录(程序)……………………………………………………页码
7.答辩记录(正文处留出适当空白)……………………………页码
8.指导教师意见(正文处留出适当空白)………………………页码
1.目的与要求
销售管理系统:
某公司有四个销售员(编号:
1-4),负责销售五种产品(编号:
1-5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:
1)销售员的代号
2)产品的代号
3)这种产品的当天的销售额
每位销售员每天可能上缴0-5张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
4)输出统计报表
销售统计报表
产品代号销售之和
销售员代号12345
1
2
3
4
每种产品之和总和
2.总体设计
先对每人每种产品的销量进行定义
屏幕显示输入数据提示
从键盘读取数据
对数据进行判断后将销售值赋值到对应位置
判断是否结束输入
结束收入后对数据进行初处理
对销售员的按销售量排序
对产品按销售量排序
输出统计表
结束程序
3.详细设计
1.设计主程序,确定整个程序的运行流程
2.设计循环函数,使屏幕再每次读取数据后都能再次显示提示以便于文件的使用和操作
3.编写读取数据的函数,首先判断是否结束输入(即跳出循环),否则将数据录入计算机
4.编写定位赋值函数,将从键盘读取的数据判断位置,并存入相应的位置
5.编写跳出函数,使程序执行结束循环后的命令
6.对数据进行初处理,按照题目要求对个人销量和产品销量分别求和为接下来的排序做好基础
7.编写排序程序,对取得的数据按要求进行降序排序
8.设计输出
4.调试分析
第一次编写使用了if-else语句,虽然也能达到要求但是语句冗长。
后经老师指点改为switch-case语句,节省了语句数量使得程序更加易读、明了,也减轻了调试的工作量。
后又将一个函数写出改为主程序负责控制流程,每步骤由分别的小程序控制,既使得程序流程更加明了也使得调试程序时的警告与错误更容易检查、修改,提高了主程序的可靠性。
可以使用分别调用、注释一段或多段程序的方式进行调试,使得调试工作难度下降。
调试中出现的问题有:
(因编写不熟练,很多简单的错误就不再赘述)
1.第一次编写时循环只做了数据读取部分,不能每次录入数据后显示提示,给使用者带来了一定的不变。
改为将提示循环后却发现无法跳出循环。
请教老师后使用了goto语句,解决了该问题(在加入判断后跟上goto,跳出循环)。
2.第一次编写判断语句时,直接从键盘读取3个数据后才进行判断,对结束判断时也需要输入3次数据,造成了一定的麻烦。
于是改为先对第一个数据进行判断,不需要跳出的话再对后面两个数据进行读取。
顺利的解决了该问题。
3.数据时既要输出排名的编号,又要输出销量。
所以定义了一些临时变量,将编号进行赋值,实现了编号的排序输出。
5.总结
在完成该任务的过程中,对代码进行了多次大的改动,对语句和结构都进行了优化。
使得程序的可读性和可调试性大大增加。
在调试过程中也出现了很多小的错误和警告,说明对c语言语句的账务不够熟练,语句的选择也不是十分的合适。
因此,加强平时的练习,使能够熟练使用各种命令并减少错误。
整个过程中暴露出了许多不足,使我清醒的认识到还有很大的差距。
在与老师交流、解决问题的过程中也学到了很多知识,并在编写过程中不断摸索,详细的了解了各个命令的含义,使自己得到了很大的提升。
6.附录
文件代码:
/*Note:
YourchoiceisCIDE*/
#include"stdio.h"
intman=0,pro=0,sale=0,//对员工、产品、销售额的声明
m1=0,m2=0,m3=0,m4=0,//4个销售员的销售额总和
p1=0,p2=0,p3=0,p4=0,p5=0,//5种产品的销售总和
m11=0,m12=0,m13=0,m14=0,
p11=0,p12=0,p13=0,p14=0,p15=0,//为输出代号的中间变量
sum=0,//销售总和
//man=1,pro=1,sale=0,
q11=0,q12=0,q13=0,q14=0,q15=0,//对销售额按销售表坐标声明
q21=0,q22=0,q23=0,q24=0,q25=0,
q31=0,q32=0,q33=0,q34=0,q35=0,
q41=0,q42=0,q43=0,q44=0,q45=0;
voidcontrol(void);//声明菜单函数
//voidmyexit(void);//声明退出输入进入数据处理函数
voidendow(void);//声明定位赋值函数
voidarrange(void);//声明结果预处理函数
voidarraym(void);//声明销售员排序函数
voidarrayp(void);//声明产品排序函数
voidform(void);//声明输出报表函数
voidmain()
{
//while
(1){
control();//这里调用control()函数
//endow();
//}//调用定位赋值函数
//myexit();
arrange();
arraym();
arrayp();
form();
}
/*************************************************/
//这里对主函数调用的函数进行定义
voidcontrol(void)
{
while
(1){
printf("请输入销售员代号、产品代号、销售额,输入0结束输入\n");
scanf("%d",&man);
if(man==0)//先判断一下如果是0就去数据处理否则继续输入
break;
//myexit();
scanf("%d%d",&pro,&sale);
endow();//定位赋值
}
}
//voidmyexit(void)
//{
//}
voidendow(void)
{
switch(man){
case1:
switch(pro)
{
case1:
q11=q11+sale;break;
case2:
q12=q12+sale;break;
case3:
q13=q13+sale;break;
case4:
q14=q14+sale;break;
case5:
q15=q15+sale;break;
}
case2:
switch(pro)
{
case1:
q21=q21+sale;break;
case2:
q22=q22+sale;break;
case3:
q23=q23+sale;break;
case4:
q24=q24+sale;break;
case5:
q25=q25+sale;break;
}
case3:
switch(pro)
{
case1:
q31=q31+sale;break;
case2:
q32=q32+sale;break;
case3:
q33=q33+sale;break;
case4:
q34=q34+sale;break;
case5:
q35=q35+sale;break;
}
case4:
switch(pro)
{
case1:
q41=q41+sale;break;
case2:
q42=q42+sale;break;
case3:
q43=q43+sale;break;
case4:
q44=q44+sale;break;
case5:
q45=q45+sale;break;
}
}//switchend
}
voidarrange(void)
{
m1=q11+q12+q13+q14+q15;
m2=q21+q22+q23+q24+q25;
m3=q31+q32+q33+q34+q35;
m4=q41+q42+q43+q44+q45;
p1=q11+q21+q31+q41;
p2=q12+q22+q32+q42;
p3=q13+q23+q33+q43;
p4=q14+q24+q34+q44;
p5=q15+q25+q35+q45;
sum=m1+m2+m3+m4+p1+p2+p3+p4+p5;
}
voidarraym(void)
{
inti=0;
inttemp=0;//定义临时变量temp
for(i=0;i<4;i++){
if(m1 temp=m1; m1=m2;//两数交换位置 m2=temp; } if(m2 temp=m2;//两数交换位置 m2=m3; m3=temp; } if(m3 temp=m3;//两数交换位置 m3=m4; m4=temp; } } m11=m1;m12=m2;m13=m3;m14=m4; m1=1;m2=2;m3=3;m4=4; printf("销售员排序为: \n"); printf("%d,%d,%d,%d\n",m1,m2,m3,m4);//打印排好的结果 } voidarrayp(void) { inti=0; inttemp=0;//定义临时变量temp for(i=0;i<5;i++){//5个数排序一般不超过5个循环 if(p1 temp=p1; p1=p2;//两数交换位置 p2=temp; } if(p2 temp=p2;//两数交换位置 p2=p3; p3=temp; } if(p3 temp=p3;//两数交换位置 p3=p4; p4=temp; } if(p4 temp=p4;//两数交换位置 p4=p5; p5=temp; } p11=p1;p12=p2;p13=p3;p14=p4;p15=p5; p1=1;p2=2;p3=3;p4=4;p5; } printf("5种产品的销量排序为: \n"); printf("%d,%d,%d,%d,%d",p1,p2,p3,p4,p5);//打印排好的结果 printf("销售量为: \n"); printf("%d,%d,%d,%d,%d\n",p11,p12,p13,p14,p15); } voidform(void) { printf("销售统计表\n"); printf("产品代号销售之和\n"); printf("销售员代号12345\n"); printf("1%d%d%d%d%d%d\n",q11,q12,q13,q14,q15,m11); printf("\n"); printf("2%d%d%d%d%d%d\n",q21,q22,q23,q24,q25,m12); printf("\n"); printf("3%d%d%d%d%d%d\n",q31,q32,q33,q34,q35,m13); printf("\n"); printf("4%d%d%d%d%d%d\n",q41,q42,q43,q44,q45,m14); printf("\n"); printf("销售和%d%d%d%d%d%d\n",p11,p12,p13,p14,p15,sum); printf("\n"); } 8.答辩记录 序号 问题 回答 9、指导教师意见 指导教师签名:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 销售 管理 系统