1、材料采购保管收费管理系统 材料采购保管收费管理系统 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、费率。2.设计目的与要求 设计一个程序,管理所输入的材料信息,并计算材料的保管费用以及按照货号或者名称查询材料的某个信息。通过对任务的自行理解,并结合已掌握的或者是待掌握的C语言知识,来检验自己上学期C语言课程的学习情况。在加深课本知识的掌握同时,也可以积累程序设计的经验,今后在学习工作中遇到困难,容易想起用编程等方式快速解决。可以学会将课本上的理论知识和实际有机的结合起来,锻炼实际分析问题和解决问题的能力。3.总体设计3.1需求分析在信息较多的情况下,人们总希望能有一个系统性的数据库来存储信息,并在其中完成查询工作,或是用筛选出来的数据进行计算或是对比。尤其像任务需求的那样,在材料种类繁多的
3、情况下,一个一个计算保管费用是不太现实的,容易出现输入输出上的错误。这个时候就需要一个系统来完成存储信息,并且能为人们所调用来完成计算和查询的功能。3.2 包含模块功能该系统需要做到以下几点:材料货号、名称、各项费用、费率的录入与保存;调用其中的费用数据,计算所输入的各个材料的保管费用。询问是否使用查询功能,若使用,则按照货号或者名称输出材料信息。该系统主要包含两个函数:main函数:负责输入输出以及计算;query函数:负责询问是否查询以及按条件查询功能。4.详细设计4.1主函数流程图4.2query函数流程图5. 数据结构设计源程序:#include#include#include#inc
4、lude#define N 10struct Mat /声明无名结构体类型 int num; /材料货号 char name10; /材料名称 float price1; /材料供应价格 float price2; /材料运杂费 float price3; /材料运输损耗费 float price; /材料保管费用 float rate; /材料采购及保管费率 matN;void query(Mat mat) /声明查询函数 int n=0,choice=0,a=0,flag=1,i; printf(请输入要查询的方式:1.货号,2.名称n); /声明查询方式 scanf(%d,&choice
5、); switch(choice) case 1: /使用货号进行查询,如货号匹配则输出该材料的保管费率 printf(请输入要查询的货号n); scanf(%d,&n); for(i=0;iN;i+) if(n=mati.num) printf(所查找的材料的采购及保管费率为:%6.2fn,mati.rate); a=1; break; if(a=1) break; else printf(未查询到相关货号n); break; case 2: /使用材料名称进行查询,如名称匹配则输出该材料的保管费率 char namep10; printf(请输入要查询的名称n); scanf(%s,nam
6、ep); for (i=0;iN;i+) flag=strcmp(namep,mati.name); if(flag=0) printf(所查找的材料的采购及保管费率为:%6.2fn,mati.rate);break; if(flag=0) break; else printf(未查询到相关货号n);break; int main() int i,choice=0; /输入材料信息 for(i=0;iN;i+) printf(请输入采购的材料各项信息,用空格间隔:n); printf(货号 名称 供应价格 运杂费 运输损耗费 保管费率n); scanf(%d%s%f%f%f%f,&mati.n
7、um,&mati.name,&mati.price1,&mati.price2,&mati.price3,&mati.rate); printf(n); mati.price=(mati.price1+mati.price2+mati.price3)*mati.rate; /计算材料的保管费用 printf(货号 保管费用n); for(i=0;iN;i+) printf(%-6d%6.2f,mati.num,mati.price); printf(n); printf(n); do printf(是否要进行查询?1.是,使用查询功能 or 缺省.否,程序将直接退出n); scanf(%d,&
8、choice); switch (choice) case 1:query(mat);break; /如使用查询,调用查询函数 default:exit(0); while (choice!=1); exit(0); return 0;6.调试分析输入及运算功能调试:查询功能调试(按货号):查询功能调试(按名称):7.总结通过编写这个程序,我能对上学期学习的C语言知识有了一定的巩固与更深地了解。虽然在最初编写时,有许多想法不完善或是语法错误,但后来都在仔细阅读课本、参考书目,或是询问老师的过程中被一一查找出来并进行了完善。这种出现问题,自行找办法解决,或是找同学老师解答难题的学习方式让我十分有
9、成就感,写程序就变成了一件轻松的事情。经过这次课程设计我也明白,C语言并不是像我们当初学习的时候那样分类,它是一个系统的学习体系,看似不相关的知识点其实都是串在一起的。有了生活中的实际问题,更能让我们发现程序的便捷。在这一周的编写调试过程中,我发现题目虽然看上去简单,但也有一些需要注意的细节。只有耐心对待,一遍又一遍地调试,才能发现自己的错误在哪里,才能在这次学习过程中有很大收获。最后要感谢课程设计过程给我辅导的老师,感谢为我点出了问题的关键,并帮助我跨过了一些一直阻碍着的障碍。在今后的生活中,我会灵活应用程序,让它们帮助我的生活更加便捷。8.参考文献1.C语言课程设计实例精选与编程指导 东南大学出版社2. C语言程序设计学习指导、实验指导与课程设计 中国水利水电出版社 2006年 盛夕清,赵阳等3.C语言课程设计案例精编 中国水利水电出版社 2005年 郭翠英等9.答辩记录10.教师意见
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1