材料采购保管收费管理系统.docx
《材料采购保管收费管理系统.docx》由会员分享,可在线阅读,更多相关《材料采购保管收费管理系统.docx(7页珍藏版)》请在冰豆网上搜索。
![材料采购保管收费管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/25/35020b40-d83c-45f4-898b-4f12245c29e8/35020b40-d83c-45f4-898b-4f12245c29e81.gif)
材料采购保管收费管理系统
材料采购保管收费管理系统
C语言课程设计报告
1.程序设计题目
2.设计目的与要求
3.总体设计
3.1需求分析
3.2包含模块功能
4.详细设计
4.1主函数流程图
4.2query函数流程图
5.数据结构设计
6.调试分析
7.总结
8.参考文献
9.答辩记录
10.教师意见
正文
1.程序设计题目
材料采购保管收费管理系统(B级)
功能要求:
a)输入功能:
输入采购的10种材料货号、名称、材料供应价格、运杂费、运输损耗费、采购及保管费率。
b)计算功能:
计算每个材料的保管费用,材料采购保管费用=(材料供应价格+运杂费+运输损耗费)*采购及保管费率
c)查询功能:
按条件(货号、名称)显示材料的采购及保管费率。
2.设计目的与要求
设计一个程序,管理所输入的材料信息,并计算材料的保管费用以及按照货号或者名称查询材料的某个信息。
通过对任务的自行理解,并结合已掌握的或者是待掌握的C语言知识,来检验自己上学期C语言课程的学习情况。
在加深课本知识的掌握同时,也可以积累程序设计的经验,今后在学习工作中遇到困难,容易想起用编程等方式快速解决。
可以学会将课本上的理论知识和实际有机的结合起来,锻炼实际分析问题和解决问题的能力。
3.总体设计
3.1需求分析
在信息较多的情况下,人们总希望能有一个系统性的数据库来存储信息,并在其中完成查询工作,或是用筛选出来的数据进行计算或是对比。
尤其像任务需求的那样,在材料种类繁多的情况下,一个一个计算保管费用是不太现实的,容易出现输入输出上的错误。
这个时候就需要一个系统来完成存储信息,并且能为人们所调用来完成计算和查询的功能。
3.2包含模块功能
该系统需要做到以下几点:
①材料货号、名称、各项费用、费率的录入与保存;②调用其中的费用数据,计算所输入的各个材料的保管费用。
③询问是否使用查询功能,若使用,则按照货号或者名称输出材料信息。
该系统主要包含两个函数:
①main函数:
负责输入输出以及计算;②query函数:
负责询问是否查询以及按条件查询功能。
4.详细设计
4.1主函数流程图
4.2query函数流程图
5.数据结构设计
源程序:
#include
#include
#include
#include
#defineN10
structMat//声明无名结构体类型
{intnum;//材料货号
charname[10];//材料名称
floatprice1;//材料供应价格
floatprice2;//材料运杂费
floatprice3;//材料运输损耗费
floatprice;//材料保管费用
floatrate;//材料采购及保管费率
}mat[N];
voidquery(Matmat[])//声明查询函数
{
intn=0,choice=0,a=0,flag=1,i;
printf("请输入要查询的方式:
1.货号,2.名称\n");//声明查询方式
scanf("%d",&choice);
switch(choice)
{
case1:
//使用货号进行查询,如货号匹配则输出该材料的保管费率
printf("请输入要查询的货号\n");
scanf("%d",&n);
for(i=0;i{
if(n==mat[i].num)
{
printf("所查找的材料的采购及保管费率为:
%6.2f\n",mat[i].rate);
a=1;
break;
}
}
if(a==1)
break;
else
{
printf("未查询到相关货号\n");
break;
}
case2:
//使用材料名称进行查询,如名称匹配则输出该材料的保管费率
charnamep[10];
printf("请输入要查询的名称\n");
scanf("%s",namep);
for(i=0;i{
flag=strcmp(namep,mat[i].name);
if(flag==0)
{
printf("所查找的材料的采购及保管费率为:
%6.2f\n",mat[i].rate);break;
}
}
if(flag==0)
break;
else
{printf("未查询到相关货号\n");break;}
}
}
intmain()
{
inti,choice=0;//输入材料信息
for(i=0;i{
printf("请输入采购的材料各项信息,用空格间隔:
\n");
printf("货号名称供应价格运杂费运输损耗费保管费率\n");
scanf("%d%s%f%f%f%f",&mat[i].num,&mat[i].name,&mat[i].price1,&mat[i].price2,&mat[i].price3,&mat[i].rate);
printf("\n");
mat[i].price=(mat[i].price1+mat[i].price2+mat[i].price3)*mat[i].rate;//计算材料的保管费用
}
printf("货号保管费用\n");
for(i=0;i{
printf("%-6d%6.2f",mat[i].num,mat[i].price);
printf("\n");
}
printf("\n");
do
{
printf("是否要进行查询?
1.是,使用查询功能or缺省.否,程序将直接退出\n");
scanf("%d",&choice);
switch(choice)
{
case1:
query(mat);break;//如使用查询,调用查询函数
default:
exit(0);
}
}while(choice!
=1);
exit(0);
return0;
}
6.调试分析
输入及运算功能调试:
查询功能调试(按货号):
查询功能调试(按名称):
7.总结
通过编写这个程序,我能对上学期学习的C语言知识有了一定的巩固与更深地了解。
虽然在最初编写时,有许多想法不完善或是语法错误,但后来都在仔细阅读课本、参考书目,或是询问老师的过程中被一一查找出来并进行了完善。
这种出现问题,自行找办法解决,或是找同学老师解答难题的学习方式让我十分有成就感,写程序就变成了一件轻松的事情。
经过这次课程设计我也明白,C语言并不是像我们当初学习的时候那样分类,它是一个系统的学习体系,看似不相关的知识点其实都是串在一起的。
有了生活中的实际问题,更能让我们发现程序的便捷。
在这一周的编写调试过程中,我发现题目虽然看上去简单,但也有一些需要注意的细节。
只有耐心对待,一遍又一遍地调试,才能发现自己的错误在哪里,才能在这次学习过程中有很大收获。
最后要感谢课程设计过程给我辅导的老师,感谢为我点出了问题的关键,并帮助我跨过了一些一直阻碍着的障碍。
在今后的生活中,我会灵活应用程序,让它们帮助我的生活更加便捷。
8.参考文献
1.《C语言课程设计实例精选与编程指导》东南大学出版社
2.《C语言程序设计学习指导、实验指导与课程设计》中国水利水电出版社2006年盛夕清,赵阳等
3.《C语言课程设计案例精编》中国水利水电出版社2005年郭翠英等
9.答辩记录
10.教师意见